{ hostname, ...}: { imports = [ ./scripts/waybar-scripts.nix ]; home.file = { # https://yewtu.be/watch?v=tWQB1NDDA9c # https://github.com/DN-debug/waybar-examples # Inspiration: # https://github.com/Pipshag/dotfiles_gruvbox # Font Search: # https://www.nerdfonts.com/cheat-sheet # Online CSS testing # https://www.w3schools.com/css/tryit.asp?filename=trycss_border_round # Waybar configuration ".config/waybar/config.jsonc" = { enable = true; executable = false; text = '' { "layer": "top", "position": "top", "modules-left": [ "custom/wlogout", "idle_inhibitor", "clock", "mpris", ], "modules-center": [ "wlr/workspaces", ], "modules-right": [ "pulseaudio", "custom/tailscale", "network", "battery", ], "custom/wlogout": { "format": "", "on-click": "wlogout" }, "custom/tailscale": { "format": "{icon} {}", "exec": "$HOME/.config/waybar/scripts/tailscale.sh", "exec-if": "pgrep tailscaled", "return-type": "json", "interval": 5, "format-icons": { "Running": "󰌆", "Stopped": "󰌊", } }, "idle_inhibitor": { "format": "{icon}", "format-icons": { "activated": "", "deactivated": "" } }, "mpris": { "format": "{player_icon} {dynamic}", "format-paused": "{status_icon} {dynamic}", "player-icons": { "default": "▶" }, "status-icons": { "paused": "⏸" }, }, "wlr/workspaces": { "on-click": "activate" }, "clock": { "format": "󰥔 {:%H:%M}", "format-alt": "󰃭 {:%A, %d %b, %Y}", "tooltip-format": "{calendar}", "calendar": { "mode" : "month", "mode-mon-col" : 3, "weeks-pos" : "left", "on-scroll" : 1, "format": { "months": "{}", "days": "{}", "weeks": "W{}", "weekdays": "{}", "today": "{}" } }, "actions": { "on-click-right": "kitty -e calcurse", "on-click-middle": "mode", "on-scroll-up": "shift_up", "on-scroll-down": "shift_down" } }, "pulseaudio": { "scroll-step": 1, "format": "{icon} {format_source}", "format-bluetooth": "{volume}% {icon} {format_source}", "format-bluetooth-muted": " ", "format-muted": "󰝟 {format_source}", "format-source": " ", "format-source-muted": " ", "format-icons": { "headphone": "", "headset": "", "default": ["󰕿", "󰖀", "󰕾"] }, "tooltip": false, "on-click": "kitty -e pulsemixer", }, "network": { "format": "{ifname}", "format-wifi": " {essid}", "format-ethernet": " {ipaddr}", "format-disconnected": "", // An empty format will hide the module. "tooltip-format": "{ifname} via {gwaddr} ", "tooltip-format-wifi": "{essid} ({signalStrength}%) ", "tooltip-format-ethernet": "{ifname} ", "tooltip-format-disconnected": "Disconnected", "max-length": 50, "on-click": "kitty --class=nmtui -e nmtui" }, "battery": { "tooltip": true, "tooltip-format": "{time}", "states": { "warning": 35, "critical": 20 }, "format": "{icon} {capacity}%", "format-charging": "󰂄 {capacity}%", "format-plugged": " {capacity}%", "format-icons": ["", "", "", "", ""] }, } ''; }; # Waybar theming ".config/waybar/style.css" = { enable = true; executable = false; text = '' * { border: none; border-radius: 0; font-family: JetbrainsMono-Regular; } #waybar { background-color: rgba(50, 48, 47, 0.8); padding: 5px; } #workspaces button.visible, #workspaces button { font-size: 1px; border-radius: 50px; padding: 0px 5px; margin: 5px; color: rgba(0, 0, 0, 0); background-color: #3c3836; font-weight: bold; } #workspaces button.active { padding: 0px 15px; background-color: #a89984; } #workspaces button:hover, #workspaces button.focused:hover, #workspaces button.visible:hover { background-color: #e9b143; } #workspaces button.urgent { background-color: #f2594b; } /* * General background */ #network, #mpris, #memory, #backlight, #cpu, #pulseaudio, #temperature, #battery, #tray, #submap, #clock, #idle_inhibitor, #custom-tailscale, #custom-wlogout, #window { font-size: 16px; padding: 0px 10px; margin: 5px; border-radius: 5px; color: rgba(50, 48, 47, 0.8); background-color: #a89984; font-weight: bold; } /* * Warning plugins state */ #battery.warning { background-color: #e9b143; } /* * Critical plugins state */ #idle_inhibitor.activated, #battery.critical, #custom-tailscale.Stopped, #network.disconnected { background-color: #f2594b; } #battery.charging { color: #98971a; } #battery.plugged { color: #458588; } #pulseaudio.bluetooth { color: #458588; } tooltip { color: #e2cca9; font-size: 14px; } ''; }; }; }