{ config, pkgs, ... }: { fonts.packages = [ pkgs.font-awesome ]; hm.programs.waybar = { enable = true; systemd.enable = true; style = let colors = config.custom.colors; in '' @define-color base00 ${colors.base00}; @define-color base05 ${colors.base05}; @define-color base03 ${colors.base03}; @define-color base0E ${colors.base0E}; '' + builtins.readFile ./style.css; settings = { main = { output = [ "eDP-1" "DP-1" ]; layer = "top"; position = "top"; height = 35; modules-left = [ "niri/workspaces" "niri/window" ]; modules-center = [ "clock" ]; modules-right = [ "group/cpu-temp" "memory" "battery" "power-profiles-daemon" "backlight" "network" "pulseaudio" "tray" ]; "group/cpu-temp" = { orientation = "inherit"; modules = [ "temperature" "cpu" ]; }; "niri/workspaces" = { format = "{icon}"; format-icons = { code = ""; fullscreen = ""; gaming = ""; vesktop = ""; }; all-outputs = true; }; "niri/window" = { max-length = 50; tooltip = false; }; clock = { interval = 1; timezone = "America/New_York"; format = "{:%T}"; tooltip-format = "{:%Y %B}\n{calendar}"; format-alt = "{:%Y-%m-%d}"; actions = { on-scroll-up = "shift_up"; on-scroll-down = "shift_down"; on-click-middle = "shift_reset"; }; }; temperature = { thermal-zone = 9; critical-threshold = 90; format = "{temperatureC}°C {icon}"; format-icons = [ "" "" "" ]; tooltip = false; }; cpu = { format = "{usage}% "; tooltip = false; }; memory = { interval = 10; format = "{used:0.1f}G "; format-alt = "{percentage}% "; tooltip-format = "{swapUsed}G "; }; battery = { states = { warning = 40; critical = 15; }; format = "{capacity}% {icon}"; format-full = "{capacity}% {icon}"; format-charging = "{capacity}% "; format-plugged = "{capacity}% "; format-alt = "{time} {icon}"; format-icons = [ "" "" "" "" "" ]; }; power-profiles-daemon = { format = "{icon}"; tooltip-format = "Power profile: {profile}"; tooltip = true; format-icons = { default = ""; performance = ""; balanced = ""; power-saver = ""; }; }; backlight = { format = "{percent}% {icon}"; format-icons = [ "" "" "" "" "" "" "" "" "" ]; tooltip = false; }; network = { format-wifi = "{ipaddr} "; format-ethernet = "{ipaddr} "; # long ugly ass string because indented strings insert an extra newline (i do not know how to resolve this) tooltip-format-wifi = "{essid} ({frequency} GHz)\n\n{ipaddr}/{cidr}\n{ifname} via {gwaddr}\nstrength: {signalStrength}%\nup: {bandwidthUpBytes} down: {bandwidthDownBytes}"; tooltip-format-ethernet = "{ipaddr}/{cidr}\n{ifname} via {gwaddr}\nup: {bandwidthUpBytes} down: {bandwidthDownBytes}"; format-linked = "{ifname} (No IP) "; format-disconnected = "Disconnected ⚠"; format-alt = "{ifname}: {ipaddr}/{cidr}"; }; pulseaudio = { format = "{volume}% {icon} {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 = ""; car = ""; default = [ "" "" "" ]; }; }; tray = { icon-size = 18; spacing = 10; }; }; }; }; }