From ff6495d50a458df0015ca6e9b8aab2d235a1dae6 Mon Sep 17 00:00:00 2001 From: alexion Date: Fri, 4 Sep 2026 22:46:29 -0400 Subject: [PATCH 1/3] feat(nixos): configure zeus monitor layout --- configs/nixos/hosts/zeus/default.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/configs/nixos/hosts/zeus/default.nix b/configs/nixos/hosts/zeus/default.nix index 60cd39f..cad6b5c 100644 --- a/configs/nixos/hosts/zeus/default.nix +++ b/configs/nixos/hosts/zeus/default.nix @@ -1,4 +1,9 @@ -{ lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: # zeus — Ryzen desktop with AMD graphics. # Disk layout is in ./disk.nix. # `fileSystems` are derived from it, none declared here. @@ -45,6 +50,11 @@ modules.desktop.apps.obsidian.enable = true; modules.desktop.apps.steam.enable = true; + home-manager.users.${config.user.name}.wayland.windowManager.hyprland.settings.monitor = [ + "HDMI-A-1,1920x1080@120,0x0,1,transform,3" + "DP-3,2560x1440@239.96,1080x0,1" + ]; + time.timeZone = "America/New_York"; i18n.defaultLocale = "en_GB.UTF-8"; } -- 2.47.3 From 55c5fdf1bc236d3158d813b145607f3833df4dd4 Mon Sep 17 00:00:00 2001 From: alexion Date: Fri, 4 Sep 2026 22:58:20 -0400 Subject: [PATCH 2/3] fix(nixos): improve waybar network display --- .../nixos/modules/desktop/session/waybar.nix | 54 ++++++++++++++++--- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/configs/nixos/modules/desktop/session/waybar.nix b/configs/nixos/modules/desktop/session/waybar.nix index 3b00b7b..48d82b8 100644 --- a/configs/nixos/modules/desktop/session/waybar.nix +++ b/configs/nixos/modules/desktop/session/waybar.nix @@ -47,6 +47,38 @@ let printf '{"text":"","class":"idle"}\n' fi ''; + + networkStatus = pkgs.writeShellScript "waybar-network-status" '' + active=$( + ${pkgs.networkmanager}/bin/nmcli -t -f DEVICE,TYPE,STATE,CONNECTION device status \ + | ${pkgs.gawk}/bin/awk -F: '$3 == "connected" && $2 != "loopback" { print; exit }' + ) + + if [ -z "$active" ]; then + ${pkgs.jq}/bin/jq -cn \ + --arg text "${g "f127"} off" \ + --arg tooltip "Network disconnected" \ + --arg class "disconnected" \ + '{ text: $text, tooltip: $tooltip, class: $class }' + exit 0 + fi + + IFS=: read -r device type _state connection <<< "$active" + + case "$type" in + wifi) icon="${g "f1eb"}" ;; + ethernet) icon="LAN" ;; + *) icon="NET" ;; + esac + + ipaddr=$(${pkgs.iproute2}/bin/ip -4 -o addr show dev "$device" | ${pkgs.gawk}/bin/awk '{ print $4; exit }') + + ${pkgs.jq}/bin/jq -cn \ + --arg text "$icon $connection" \ + --arg tooltip "$device: ''${ipaddr:-no IPv4}" \ + --arg class "$type" \ + '{ text: $text, tooltip: $tooltip, class: $class }' + ''; in { options.modules.desktop.session.waybar.enable = lib.mkEnableOption "the Waybar status bar"; @@ -63,10 +95,21 @@ in # so the bar comes up with the session and no compositor exec-once. systemd.enable = true; + style = '' + .modules-right { + margin-right: 8px; + } + + #custom-dnd { + margin-right: 8px; + } + ''; + settings.mainBar = { layer = "top"; position = "top"; height = 30; + spacing = 8; modules-left = [ "hyprland/workspaces" ]; modules-center = [ "clock" ]; @@ -75,7 +118,7 @@ in "custom/idle-lock" "mpris" "wireplumber" - "network" + "custom/network" "battery" "custom/dnd" ]; @@ -128,11 +171,10 @@ in on-click = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }; - network = { - format-wifi = "${g "f1eb"} {essid}"; - format-ethernet = "${g "f796"} {ifname}"; - format-disconnected = "${g "f127"} off"; - tooltip-format = "{ipaddr} via {gwaddr}"; + "custom/network" = { + return-type = "json"; + exec = "${networkStatus}"; + interval = 5; }; battery = { -- 2.47.3 From b768f96e0b60391b404465e1f7d85a4f9564af28 Mon Sep 17 00:00:00 2001 From: alexion Date: Fri, 4 Sep 2026 23:15:34 -0400 Subject: [PATCH 3/3] feat(nixos): add Signal and Vesktop to Zeus --- configs/nixos/hosts/zeus/default.nix | 2 ++ configs/nixos/modules/desktop/apps/signal.nix | 18 ++++++++++++++++++ configs/nixos/modules/desktop/apps/vencord.nix | 18 ++++++++++++++++++ .../nixos/modules/desktop/session/waybar.nix | 2 ++ 4 files changed, 40 insertions(+) create mode 100644 configs/nixos/modules/desktop/apps/signal.nix create mode 100644 configs/nixos/modules/desktop/apps/vencord.nix diff --git a/configs/nixos/hosts/zeus/default.nix b/configs/nixos/hosts/zeus/default.nix index cad6b5c..7f11ef4 100644 --- a/configs/nixos/hosts/zeus/default.nix +++ b/configs/nixos/hosts/zeus/default.nix @@ -48,7 +48,9 @@ modules.desktop.enable = true; modules.desktop.apps.obsidian.enable = true; + modules.desktop.apps.signal.enable = true; modules.desktop.apps.steam.enable = true; + modules.desktop.apps.vencord.enable = true; home-manager.users.${config.user.name}.wayland.windowManager.hyprland.settings.monitor = [ "HDMI-A-1,1920x1080@120,0x0,1,transform,3" diff --git a/configs/nixos/modules/desktop/apps/signal.nix b/configs/nixos/modules/desktop/apps/signal.nix new file mode 100644 index 0000000..2c534d4 --- /dev/null +++ b/configs/nixos/modules/desktop/apps/signal.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: +# Signal desktop messenger. +let + cfg = config.modules.desktop.apps.signal; + user = config.user.name; +in +{ + options.modules.desktop.apps.signal.enable = lib.mkEnableOption "Signal desktop messenger"; + + config = lib.mkIf cfg.enable { + home-manager.users.${user}.home.packages = [ pkgs.signal-desktop ]; + }; +} diff --git a/configs/nixos/modules/desktop/apps/vencord.nix b/configs/nixos/modules/desktop/apps/vencord.nix new file mode 100644 index 0000000..1245967 --- /dev/null +++ b/configs/nixos/modules/desktop/apps/vencord.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: +# Vesktop, a Discord client with Vencord built in. +let + cfg = config.modules.desktop.apps.vencord; + user = config.user.name; +in +{ + options.modules.desktop.apps.vencord.enable = lib.mkEnableOption "Vesktop, a Discord client with Vencord built in"; + + config = lib.mkIf cfg.enable { + home-manager.users.${user}.home.packages = [ pkgs.vesktop ]; + }; +} diff --git a/configs/nixos/modules/desktop/session/waybar.nix b/configs/nixos/modules/desktop/session/waybar.nix index 48d82b8..c6310da 100644 --- a/configs/nixos/modules/desktop/session/waybar.nix +++ b/configs/nixos/modules/desktop/session/waybar.nix @@ -137,7 +137,9 @@ in "class" = g "f268"; "class<[Cc]ode>" = g "f121"; "class" = g "f02d"; + "class<[Ss]ignal>" = g "f4ad"; "class<[Ss]team>" = g "f1b6"; + "class<[Vv]esktop>" = g "f1ff"; }; }; -- 2.47.3