{ config, lib, pkgs, ... }: { programs.waybar = { enable = true; systemd.enable = true; settings = [{ layer = "bottom"; height = 25; position = "top"; margin-top = 0; margin-left = 0; margin-right = 0; margin-bottom = 0; modules-left = [ "sway/workspaces" "sway/mode" ]; modules-right = [ "custom/systemd" "pulseaudio" "network" "battery" "clock" "tray" ]; "sway/workspaces" = { format = "{name}"; disable-scroll = true; }; "sway/mode" = { format = "{}"; }; tray = { spacing = 10; }; clock = { format = "{: %a %b %d %R}"; }; battery = { states = { warning = 30; critical = 15; }; format = "bat:{capacity}%"; tooltip = true; tooltip-format = "{timeTo} ({capacity}%)"; }; "custom/systemd" = { exec = "${pkgs.tools.waybar-systemd-units}/bin/waybar-systemd-units"; format = "failed units: {}"; return-type = "json"; interval = 60; }; pulseaudio = { format = "vol:{volume}%"; format-bluetooth = "bt:{volume}%"; format-bluetooth-muted = "bt:{volume}%"; format-muted = "vol:{volume}%"; on-click = "pavucontrol"; }; "network" = { format-wifi = "{essid}:{signalStrength}%"; format-ethernet = "{ipaddr}/{cidr}"; format-linked = "{ifname} (No IP)"; format-disconnected = "network unavailable"; format-alt = "{ifname}: {ipaddr}/{cidr}"; tooltip = false; }; }]; }; programs.waybar.style = pkgs.writeText "style.css" '' * { border-radius: 0; border: none; font-family: "Roboto Mono, sans-serif"; font-size: 15px; color: #C5C8C6; min-height: 24px; } window#waybar { background-color: #282A2E; color: #C5C8C6; } #window { font-weight: bold; font-family: "Roboto Mono, sans-serif"; } #workspaces button { padding: 0 5px; background-color: transparent; color: #C5C8C6; } #workspaces button.focused { background-color: #373B41; border-bottom: 2px solid #F0C674; } #clock, #battery, #network, #pulseaudio, #tray, #mode { padding: 0 6px; margin: 0 3px; } #battery.warning { border-bottom: 2px solid #efc673; } #battery.critical { border-bottom: 2px solid #ef8773; } #network { /* No styles */ } #network.disconnected { color: #efc673; } #pulseaudio { /* No styles */ } #pulseaudio.muted { color: #8c8f91; } #custom-systemd { color: #8c8f91; } #custom-systemd.errors { color: #C5C8C6; border-bottom: 2px solid #ef8773; } ''; }