{ config, pkgs, ... }: { programs.waybar = { enable = true; settings = { mainBar = { layer = "top"; position = "top"; height = 25; modules-left = [ "hyprland/workspaces" ]; modules-center = [ "hyprland/window" ]; modules-right = [ "mpd" "idle_inhibitor" "pulseaudio" "network" "power-profiles-daemon" "cpu" "memory" "temperature" "backlight" # "keyboard-state" "battery" "tray" "clock" "custom/power" ]; "hyprland/workspaces" = { format = "{name}"; }; "hyprland/window" = { max-length = 50; }; "hyprland/submap" = { "format"="✌️ {}"; "max-length"= "8"; "tooltip"= false; }; "keyboard-state"= { "numlock"= true; "capslock"= true; "format"= "{name} {icon}"; "format-icons"= { "locked"= ""; "unlocked"= ""; }; }; "sway/mode"= { "format"= "{}"; }; "sway/scratchpad"= { "format"= "{icon} {count}"; "show-empty"= false; "format-icons"= ["" ""]; "tooltip"= true; "tooltip-format"= "{app}: {title}"; }; "mpd"= { "format"= "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩% "; "format-disconnected"= "Disconnected "; "format-stopped"= "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped "; "unknown-tag"= "N/A"; "interval"= 5; "consume-icons"= { "on"= " "; }; "random-icons"= { "off"= " "; "on"= " "; }; "repeat-icons"= { "on"= " "; }; "single-icons"= { "on"= "1 "; }; "state-icons"= { "paused"= ""; "playing"= ""; }; "tooltip-format"= "MPD (connected)"; "tooltip-format-disconnected"= "MPD (disconnected)"; "on-click"= "pwvucontrol"; }; "idle_inhibitor"= { "format"= "{icon}"; "format-icons"= { "activated"= ""; "deactivated"= ""; }; }; "tray"= { "icon-size"= 21; "spacing"= 10; }; "clock"= { "timezone"= "America/New_York"; "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-critical"= "{temperatureC}°C {icon}"; "format"= "{temperatureC}°C {icon}"; "format-icons"= ["" "" ""]; }; "backlight"= { "device"= "acpi_video1"; "format"= "{percent}% {icon}"; "format-icons"= ["" "" "" "" "" "" "" "" ""]; }; "battery"= { "states"= { "good"= 95; "warning"= 20; "critical"= 15; }; "format"= "{capacity}% 󰂌 "; "format-full"= "{capacity}% {icon} "; "format-charging"= "{capacity}% {icon} "; "format-plugged"= "{capacity}%  "; "format-alt"= "{time} {icon} "; "format-good"= "{capacity}% {icon} "; "format-icons"= ["" "" "" "" ""]; }; "battery#bat2"= { "bat"= "BAT1"; }; "power-profiles-daemon"= { "format"= "{icon}"; "tooltip-format"= "Power profile: {profile}\nDriver: {driver}"; "tooltip"= true; "format-icons"= { "default"= ""; "performance"= ""; "balanced"= ""; "power-saver"= ""; }; }; "network"= { "interface"= "wlp2*"; "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"= { "scroll-step"= 1; "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"= "pwvucontrol"; }; "custom/media"= { "format"= "{icon} {text}"; "return-type"= "json"; "max-length"= 40; "format-icons"= { "spotify"= ""; "default"= ""; }; "escape"= true; "exec"= "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; }; "custom/power"= { "format" = "⏻ "; "tooltip"= false; "menu"= "on-click"; "menu-file"= "$HOME/.config/waybar/power_menu.xml"; "menu-actions"= { "shutdown"= "shutdown"; "reboot"= "reboot"; "suspend"= "systemctl suspend"; "hibernate"= "systemctl hibernate"; "lock"= "loginctl lock-session"; }; }; }; }; style = '' * { /* `otf-font-awesome` is required to be installed for icons */ color: #67578A; font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; font-size: 15px; border-radius: 10px; margin: 0px 5px 0px 5px; background-color: #1f2335 } window#waybar { background-color: rgba(43, 48, 59, 0.5); border-bottom: 3px solid rgba(100, 114, 125, 0.5); color: #ffffff; transition-property: background-color; transition-duration: .5s; } window#waybar.hidden { opacity: 0.2; } /* window#waybar.empty { } window#waybar.solo { } */ window#waybar.termite { } window#waybar.chromium { border: none; } button { /* Use box-shadow instead of border so the text isn't offset */ box-shadow: inset 0 -3px transparent; /* Avoid rounded borders under each button name */ border: none; border-radius: 0; } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ button:hover { background: inherit; box-shadow: inset 0 -3px #ffffff; } /* you can set a style on hover for any module like this */ #workspaces button { padding: 0 5px; background-color: transparent; color: #ffffff; } #workspaces button:hover { background: rgba(0, 0, 0, 0.2); } #workspaces button.focused { background-color: #64727D; box-shadow: inset 0 -3px #ffffff; } #workspaces button.urgent { background-color: #eb4d4b; } #mode { /* background-color: #64727D; */ box-shadow: inset 0 -3px #ffffff; } #clock, #battery, #cpu, #memory, #disk, #temperature, #backlight, #network, #pulseaudio, #wireplumber, #custom-media, #tray, #mode, #idle_inhibitor, #scratchpad, #power-profiles-daemon, #mpd { padding: 0 10px; /* color: #ffffff; */ } @keyframes blink { to { /* background-color: #ffffff; */ color: #000000; } } #window, #workspaces { margin: 0 4px; } /* If workspaces is the leftmost module, omit left margin */ .modules-left > widget:first-child > #workspaces { margin-left: 0; } /* If workspaces is the rightmost module, omit right margin */ .modules-right > widget:last-child > #workspaces { margin-right: 0; } #clock { /* background-color: #64727D; */ } #battery { /* background-color: #ffffff; */ /* color: #000000; */ } #battery.charging, #battery.plugged { color: #4fd6be; /* background-color: #26A65B; */ } /* Using steps() instead of linear as a timing function to limit cpu usage */ #battery.critical:not(.charging) { /* background-color: #f53c3c; */ color: #ff007c; animation-name: blink; animation-duration: 0.5s; animation-timing-function: steps(12); animation-iteration-count: infinite; animation-direction: alternate; } #battery.warning { color: rgba(255, 210, 4, 1); } #battery.critical { color: rgba(238, 46, 36, 1); } #battery.charging { color: rgba(217, 216, 216, 1); } #power-profiles-daemon { padding-right: 15px; } #power-profiles-daemon.performance { /* background-color: #f53c3c; */ color: #c53b53; } #power-profiles-daemon.balanced { /* background-color: #2980b9; */ color: #565f89; } #power-profiles-daemon.power-saver { /* background-color: #2ecc71; */ color: #9d7cd8; } label:focus { /* background-color: #000000; */ } #cpu { /* background-color: #2ecc71; */ /* color: #000000; */ } #memory { /* background-color: #9b59b6; */ } #disk { /* background-color: #964B00; */ } #backlight { /* background-color: #90b1b1; */ } #network { /* background-color: #2980b9; */ } #network.disconnected { /* background-color: #f53c3c; */ } #wireplumber { /* background-color: #fff0f5; */ /* color: #000000; */ } #wireplumber.muted { /* background-color: #f53c3c; */ } #custom-media { /* background-color: #66cc99; */ color: #2a5c45; min-width: 100px; } #custom-media.custom-spotify { background-color: #66cc99; } #custom-media.custom-vlc { background-color: #ffa000; } #temperature { /* background-color: #f0932b; */ } #temperature.critical { background-color: #eb4d4b; } #tray { /* background-color: #2980b9; */ } #tray > .passive { -gtk-icon-effect: dim; } #tray > .needs-attention { -gtk-icon-effect: highlight; color: #eb4d4b; } #idle_inhibitor { color: #2d3436; } #idle_inhibitor.activated { /* background-color: #ecf0f1; */ color: #2d3436; } #mpd { /* background-color: #66cc99; */ color: #2a5c45; } #mpd.disconnected { /* background-color: #f53c3c; */ } #mpd.stopped { /* background-color: #90b1b1; */ } #mpd.paused { /* background-color: #51a37a; */ } #language { background: #00b093; color: #740864; padding: 0 5px; min-width: 16px; } #keyboard-state { /* background: #97e1ad; */ color: #000000; padding: 0 0px; min-width: 16px; } #keyboard-state > label { padding: 0 5px; } #keyboard-state > label.locked { background: rgba(0, 0, 0, 0.2); } #scratchpad { /* background: rgba(0, 0, 0, 0.2); */ } #scratchpad.empty { background-color: transparent; } #privacy { padding: 0; } #privacy-item { padding: 0 5px; color: white; } #privacy-item.screenshare { background-color: #cf5700; } #privacy-item.audio-in { background-color: #1ca000; } #privacy-item.audio-out { background-color: #0069d4; } #waybar { font-family: "SF Pro Display", Cantarell, Noto Sans, sans-serif; font-size: 16px; } #window { padding: 0 10px; } window#waybar { border: none; border-radius: 0; box-shadow: none; text-shadow: none; transition-duration: 0s; color: rgba(217, 216, 216, 1); background: #1a1b26; } #workspaces { margin: 0 5px; } #workspaces button { padding: 0 8px; color: #565f89; border: 3px solid rgba(9, 85, 225, 0); border-radius: 10px; min-width: 33px; } #workspaces button.visible { color: #a9b1d6; } #workspaces button.active { border-top: 3px solid #7aa2f7; border-bottom: 3px solid #7aa2f7; } #workspaces button.urgent { background-color: #a96d1f; color: white; } #workspaces button:hover { box-shadow: inherit; border-color: #bb9af7; color: #bb9af7; } /* Repeat style here to ensure properties are overwritten as there's no !important and button:hover above resets the colour */ #workspaces button.focused { color: #7aa2f7; } #workspaces button.focused:hover { color: #bb9af7; } #pulseaudio:hover { color: #565f89; } #pulseaudio { /* font-size: 26px; */ /* background-color: #545c73; */ /* color: #000000; */ } #pulseaudio.muted { /* background-color: #c53b53; */ color: #c53b53; } #custom-recorder { font-size: 18px; color:#ee2e24; } #tray, #mode, #battery, #temperature, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #sway-language, #backlight, #custom-storage, #custom-cpu_speed, #custom-powermenu, #custom-spotify, #custom-weather, #custom-mail, #custom-media { padding: 0 5px; /* border-top: 3px solid rgba(217, 216, 216, 0.5); */ } #clock { margin: 0px 5px 0px 5px; min-width: 30px; } #custom-storage.warning { color: rgba(255, 210, 4, 1); } #custom-storage.critical { color: rgba(238, 46, 36, 1); } @keyframes blink { to { background-color: #ffffff; color: black; } } ''; }; }