{ config, lib, pkgs, username, ... }: { imports = [ (import ./scripts.nix) ]; programs.waybar = { enable = true; package = pkgs.waybar.overrideAttrs (oa: { mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ]; }); systemd = { enable = false; target = "graphical-session.target"; }; }; home.file = { "/home/${username}/.config/waybar/config" = { text = '' [{ "layer": "top", "position": "top", "modules-left": [ "privacy", "network", "custom/vpn", "custom/devices", "custom/spotify", "tray", ], "modules-center": [ "hyprland/workspaces", ], "modules-right": [ "custom/yubikey#icon", "custom/yubikey#data", "group/hardware", "group/resources", "bluetooth", // "wireplumber", "group/audio", "group/battery", "group/clock" ], "hyprland/window": { "format": "{}", "rewrite": { "(.*) - zsh": "> [$1]" }, "separate-outputs": true }, "sway/workspaces": { "all-outputs": true, "disable-scroll": true, "format": "{name}" }, "hyprland/workspaces": { "all-outputs": true, "disable-scroll": true, "format": "{name}" }, // "group/network": { // "orientation": "horizontal", // "modules": [ // "network", // "custom/vpn", // ], // "drawer": { // "transition-left-to-right": true, // "transition-duration": 500 // } // }, "network": { "format": "󰈀 {ifname}", // "format-wifi": "WLAN: {essid} - {ipaddr}/{cidr} {signalStrength}%", "format-wifi": "WLAN: {ipaddr}/{cidr} {signalStrength}%", "format-ethernet": "LAN: {ipaddr}/{cidr}", "format-disconnected": "WLAN: down", "tooltip-format": "{ifname} via {gwaddr}", "tooltip-format-wifi": "{essid} ({signalStrength}%)", "tooltip-format-ethernet": "{ifname}", "tooltip-format-disconnected": "Disconnected" }, "custom/vpn": { "format": "{icon}", "tooltip-format": "{text}", "format-icons": [ "","" ], "return-type": "json", "exec": "~/.local/bin/waybar-vpn", "interval": 30 }, "custom/spotify": { "interval": 5, "return-type": "json", "exec": "~/.local/bin/waybar-music", "on-click": "playerctl play-pause", "escape": true }, "custom/devices": { "interval": 60, "font-size": 18, // "return-type": "json", "exec": "~/.local/bin/waybar-devices", }, "privacy": { "icon-spacing": 8, "icon-size": 14, "transition-duration": 250, "modules": [ { "type": "screenshare", "tooltip": true, "tooltip-icon-size": 24 }, { "type": "audio-out", "tooltip": true, "tooltip-icon-size": 24 }, { "type": "audio-in", "tooltip": true, "tooltip-icon-size": 24 } ] }, "tray": { "icon-size": 12, "spacing": 0 }, "sway/mode": { "format": " {}", "tooltip": false }, "custom/yubikey#icon": { "exec": "~/.local/bin/waybar-yubikey 0", "return-type": "json" }, "custom/yubikey#data": { "exec": "~/.local/bin/waybar-yubikey 1", "return-type": "json" }, "group/hardware": { "orientation": "horizontal", "modules": [ "cpu", "temperature#cpu", "temperature#gpu", "temperature#nvme", "temperature#wifi" ], "drawer": { "transition-left-to-right": false, "transition-duration": 500 } }, "cpu": { "interval": 30, "format": "FREQ: {avg_frequency:3.2f}GHz {usage}% ", "states": { "warning": 70, "critical": 90 }, }, "temperature#cpu": { "hwmon-path": "/sys/class/hwmon/hwmon5/temp1_input", "critical-threshold": 80, "format": "CPU {temperatureC}°C" }, "temperature#gpu": { "hwmon-path": "/sys/class/hwmon/hwmon0/temp1_input", "critical-threshold": 80, "format": "GPU {temperatureC}°C" }, "temperature#nvme": { "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input", "critical-threshold": 80, "format": "NVMe {temperatureC}°C" }, "temperature#wifi": { "hwmon-path": "/sys/class/hwmon/hwmon11/temp1_input", "critical-threshold": 80, "format": "WiFi {temperatureC}°C" }, "group/resources": { "orientation": "horizontal", "modules": [ "memory", "disk#root" ], "drawer": { "transition-left-to-right": false, "transition-duration": 500 } }, "memory": { "interval": 60, "format": "RAM: {used:3.1f}GiB/{total:3.1f}GiB " }, "disk#root": { "interval": 360, "format": "DISK: {used}/{total}", "path": "/" }, "bluetooth": { // "controller": "controller1", "on-click": "~/.local/bin/waybar-bluetooth toggle", "format": "󰂲", "format-disabled": "", "format-connected": "", "format-connected-battery": " {device_battery_percentage}%", "tooltip-format": "{controller_alias}\t\t[{controller_address}]", "tooltip-format-connected": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}", "tooltip-format-connected-battery": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}", "tooltip-format-enumerate-connected": "{device_alias}\t\t[{device_address}]", "tooltip-format-enumerate-connected-battery": "{device_alias} ({device_battery_percentage})\t\t[{device_address}]" }, "group/audio": { "orientation": "horizontal", "modules": [ "wireplumber", "custom/audio-internal", "custom/audio-headphones", "custom/audio-hdmi" ], "drawer": { "transition-left-to-right": false, "transition-duration": 500 } }, "wireplumber": { "format": "{icon} {node_name}/{volume}", "format-muted": "", "on-click": "pavucontrol-qt", "on-click-right": "helvum", "format-icons": ["", "", ""] }, "custom/audio-internal": { "format": "󱡬 ", "tooltip-format": "Internal", "on-click": "audio-router analog", "interval": "once" }, "custom/audio-hdmi": { "format": "󰡁 ", "tooltip-format": "HDMI", "on-click": "audio-router hdmi", "interval": "once" }, "group/battery": { "orientation": "horizontal", "modules": [ "battery", "custom/powerdraw" ], "drawer": { "transition-left-to-right": false, "transition-duration": 500 } }, "battery": { "bat": "BAT1", "interval": 20, "states": { "warning": 20, "critical": 10 }, "format-time": "{H}:{m}", "format": "BATT: {time} {capacity}%", "format-alt": "BATT: {time} ", "format-discharging": "BATT: {capacity}%", "format-discharging-warning": "BATT: {capacity}%", "format-discharging-critical": "BATT: {capacity}%", "format-charging": "BATT: {capacity}% @ {power:2.0f}W", "format-full": "BATT: 󱐥 {capacity}%", "format-not-charging": "BATT: 󱐤 {capacity}%", // "format-icons": [" ", " ", " ", " ", " "], // use {icon} }, "custom/powerdraw": { "interval": 60, "exec": "~/.local/bin/waybar-powerdraw", }, "group/clock": { "orientation": "horizontal", "modules": [ "clock#time", "custom/clock#minutes", "clock#date" ], "drawer": { "transition-left-to-right": false, "transition-duration": 500 } }, "clock#date": { "interval": 60, "format": " {:%a %e %b %Y}", "tooltip-format": "{:%B %Y}\n{calendar}", "calendar": { "mode" : "year", "mode-mon-col" : 2, "weeks-pos" : "right", "on-scroll" : 1, "format": { "months": "{}", "days": "{}", "weeks": "W{}", "weekdays": "{}", "today": "{}" } }, "actions": { "on-click-right": "mode", "on-scroll-up": "shift_up", "on-scroll-down": "shift_down" } }, "clock#time": { "interval": 60, "format": "CEST: {:%I:%M %p}", "actions": { "on-scroll-up": "tz_up", "on-scroll-down": "tz_down" } }, "custom/clock#minutes": { "interval": 60, "format": "CEST: {} ", "exec": "~/.local/bin/waybar-minutes" } } ] ''; }; "/home/${username}/.config/waybar/style.css" = { text = '' * { border: none; border-radius: 0; font-family: 'GohuFont 11 Nerd Font Mono'; font-weight: 400; font-size: 14px; min-height: 26px; /* margin: 0 0px; */ } window#waybar.top { /* background-color: rgba(115, 116, 116, 0.22); */ background-color: rgba(0, 0, 0, 0.25); border-top: none; color: #eeeeee; transition-property: background-color; transition-duration: .5s; } window#waybar.hidden { /* opacity: 0.25; */ opacity: 0.00; } label#window { text-shadow: 0px 0px 3px #18181e; } tooltip { background: rgba(43, 48, 59, 0.5); border: 1px solid rgba(100, 114, 125, 0.5); } tooltip label { color: white; } .modules-left > widget > label, .modules-left > box > widget > label, .modules-right > widget > label, .modules-right > box > widget > label { padding: 0 10px; margin: 0px 0px 0px 10px; } #network, #resourcese { padding: 0px 2px 0px 2px; } #audio, #battery, #clock { padding: 0px 6px 0px 6px; } .drawer-child > label { margin: 0px 10px; } #custom-audio-internal, #custom-audio-motu, #custom-audio-headphones, #custom-audio-hdmi { padding: 4px 2px; border-radius: 0px; } #workspaces { margin: 0px 0px 0px 0px; } #workspaces button { /*padding: 4px 6px;*/ padding: 4px 6px; color: #aaaaaa; border-radius: 0px; /*min-width: 32px;*/ } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ #workspaces button:hover { box-shadow: inherit; text-shadow: inherit; background: transparent; color: #ffffff; } #workspaces button.active { box-shadow: inherit; text-shadow: inherit; background: transparent; color: #ffffff; } #workspaces button.focused { color: #eeeeee; } #workspaces button.focused:hover { color: #ffffff; } #workspaces button.urgent { color: #ffffff; background-color: #e27878; } #language { /* margin: 0px 0px 0px 0px; */ color: #cccccc; } #tray { background-color: rgba(0, 0, 0, 0); /* margin-left: 10px; */ } #tray image { margin: 0px 10px 0px 0px; } #mode { background-color: rgba(0, 0, 0, 0); border: 2px solid #e2a478; margin: 0px 10px 0px 0px; border-radius: 5px; } #custom-yubikey.icon { background: #f9409d; } #custom-spotify { color: #ffffff; padding-right: 5px; } #custom-devices { color: #ffffff; padding: 0px 2px 0px 2px; } #custom-powerdraw { color: #ffffff; padding: 0px; } ''; }; }; }