2024-07-19 03:34:42 +02:00
|
|
|
|
{ lib, config, pkgs, ... }:
|
|
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
let
|
|
|
|
|
cfg = config.modules.waybar;
|
2024-07-19 03:51:40 +02:00
|
|
|
|
theme = config.theming;
|
|
|
|
|
colors = theme.colors;
|
2024-07-19 03:34:42 +02:00
|
|
|
|
in {
|
|
|
|
|
options.modules.waybar = {
|
|
|
|
|
enable = mkEnableOption "waybar";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
|
pulsemixer
|
|
|
|
|
playerctl
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
programs.waybar = {
|
|
|
|
|
enable = true;
|
|
|
|
|
settings = {
|
|
|
|
|
mainBar = {
|
|
|
|
|
layer = "top";
|
|
|
|
|
spacing = 16;
|
|
|
|
|
modules-left = [
|
|
|
|
|
"river/tags"
|
|
|
|
|
];
|
|
|
|
|
modules-center = [
|
|
|
|
|
#"river/window"
|
|
|
|
|
"mpris"
|
|
|
|
|
];
|
|
|
|
|
modules-right = [
|
|
|
|
|
"pulseaudio"
|
|
|
|
|
"battery"
|
|
|
|
|
"clock"
|
|
|
|
|
];
|
|
|
|
|
"river/window" = {
|
|
|
|
|
max-length = 50;
|
|
|
|
|
};
|
|
|
|
|
"river/tags" = {
|
|
|
|
|
tag-labels = [
|
|
|
|
|
"一"
|
|
|
|
|
"二"
|
|
|
|
|
"三"
|
|
|
|
|
"四"
|
|
|
|
|
"五"
|
|
|
|
|
"六"
|
|
|
|
|
"七"
|
|
|
|
|
"八"
|
|
|
|
|
"九"
|
|
|
|
|
];
|
|
|
|
|
disable-click = false;
|
|
|
|
|
};
|
|
|
|
|
pulseaudio = {
|
|
|
|
|
tooltip = false;
|
|
|
|
|
format = "{icon} {volume}%"; # Spacing achieved using "Thin Space"
|
|
|
|
|
#format-muted = "";
|
|
|
|
|
format-muted = "{icon} --%"; # Spacing achieved using "Thin Space"
|
|
|
|
|
format-icons = {
|
|
|
|
|
#headphone = "";
|
|
|
|
|
#default = [ "" "" ];
|
|
|
|
|
headphone = "";
|
|
|
|
|
headphone-muted = "";
|
|
|
|
|
default = [ "" "" "" ];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
battery = {
|
|
|
|
|
format = "{icon} {capacity}%"; # Spacing achieved using "Thin Space"
|
|
|
|
|
format-charging = " {capacity}%"; # Spacing achieved using "Thin Space"
|
|
|
|
|
#format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
|
|
|
|
|
format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
|
|
|
|
|
interval = 1;
|
|
|
|
|
};
|
|
|
|
|
clock = {
|
|
|
|
|
#format = " {:%H:%M}";
|
|
|
|
|
#format = " {:%H:%M}"; # Spacing achieved using "Thin Space"
|
|
|
|
|
format = "{:%H:%M}";
|
|
|
|
|
};
|
|
|
|
|
mpris = {
|
|
|
|
|
format = "{dynamic}";
|
|
|
|
|
tooltip-format = "";
|
|
|
|
|
interval = 1;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
2024-07-19 03:51:40 +02:00
|
|
|
|
# TODO: Replace base03 color with named color
|
2024-07-19 03:34:42 +02:00
|
|
|
|
style = ''
|
|
|
|
|
window#waybar {
|
2024-07-19 03:51:40 +02:00
|
|
|
|
color: #${colors.fg};
|
|
|
|
|
background-color: #${colors.bg};
|
2024-07-19 03:34:42 +02:00
|
|
|
|
border-style: none none solid none;
|
2024-07-19 03:51:40 +02:00
|
|
|
|
border-width: ${toString theme.layout.borderSize}px;
|
|
|
|
|
border-color: #${colors.unfocused};
|
2024-07-19 03:34:42 +02:00
|
|
|
|
font-size: 12px;
|
2024-07-19 03:51:40 +02:00
|
|
|
|
font-family: "${theme.fonts.monospace.name}";
|
2024-07-19 03:34:42 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.modules-right {
|
|
|
|
|
margin: 0 8px 0 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#tags button {
|
2024-07-19 03:51:40 +02:00
|
|
|
|
color: #${theme.schemeColors.base03};
|
2024-07-19 03:34:42 +02:00
|
|
|
|
padding: 0 5px 1px 5px;
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-family: "Unifont";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#tags button.occupied {
|
2024-07-19 03:51:40 +02:00
|
|
|
|
color: #${colors.fg};
|
2024-07-19 03:34:42 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#tags button.focused {
|
2024-07-19 03:51:40 +02:00
|
|
|
|
color: #${colors.accent};
|
2024-07-19 03:34:42 +02:00
|
|
|
|
}
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|