modules-left: modules-center: modules-right: { pkgs, ... }: { programs.waybar = { enable = true; settings = let spanfa = ""; in [{ height = 32; margin = "8 8 0"; inherit modules-left modules-center modules-right; modules = { "sway/workspaces" = { disable-scroll = true; all-outputs = true; numeric-first = true; format = "{icon}"; persistent_workspaces = { "10:browser" = []; "20:terminal" = []; "30:code" = []; "40:files" = []; "50:discord" = []; "60:settings" = []; }; format-icons = { terminal = "${spanfa}"; code = "${spanfa}"; browser = "${spanfa}"; files = "${spanfa}"; discord = "${spanfa}"; settings = "${spanfa}"; }; }; "sway/mode" = { format = "{}"; }; "mpd" = { format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ "; format-disconnected = "Disconnected "; format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped "; unknown-tag = "N/A"; interval = 2; consume-icons.on = " "; random-icons.off = " "; random-icons.on = " "; repeat-icons.on = " "; single-icons.on = "1 "; state-icons.paused = ""; state-icons.playing = ""; tooltip-format = "MPD (connected)"; tooltip-format-disconnected = "MPD (disconnected)"; }; "idle_inhibitor" = { format = "{icon}"; format-icons.activated = ""; format-icons.deactivated = ""; }; "tray" = { # icon-size = 21; spacing = 10; }; "clock" = { format = " {:%H:%M}"; tooltip-format = "{:%Y %B}\n{calendar}"; format-alt = " {:%Y-%m-%d}"; }; "cpu" = { format = " {usage}%"; tooltip = false; }; "battery" = { states.warning = 30; states.low = 15; states.critical = 5; format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ]; format = "{icon} {capacity}%"; format-charging = "{capacity}%"; format-time = "{H}h {M}m"; }; "memory" = { format = "${spanfa} {}%"; }; "temperature" = { # thermal-zone = 2; # hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input"; critical-threshold = 80; format = "${spanfa}{icon} {temperatureC}°C"; format-icons = [ "" "" "" "" "" ]; }; "backlight" = { # device = "acpi_video1"; format = "{icon} {percent}%"; format-icons = [ "" "" "" "" ]; }; "network" = { # interface = "wlp2*"; # (Optional) To force the use of this interface format = "{ifname}"; format-wifi = "${spanfa} Online"; format-ethernet = "${spanfa} "; format-disconnected = ""; tooltip-format-wifi = "{essid} - {signalStrength}%"; tooltip-format-ethernet = "{signalStrength}%"; tooltip-format-disconnected = ""; }; "pulseaudio" = { scroll-step = 1; smooth-scrolling-threshold = 2.0; format = "${spanfa}{icon} {volume}%"; format-bluetooth = " ${spanfa}{icon} {volume}%"; format-bluetooth-muted = "${spanfa}  0%"; format-muted = "${spanfa} {volume}%"; format-icons.headphone = ""; format-icons.phone = ""; format-icons.portable = ""; format-icons.car = ""; format-icons.default = [ "" "" "" ]; on-click = "pamixer -t"; }; "custom/media" = { format = "{icon} {}"; return-type = "json"; max-length = 40; format-icons.spotify = ""; format-icons.default = "🎜"; escape = true; }; "custom/sep".format = ""; }; }]; style = '' @define-color background #1a1b26; @define-color foreground #a9b1d6; @define-color red #ce7284; @define-color green #7dc5a0; @define-color yellow #caaa6a; @define-color blue #7bc5e4; @define-color magenta #ad8ee6; @define-color altred #d5556f; @define-color altgreen #b9f27c; @define-color altyellow #ff9e64; @define-color altblend #282e49; @define-color empty #474f6f; @define-color pink #c386c0; @define-color violet #8682de; * { border: none; font-family: "JetBrainsMono Nerd Font", monospace; font-size: 13px; } window#waybar { background-color: @background; border-radius: 8px; color: @foreground; padding: 3px 0px; } #custom-sep { color: @altblend; font-size: 14px; } #workspaces { margin-left: 6px; } #workspaces button { padding: 0px 3px; border-radius: 0px; color: @blue; } #workspaces button:hover { box-shadow: inherit; text-shadow: inherit; background: @background; border: none; padding: 0px 3px; } #workspaces button.persistent {color: @empty;} #workspaces button.focused { color: shade(@pink, 1.1); text-shadow: 0px 0px 2px shade(@pink, 1.2); } #workspaces button.urgent { background-color: @altred; color: #ffffff; } #clock, #battery, #cpu, #memory, #disk, #temperature, #network, #custom-media, #tray, #mode, #idle_inhibitor, #mpd { margin: 0px 8px; } #idle_inhibitor { padding: 0px 8px 0px 0px; } #cpu { background-color: @altblend; margin: 3px 0px 3px 2px; padding-right: 5px; padding-left: 8px; border-radius: 18px 0px 0px 18px; } #pulseaudio { background-color: @altblend; ${ if builtins.elem "backlight" modules-right then '' margin: 3px 0px 3px 2px; padding-right: 5px; padding-left: 8px; border-radius: 18px 0px 0px 18px; '' else '' margin: 3px 2px; padding: 0px 8px; border-radius: 18px; '' } } #backlight, #memory { background-color: @altblend; margin: 3px 4px 3px 0px; padding-left: 5px; padding-right: 8px; border-radius: 0px 18px 18px 0px; } #network { background-color: @altblend; margin: 3px 4px; padding: 0px 6px; border-radius: 18px; } #window { font-family: "NotoSans Nerd Font"; font-size: 12px; } #mode { color: @magenta; text-shadow: 0px 0px 2px shade(@magenta, 1.05); } #cpu {color: @green;} #memory {color: @yellow;} #temperature {color: @blue;} #clock {color: @blue;} #temperature {color: @blue;} #temperature.critical {color: @altyellow;} @keyframes blink { to { color: @background; } } #battery {color: @green;} #battery.warning:not(.charging) {color: @altyellow;} #battery.low:not(.charging) {color: @altred;} #battery.critical:not(.charging) { color: #ff2525; animation-name: blink; animation-duration: 1s; animation-timing-function: linear; animation-iteration-count: infinite; animation-direction: alternate; } #backlight {color: @yellow;} #network {color: @green;} #pulseaudio {color: @pink;} #pulseaudio.muted {color: @red;} #idle_inhibitor.deactivated {color: @altred;} #idle_inhibitor.activated {color: @altgreen;} ''; }; }