nix-config/home/waybar.nix

166 lines
4.5 KiB
Nix
Raw Normal View History

{ config, lib, ... }:
2023-06-22 17:13:46 +02:00
{
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "right";
width = 45;
spacing = 8;
modules-left = [ "wlr/workspaces" "custom/new-workspace" ];
2023-06-22 13:17:51 +02:00
modules-center = [ "hyprland/window" ];
modules-right = [ "tray" "wireplumber" "backlight" "battery" "clock" ];
tray = {
icon-size = 24;
spacing = 8;
};
2023-05-25 19:08:01 +02:00
2023-06-24 14:51:34 +02:00
"hyprland/window" = {
rotate = 90;
};
"wlr/workspaces" = {
on-click = "activate";
sort-by-number = true;
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
};
};
wireplumber = {
format = "{icon}";
tooltip-format = "{volume}% {node_name}";
format-muted = "";
format-icons = [ "" "" ];
};
2023-05-25 19:08:01 +02:00
battery = {
2023-06-25 01:40:31 +02:00
format = "{icon}";
tooltip-format = "{capacity}% {timeTo}";
format-icons = [ "" "" "" "" "" ];
};
2023-05-25 19:08:01 +02:00
clock = {
2023-06-25 01:40:31 +02:00
format = "{:%H\n%M}";
tooltip-format = "<tt>{calendar}</tt>";
calendar = {
mode = "month";
weeks-pos = "right";
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
days = "<span color='#ecc6d9'><b>{}</b></span>";
weeks = "<span size='14pt' color='#99ffdd'><b>W{}</b></span>";
weekdays = "<span size='18pt' color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b>{}</b></span>";
};
};
};
2023-05-25 19:08:01 +02:00
backlight = {
2023-06-25 01:40:31 +02:00
format = "{icon}";
format-icons = [ "" "" ];
};
"custom/new-workspace" = {
2023-06-25 01:40:31 +02:00
format = "+";
on-click = "hyprctl dispatch workspace empty && sleep 0.1 && rofi -show drun";
on-click-right = "sleep 0.1 && rofi -show drun";
on-click-middle = "hyprctl dispatch workspace empty";
tooltip = false;
};
};
};
style = lib.mkForce /* css */ ''
@define-color base00 #${config.lib.stylix.colors.base00};
@define-color base01 #${config.lib.stylix.colors.base01};
@define-color base02 #${config.lib.stylix.colors.base02};
@define-color base03 #${config.lib.stylix.colors.base03};
@define-color base04 #${config.lib.stylix.colors.base04};
@define-color base05 #${config.lib.stylix.colors.base05};
@define-color base06 #${config.lib.stylix.colors.base06};
@define-color base07 #${config.lib.stylix.colors.base07};
@define-color base08 #${config.lib.stylix.colors.base08};
@define-color base09 #${config.lib.stylix.colors.base09};
@define-color base0A #${config.lib.stylix.colors.base0A};
@define-color base0B #${config.lib.stylix.colors.base0B};
@define-color base0C #${config.lib.stylix.colors.base0C};
@define-color base0D #${config.lib.stylix.colors.base0D};
@define-color base0E #${config.lib.stylix.colors.base0E};
@define-color base0F #${config.lib.stylix.colors.base0F};
* {
color: @base05;
font-size: 16px;
}
window#waybar {
background: alpha(@base00, 0.92);
border-left: 1px solid alpha(@base02, 0.67);
}
2023-06-22 13:17:51 +02:00
window#waybar.fullscreen #workspaces button.active {
background: alpha(@base09, 0.5);
}
#workspaces button {
padding: 12px 0;
border-radius: 0;
border-bottom: 1px solid alpha(@base02, 0.5);
}
#workspaces button:hover {
background: inherit;
}
#workspaces button.active {
background: alpha(@base02, 0.5);
}
#window {
padding-top: 8px;
padding-bottom: 12px;
}
tooltip, #tray menu {
background: @base00;
border: 1px solid alpha(@base09, 0.93);
padding: 8px;
}
#backlight, #battery, #wireplumber {
font-family: "Font Awesome 6 Free Solid";
font-size: 24px;
}
#custom-new-workspace {
font-family: "Font Awesome 6 Free Solid";
padding-top: 8px;
padding-bottom: 8px;
color: alpha(@base0A, 0.67);
}
#clock {
font-size: 18px;
font-weight: bold;
padding-bottom: 8px;
}
'';
};
}