{ ...}: { imports = [ ../../common/waybar/scripts.nix ]; programs.waybar = { enable = true; settings = { mainBar = { layer = "top"; position = "top"; modules-left = [ "custom/wlogout" "idle_inhibitor" "clock" "mpris" ]; module-center = [ "hyprland/workspaces" ]; modules-right = [ "pulseaudio" "custom/tailscale" "network" "battery" ]; # Modules "custom/wlogout" = { format = ""; on-click = "wlogout"; }; "custom/tailscale" = { format = "{icon} "; exec = "$HOME/.config/waybar/scripts/tailscale.sh"; exec-if = "pgrep tailscaled"; return-type = "json"; interval = 5; format-icons = { Running = "󰌆"; Stopped = "󰌊"; }; }; idle_inhibitor = { format = "{icon} "; format-icons = { activated = ""; deactivated = ""; }; }; mpris = { format = "{player_icon} {dynamic}"; format-paused = ''{status_icon} {dynamic}''; player-icons = { default = "▶"; }; status-icons = { paused = "⏸"; }; max-length = 30; }; "hyprland/workspaces" = { on-click = "activate"; }; clock = { format = "󰥔 {:%H:%M}"; format-alt = "󰃭 {:%A, %d %b, %Y}"; tooltip-format = "{calendar}"; calendar = { mode = "month"; mode-mon-col = 3; weeks-pos = "left"; on-scroll = 1; format = { months = "{}"; days = "{}"; weeks = "W{}"; weekdays = "{}"; today = "{}"; }; }; actions = { on-click-right = "kitty -e calcurse"; on-click-middle = "mode"; on-scroll-up = "shift_up"; on-scroll-down = "shift_down"; }; }; pulseaudio = { scroll-step = 1; format = "{icon} {format_source}"; format-bluetooth = "{volume}% {icon} {format_source}"; format-bluetooth-muted = " "; format-muted = "󰝟 {format_source}"; format-source = " "; format-source-muted = " "; format-icons = { headphone = " "; headset = " "; default = ["󰕿" "󰖀" "󰕾"]; }; tooltip = false; on-click = "kitty -e pulsemixer"; }; network = { format = "{ifname}"; format-wifi = " "; format-ethernet = " {ipaddr}"; format-disconnected = ""; # Hides the module tooltip-format = "{ifname} via {gwaddr} "; tooltip-format-wifi = "{essid} ({signalStrength}%) "; tooltip-format-ethernet = "{ifname} "; tooltip-format-disconnected = "Disconnected"; max-length = 50; on-click = "kitty --class=nmtui -e nmtui"; }; battery = { tooltip = true; tooltip-format = "{time}"; states = { warning = 35; critical = 20; }; format = "{icon} {capacity}%"; format-charging = "󰂄 {capacity}%"; format-plugged = " {capacity}%"; format-icons = [ "" "" "" "" "" ]; }; }; }; style = { border = "none"; border-radius = 0; waybar = { padding = "15px"; }; workspaces = { button = { visible = { font-size = "15px"; border-radius = "50px"; padding = "0px 5px"; margin = "5px"; }; }; }; }; }; # Waybar theming home.file.".config/waybar/style.css" = { enable = false; executable = false; text = '' #workspaces button.active { padding: 0px 15px; background-color: #7A7740; color: rgba(0, 0, 0, 0.5); } #workspaces button:hover, #workspaces button.focused:hover, #workspaces button.visible:hover { color: rgba(0, 0, 0, 0.5); background-color: #649a25; } #workspaces button.urgent { background-color: #cc241d; color: rgba(200, 200, 200, 0.5); } /* * General background */ #network, #mpris, #memory, #backlight, #cpu, #pulseaudio, #temperature, #battery, #tray, #submap, #clock, #idle_inhibitor, #custom-tailscale, #custom-wlogout, #window { font-size: 16px; padding: 0px 10px; margin: 5px; border-radius: 5px; color: rgba(58,60,62, 0.6); background-color: #649a25; font-weight: bold; } /* * General background */ #network button:hover, #mpris button:hover, #memory button:hover, #backlight button:hover, #cpu button:hover, #pulseaudio button:hover, #temperature button:hover, #battery button:hover, #tray button:hover, #submap button:hover, #clock button:hover, #idle_inhibitor button:hover, #custom-tailscale button:hover, #custom-wlogout button:hover, #window button:hover{ background-color: #d9eed2; } /* * Warning plugins state */ #battery.warning { background-color: #d1ff6d; } /* * Critical plugins state */ #idle_inhibitor.activated, #battery.critical, #custom-tailscale.Stopped, #network.disconnected { color: #d9eed2; background-color: #fb0029; } #battery.charging { background-color: #2a9b34; } #battery.plugged { background-color: #458588; } #pulseaudio.bluetooth { background-color: #458588; } tooltip { color: #d9eed2; font-size: 14px; } ''; }; }