# Waybar status bar configuration { config, lib, pkgs, ... }: { programs.waybar = { enable = true; style = '' * { font-family: "JetBrainsMono Nerd Font Mono", "JetBrainsMono NF", monospace; font-size: 14px; min-height: 0; } window#waybar { background-color: rgba(26, 22, 17, 0.92); color: #d4c4a8; border-bottom: 2px solid rgba(139, 90, 43, 0.6); } #workspaces button { padding: 0 8px; color: #8b7355; border-radius: 4px; margin: 4px 2px; } #workspaces button.active { color: #d4a857; background-color: rgba(180, 134, 11, 0.2); } #workspaces button:hover { background-color: rgba(139, 90, 43, 0.15); } #custom-help { padding: 0 10px; margin: 4px 2px; border-radius: 4px; background-color: rgba(212, 168, 87, 0.3); color: #d4a857; font-weight: bold; } #custom-help:hover { background-color: rgba(212, 168, 87, 0.5); } #clock, #battery, #network, #pulseaudio, #cpu, #memory, #tray { padding: 0 12px; margin: 4px 2px; border-radius: 4px; background-color: rgba(45, 38, 32, 0.85); } #clock { color: #d4a857; font-weight: bold; } #battery { color: #8a9a5b; } #battery.charging { color: #d4a857; } #battery.warning:not(.charging) { color: #c9a227; } #battery.critical:not(.charging) { color: #a63d40; animation: blink 0.5s linear infinite alternate; } #network { color: #7a9cb8; } #network.disconnected { color: #a63d40; } #bluetooth { color: #7a9cb8; } #bluetooth.connected { color: #8a9a5b; } #bluetooth.disabled { color: #5c5346; } #language { color: #c67b5c; font-weight: bold; min-width: 20px; } #pulseaudio { color: #c9a227; } #pulseaudio.muted { color: #5c5346; } #cpu { color: #b85c38; } #memory { color: #c67b5c; } #tray { padding: 0 8px; } @keyframes blink { to { background-color: #722f37; color: #d4c4a8; } } #custom-recording { color: #ff4444; font-weight: bold; animation: blink 1s linear infinite; padding: 0 10px; } ''; settings = { mainBar = { layer = "top"; position = "top"; height = 34; spacing = 4; modules-left = ["custom/help" "hyprland/workspaces" "hyprland/window"]; modules-center = ["custom/recording" "clock"]; modules-right = ["hyprland/language" "tray" "cpu" "memory" "pulseaudio" "bluetooth" "network" "battery"]; "custom/recording" = { exec = "[ -f /tmp/recording-status ] && echo '󰑊 REC' || echo ''"; interval = 1; format = "{}"; on-click = "~/.local/bin/screen-record"; tooltip = "Click to stop recording"; }; "custom/help" = { format = "?"; tooltip = "Quick Actions (Super+/)"; on-click = "~/.local/bin/quick-actions"; }; "hyprland/workspaces" = { format = "{name}"; on-click = "activate"; }; "hyprland/window" = { max-length = 50; separate-outputs = true; }; clock = { format = "{:%H:%M %a %b %d}"; format-alt = "{:%I:%M %p %a %b %d}"; tooltip-format = "{calendar}"; calendar = { mode = "month"; weeks-pos = "right"; format = { months = "{}"; days = "{}"; weeks = "W{}"; weekdays = "{}"; today = "{}"; }; }; }; cpu = { format = "CPU {usage}%"; tooltip = true; interval = 2; }; memory = { format = "RAM {percentage}%"; tooltip-format = "{used:0.1f}GB / {total:0.1f}GB"; interval = 2; }; battery = { states = { warning = 30; critical = 15; }; format = "BAT {capacity}%"; format-charging = "CHR {capacity}%"; format-plugged = "PLG {capacity}%"; format-icons = ["" "" "" "" ""]; tooltip-format = "{timeTo}"; }; network = { format-wifi = "󰖩 {essid}"; format-ethernet = "󰈀 {ipaddr}"; format-disconnected = "󰖪 "; tooltip-format-wifi = "{essid} • {signalStrength}% • {ipaddr}"; tooltip-format-ethernet = "IP: {ipaddr}"; on-click = "~/.local/bin/wifi-menu"; on-click-right = "nm-connection-editor"; }; bluetooth = { format = "󰂯"; format-connected = "󰂱 {device_alias}"; format-disabled = "󰂲"; tooltip-format = "{controller_alias}\n{status}"; tooltip-format-connected = "{controller_alias}\n{device_enumerate}"; tooltip-format-enumerate-connected = "{device_alias}"; on-click = "blueman-manager"; on-click-right = "~/.local/bin/bluetooth-toggle"; }; "hyprland/language" = { format = "{}"; format-en = "EN"; format-gr = "ΕΛ"; tooltip-format = "{long} ({variant})"; on-click = "hyprctl switchxkblayout all next"; }; pulseaudio = { format = "{icon} {volume}%"; format-muted = "󰖁 "; format-icons = { default = ["󰕿" "󰖀" "󰕾"]; headphone = "󰋋"; }; tooltip-format = "{desc}"; on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; on-click-right = "pavucontrol"; on-scroll-up = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"; on-scroll-down = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; }; tray = { icon-size = 18; spacing = 8; }; }; }; }; }