{ config, pkgs, ... }: { programs.waybar = { enable = true; settings = [ { output = [ "DP-3" ]; #height = 24; # Waybar height spacing = 4; # Gaps between modules fixed-center = true; modules-left = [ "hyprland/workspaces" "hyprland/window" ]; modules-center = [ "mpris" ]; modules-right = [ "tray" "wireplumber" "battery" "clock" ]; "hyprland/workspaces" = { all-outputs = true; warp-on-scroll = false; enable-bar-scroll = true; disable-scroll-wraparound = true; format = "{icon}"; format-icons = { "1" = ""; "2" = ""; "3" = ""; "4" = ""; "5" = "󰊴"; "6" = ""; "7" = "7"; "8" = ""; "9" = "󰠮"; "10" = "10"; }; }; "hyprland/window" = { format = "{title}"; max-length = 40; all-outputs = true; }; mpris = { format = " {status_icon} {dynamic}"; interval = 1; dynamic-len = 40; dynamic-order = [ "title" "artist" ]; ignored-players = [ "brave" ]; status-icons = { playing = "▶"; paused = "⏸"; stopped = ""; }; }; tray = { icon-size = 14; spacing = 10; }; clock = { tooltip-format = "{:%Y %B}\n{calendar}"; format-alt = "{:%Y-%m-%d}"; }; battery = { states = { warning = 30; critical = 15; }; format = "{icon} {capacity}%"; format-full = "{icon} {capacity}%"; format-charging = " {capacity}%"; format-plugged = " {capacity}%"; format-alt = "{icon} {time}"; format-icons = [ "" "" "" "" "" ]; }; wireplumber = { scroll-step = 5; format = "{icon} {volume}%"; format-bluetooth = "{icon} {volume}% "; format-bluetooth-muted = " {icon}"; format-muted = ""; format-icons = { headphone = ""; hands-free = ""; headset = ""; phone = ""; portable = ""; car = ""; default = [ "" "" "" ]; }; #on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; on-click = "pavucontrol"; }; } # Bar for DP-2 only { output = [ "DP-2" ]; #height = 24; spacing = 4; modules-left = [ "hyprland/workspaces" "hyprland/window" ]; modules-center = [ ]; modules-right = [ "clock" ]; "hyprland/workspaces" = { all-outputs = true; warp-on-scroll = true; enable-bar-scroll = true; format = "{icon}"; format-icons = { "1" = ""; "2" = ""; "3" = ""; "4" = ""; "5" = "󰊴"; "6" = ""; "7" = "7"; "8" = ""; "9" = "󰠮"; "10" = "10"; }; }; "hyprland/window" = { format = "{title}"; max-length = 40; all-outputs = true; }; clock = { tooltip-format = "{:%Y %B}\n{calendar}"; format-alt = "{:%Y-%m-%d}"; }; } ]; style = '' * { font-size: 14px; border-radius: 5px; } window#waybar { /* `otf-font-awesome` is required to be installed for icons */ font-family: jetbrains-mono, monospace; background-color: transparent; border-bottom: 0px; color: #ebdbb2; transition-property: background-color; transition-duration: .5s; } window#waybar.hidden { opacity: 0.2; } window#waybar.empty #window { background-color: transparent; } /* window#waybar.empty { background-color: transparent; } window#waybar.solo { background-color: #FFFFFF; } */ .modules-right { margin: 10px 10px 0 0; } .modules-center { margin: 10px 0 0 0; } .modules-left { margin: 10px 0 0 10px; } button { /* Use box-shadow instead of border so the text isn't offset */ /* box-shadow: inset 0 -3px transparent; */ border: none; } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ /* button:hover { background: inherit; box-shadow: inset 0 -3px #ebdbb2; } */ #workspaces { background-color: #282828; } #workspaces button { padding: 0 5px; background-color: transparent; color: #ebdbb2; border-radius: 0; } #workspaces button:first-child { border-radius: 5px 0 0 5px; } #workspaces button:last-child { border-radius: 0 5px 5px 0; } #workspaces button:hover { color: #d79921; } #workspaces button.focused { background-color: #665c54; /* box-shadow: inset 0 -3px #ffffff; */ } #workspaces button.urgent { background-color: #b16286; } #idle_inhibitor, #cava, #scratchpad, #mode, #window, #clock, #battery, #backlight, #wireplumber, #tray, #mpris, #load { padding: 0 10px; background-color: #282828; color: #ebdbb2; } #mode { background-color: #689d6a; color: #282828; /* box-shadow: inset 0 -3px #ffffff; */ } /* 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; } #cava { padding: 0 5px; } #battery.charging, #battery.plugged { background-color: #98971a; color: #282828; } @keyframes blink { to { background-color: #282828; color: #ebdbb2; } } /* Using steps() instead of linear as a timing function to limit cpu usage */ #battery.critical:not(.charging) { background-color: #cc241d; color: #ebdbb2; animation-name: blink; animation-duration: 0.5s; animation-timing-function: steps(12); animation-iteration-count: infinite; animation-direction: alternate; } label:focus { background-color: #000000; } #wireplumber.muted { background-color: #458588; } #tray > .passive { -gtk-icon-effect: dim; } #tray > .needs-attention { -gtk-icon-effect: highlight; } #mpris.playing { background-color: #d79921; color: #282828; } #tray menu { font-family: sans-serif; } #scratchpad.empty { background: transparent; } ''; }; }