{ config, pkgs, lib, ... }: let inherit (lib) mkIf mkEnableOption readFile; cfg = config.custom-hm.gui.waybar; in { options.custom-hm.gui.waybar = { enable = mkEnableOption "waybar"; }; config = mkIf cfg.enable { programs.waybar = { enable = true; style = readFile ./waybar.css; settings = { main = { margin = "2px 3px 2 3px"; height = 30; layer = "top"; "custom/nixos" = { format = ""; interval = "once"; tooltip = false; }; "custom/separator" = { format = " "; interval = "once"; tooltip = false; }; modules-left = [ "custom/nixos" "niri/workspaces" "custom/separator" "niri/window" ]; modules-center = [ "clock" ]; modules-right = [ "network#speed" "custom/separator" "network#if" "custom/separator" "pulseaudio" "custom/separator" "memory" "custom/separator" "cpu" "custom/separator" "backlight" "custom/separator" "battery" "custom/separator" "tray" ]; "niri/workspaces" = { all-outputs = true; format = "{icon}"; format-icons = { "terminal" = ""; "browser" = ""; "chat" = ""; "mail" = "󰇮"; }; }; "niri/window" = { max-length = 50; }; pulseaudio = { format = "{icon} {volume}% {format_source}"; format-bluetooth = "{icon}  {volume}% {format_source}"; format-bluetooth-muted = "  {icon} {format_source}"; format-icons = { car = ""; default = [ "" "" "" ]; hands-free = ""; headphone = ""; headset = ""; phone = ""; portable = ""; }; format-muted = " {format_source}"; format-source = " {volume}%"; format-source-muted = ""; on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; }; backlight = { format = "󰖨 {percent}%"; on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl set 1%-"; on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl set +1%"; }; battery = { interval = 10; format = "{icon} {capacity}%"; format-charging = "{icon} {capacity}% 󱐋"; format-plugged = "{icon} {capacity}% "; format-icons = [ "" "" "" "" "" ]; }; clock = { format = "{:%a %b %d %H:%M}"; tooltip-format = "{:%Y %B}\n{calendar}"; }; memory = { format = " {percentage}%"; }; "network#if" = { format = "{ifname}"; format-disconnected = "󰌙"; format-ethernet = "󰌘"; format-linked = "{ifname} (No IP) 󰈁"; format-wifi = "{icon}"; format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ]; interval = 10; }; "network#speed" = { format = "{ifname}"; format-disconnected = "󰌙"; format-ethernet = " {bandwidthDownBytes}  {bandwidthUpBytes}"; format-linked = ""; format-wifi = " {bandwidthDownBytes}  {bandwidthUpBytes}"; interval = 5; max-length = 30; tooltip-format = "{ipaddr}"; tooltip-format-disconnected = "󰌙 Disconnected"; tooltip-format-ethernet = "{ifname} 󰌘"; tooltip-format-wifi = "{essid} {icon} {signalStrength}%"; }; cpu = { format = " {usage}%"; interval = 5; }; tray = { icon-size = 18; spacing = 14; }; }; }; systemd.enable = true; }; systemd.user.targets.tray = { Unit = { Description = "Home Manager System Tray"; Requires = [ "graphical-session-pre.target" ]; }; }; }; }