{inputs, pkgs, ...}: { # required to autoload fonts from packages installed via Home Manager fonts.fontconfig.enable = true; # waybar requires font-awesome home.packages = [ pkgs.pavucontrol # fira code now contains ligatures and font-awesome # TODO - this only works after nixpkgs 25.05 # nerd-fonts.fira-code (pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; }) pkgs.fira-code ]; # enable waybar programs.waybar.enable = true; programs.waybar = { settings = { mainBar = { margin-top = 5; margin-bottom = 5; margin-left = 5; margin-right = 5; # height = 42; layer = "top"; position = "top"; spacing = 5; # height = 30; # output = [ # "eDP-1" # "HDMI-A-1" # ]; modules-left = [ "hyprland/workspaces" "hyprland/window" ]; modules-center = [ "clock" "custom/notification" ]; modules-right = [ "tray" # "temperature" # "group/expand" # "bluetooth" "wireplumber" "network" # "mpd" "battery" "backlight" "idle_inhibitor" ]; # module specific settings "hyprland/workspaces" = { format = "{icon}"; format-icons = { active = "●"; default = "○"; }; }; "hyprland/window"= { "icon" = false; "separate-outputs" = true; "format" = "{}"; }; "clock" = { format = "{:%H:%M}"; interval = 1; tooltip-format = "{calendar}"; calendar = { "format" = { "today" = "{}"; }; }; }; "idle_inhibitor" = { format = "{icon}"; format-icons = { activated = ""; deactivated = ""; }; tooltip = "true"; }; "bluetooth" = { format-on = "󰂯"; format-off = "BT-off"; format-disabled = "󰂲"; format-connected-battery = "{device_battery_percentage}% 󰂯"; format-alt = "{device_alias} 󰂯"; tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; tooltip-format-enumerate-connected = "{device_alias}\n{device_address}"; tooltip-format-enumerate-connected-battery = "{device_alias}\n{device_address}\n{device_battery_percentage}%"; on-click-right = "blueman-manager"; }; "battery" = { interval = 60; states = { good = 80; warning = 30; critical = 10; }; format = "{capacity}% {icon}"; format-charging = "{capacity}% 󰂄"; format-plugged = "{capacity}% 󰂄 "; format-icons = [ "󰁻" "󰁼" "󰁾" "󰂀" "󰂂" "󰁹" ]; }; "wireplumber" = { scroll-step = 10; format = "{icon} {volume}%";# {format_source}"; format-bluetooth = "{volume}% {icon}";# {format_source}"; format-bluetooth-muted = " {icon}";# {format_source}"; format-muted = "";# {format_source}"; # format-source = " {volume}%"; # format-source-muted = ""; format-icons = { headphone = ""; hands-free = ""; headset = ""; phone = ""; portable = ""; default = [ "" "" "" ]; }; on-click = "sleep 0.1 && pavucontrol"; }; "tray" = { spacing = 5; }; "custom/notification" = { tooltip = false; format = "{icon} {}"; format-icons = { notification = ""; none = ""; dnd-notification = ""; dnd-none = ""; inhibited-notification = ""; inhibited-none = ""; dnd-inhibited-notification = ""; dnd-inhibited-none = ""; }; return-type = "json"; exec-if = "which swaync-client"; exec = "swaync-client -swb"; on-click = "sleep 0.1 && task-waybar"; escape = true; }; "network" = { # interface = "wlp0s20f3"; format = "{ifname}"; format-wifi = "{essid} ({signalStrength}%) "; format-ethernet = "{ipaddr}/{cidr} 󰊗"; format-disconnected = ""; tooltip-format = "{ifname} via {gwaddr} 󰊗"; tooltip-format-wifi = "{essid} ({signalStrength}%) "; tooltip-format-ethernet = "{ifname} "; tooltip-format-disconnected = "Disconnected"; max-length = 5; }; }; }; style = '' * { font-family: "FiraCode Nerd Font"; font-weight: bold; font-size: 22px; } window#waybar { background-color: transparent; } .module { background: rgba(0, 0, 0, 0.6); color: white; border-radius: 5px; padding: 5px 5px 5px 5px; margin: 5px 0; } box.module button:hover { box-shadow: inset 0 -3px #ffffff; } .modules-left { padding: 3px; } .modules-right { padding: 3px; } .modules-center { padding: 3px; } ''; }; }