{ config, pkgs, ... }: { programs.waybar = { enable = true; systemd.enable = true; settings = { mainBar = { layer = "top"; position = "top"; height = 30; spacing = 4; # Module layout # modules-left = [ "river/tags" ]; modules-center = [ "custom/currents" "river/window" ]; modules-right = [ "pulseaudio" "network#wifi" "cpu" "memory" "temperature" "backlight" "battery" "clock" "tray" ]; # Module configurations "river/tags" = { num-tags = 10; tag-labels = [ "1" "2" "3" "4" "5" "6" "7" "8" "9" "0" ]; set-tags = [ 2147483649 2147483650 2147483652 2147483656 2147483664 2147483680 2147483712 2147483776 2147483904 2147483648 ]; toggle-tags = [ 1 2 4 8 16 32 64 128 256 ]; hide-vacant = true; }; "river/window" = { format = "{}"; max-length = 20; }; "tray" = { icon-size = 21; spacing = 10; }; "clock" = { timezone = "America/Denver"; tooltip-format = "{calendar}"; format-alt = "{:%Y-%m-%d}"; }; "cpu" = { format = "{usage}% "; tooltip = true; }; "memory" = { format = "{}% "; }; "temperature" = { # thermal-zone = 2; # hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input"; critical-threshold = 80; format-critical = "{temperatureC}°C {icon}"; format = "{temperatureC}°C {icon}"; format-icons = ["" "" ""]; }; "backlight" = { format = "{percent}% {icon}"; format-icons = ["" "" "" "" "" "" "" "" ""]; }; "battery" = { states = { good = 95; warning = 30; critical = 15; }; format = "{icon} {capacity}%"; format-full = "{icon} Full"; format-charging = "{icon} Charging {capacity}% {time}"; format-plugged = "{icon} Charge complete"; format-good = ">{icon} {capacity}%"; format-icons = ["" "" "" "" "" "" "" ""]; }; "network#wifi" = { interface = "wlp*"; format-wifi = "{essid} ({signalStrength}%) "; tooltip-format = "{ifname} via {gwaddr} "; format-linked = "{ifname} (No IP) "; format-disconnected = "No WiFi"; 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"; }; }; "custom/currents"= { interval= 30; exec= "currents --waybar"; return-type= "json"; }; }; }; style = '' * { font-family: "Hack Nerd Font Mono"; font-size: 13px; } window#waybar { color: #d3c6aa; background-color: #2b3339; border-bottom: 3px solid #7fbbb3; transition-property: background-color; transition-duration: .5s; } window#waybar.hidden { opacity: 0.2; } button { box-shadow: inset 0 -3px transparent; border: 1px #000000 solid; border-radius: 0; color:#d3c6aa; } button:hover { background: inherit; box-shadow: inset 0 -3px #7fbbb3; } #tags button { padding: 0 15px; background-color: transparent; border: 2px solid #d3c6aa; } #tags button.occupied { background: #d3c6aa; border: 1px solid #2b3339; color:#2b3339; } #tags button.focused { background-color: #7fbbb3; color: #2b3339; border: 1px solid #2b3339; border-bottom: 3px solid #2b3339; } #tags button.urgent { background-color: #e67e80; } #backlight, #battery, #clock, #cpu, #memory, #mode, #network, #pulseaudio, #temperature, #tray, #power-profiles-daemon { padding: 0 8px; color:#d3c6aa; } #window, #workspaces { margin: 0 8px; } #backlight { background-color: transparent; border-bottom: 3px solid #7fbbb3; } #battery { background-color: transparent; border-bottom: 3px solid #a7c080; } #battery.critical.discharging { background-color: #e67e80; animation: blink 5s infinite; } #battery.warning.discharging { background-color: #dbbc7f; animation: blink 10s infinite; } @keyframes blink { to { background-color: transparent; } } #clock { background-color: transparent; border-bottom: 3px solid #a7c080; } #cpu { background-color: transparent; border-bottom: 3px solid #7fbbb3; } #memory { background-color: transparent; border-bottom: 3px solid #dbbc7f; } #network { background-color: transparent; border-bottom: 3px solid #a7c080; } #network.disconnected { background-color: transparent; border-bottom: 3px solid #f38ba8; } #pulseaudio { background-color: transparent; border-bottom: 3px solid #7fbbb3; } #pulseaudio.muted { background-color: transparent; border-bottom: 3px solid #e67e80; } #temperature { background-color: transparent; border-bottom: 3px solid #a7c080; } #temperature.critical { background-color: transparent; border-bottom: 3px solid #e67e80; } #tray { background-color: transparent; border-bottom: 3px solid #7fbbb3; } ''; }; }