{ config, pkgs, ... }: { programs.waybar = { enable = true; settings = { mainBar = { position = "top"; height = 30; spacing = 4; modules-left = [ "sway/workspaces" "sway/mode" ]; modules-center = [ "sway/window" ]; modules-right = [ "idle_inhibitor" "pulseaudio" "network" "cpu" "memory" "temperature" "battery" "tray" "clock" ]; "sway/workspaces" = { disable-scroll = true; all-outputs = true; format = "{name}: {icon}"; format-icons = { "1" = "󰈹"; "2" = "󰈹"; "3" = "󰈹"; "4" = "󰈹"; "5" = "󰈹"; "6" = "󰈹"; "7" = "󰈹"; "8" = "󰈹"; "9" = "󰈹"; "10" = "󰈹"; urgent = "󰈹"; focused = "󰈹"; default = "󰈹"; }; }; "sway/mode" = { format = "{}"; }; "sway/window" = { format = "{}"; max-length = 50; }; "idle_inhibitor" = { format = "{icon}"; format-icons = { activated = "󰈸"; deactivated = "󰈸"; }; }; "tray" = { spacing = 10; }; "clock" = { tooltip-format = "{:%Y %B}\n{calendar}"; format-alt = "{:%Y-%m-%d}"; }; "cpu" = { format = "{usage}% 󰍛"; tooltip = false; }; "memory" = { format = "{}% 󰍛"; }; "temperature" = { thermal-zone = 2; hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input"; critical-threshold = 80; format = "{temperatureC}°C {icon}"; format-icons = [ "󰈸" "󰈸" "󰈸" ]; }; "battery" = { states = { warning = 30; critical = 15; }; format = "{capacity}% {icon}"; format-charging = "󰂄 {capacity}%"; format-plugged = "󰂄 {capacity}%"; format-alt = "{time} {icon}"; format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰂃" "󰂄" ]; }; "network" = { format-wifi = "{essid} ({signalStrength}%) 󰤨"; format-ethernet = "{ipaddr}/{cidr} 󰤨"; tooltip-format = "{ifname} via {gwaddr} 󰤨"; 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 = [ "󰕿" "󰕿" "󰕿" ]; }; on-click = "pavucontrol"; }; }; }; style = '' * { border: none; border-radius: 0; font-family: "JetBrainsMono Nerd Font", "Font Awesome 6 Free"; font-size: 13px; min-height: 0; } window#waybar { background: #1a1b26; color: #c0caf5; } #workspaces button { padding: 0 5px; background: transparent; color: #c0caf5; border-top: 2px solid transparent; } #workspaces button.focused { color: #7aa2f7; border-top: 2px solid #7aa2f7; } #workspaces button.urgent { color: #f7768e; } #mode { background: #f7768e; color: #1a1b26; padding: 0 5px; } #clock, #battery, #cpu, #memory, #temperature, #network, #pulseaudio, #tray, #mode, #idle_inhibitor { padding: 0 10px; margin: 0 4px; color: #c0caf5; } #clock { font-weight: bold; } #battery { color: #c0caf5; } #battery.charging { color: #9ece6a; } #battery.critical:not(.charging) { color: #f7768e; animation-name: blink; animation-duration: 0.5s; animation-timing-function: linear; animation-iteration-count: infinite; animation-direction: alternate; } #cpu { color: #bb9af7; } #memory { color: #bb9af7; } #temperature { color: #ff9e64; } #temperature.critical { color: #f7768e; } #network { color: #7aa2f7; } #network.disconnected { color: #f7768e; } #pulseaudio { color: #7aa2f7; } #pulseaudio.muted { color: #f7768e; } #tray { background-color: #1a1b26; } @keyframes blink { to { background-color: #f7768e; color: #1a1b26; } } ''; }; }