From 10a50773e10daeba19ef17517653a0458d4ecf04 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 23 Sep 2025 15:33:56 +0200 Subject: [PATCH 01/51] xps monitors --- home-modules/hyprland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix index 0e5cdfb..b950bde 100644 --- a/home-modules/hyprland.nix +++ b/home-modules/hyprland.nix @@ -7,7 +7,7 @@ let monitors = { xps = { main = { name = "eDP-1"; resolution = "1920x1200"; position = "1920x1080"; scale = "1.0"; }; - second = { name = "DP-5"; resolution = "1920x1080"; position = "1920x0"; scale = "1.0"; }; + second = { name = "desc:Sony SONY TV 0x01010101"; resolution = "1920x1080"; position = "1920x0"; scale = "1.0"; }; third = { name = "DP-6"; resolution = "1920x1080"; position = "0x0"; scale = "1.0"; }; }; north = { From 939965746961928b07b33bc897ed83a5984d5ef1 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 23 Sep 2025 15:34:11 +0200 Subject: [PATCH 02/51] opaque vesktop --- home-modules/hyprland.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix index b950bde..1451d0e 100644 --- a/home-modules/hyprland.nix +++ b/home-modules/hyprland.nix @@ -258,12 +258,11 @@ in { "opacity ${transparency}, class:^(Code)$" "opacity ${transparency}, class:^(code-oss)$" "opacity ${transparency}, class:^(discord)$" - "opacity ${transparency}, class:^(vesktop)$" + # "opacity ${transparency}, class:^(vesktop)$" # "opacity ${transparency}, class:^(Element)$" "opacity ${transparency}, class:^(lutris)$" "opacity ${transparency}, class:^(neovide)$" # "opacity ${transparency}, class:^(obsidian)$" - "opacity ${transparency}, class:^(vesktop)$" "opacity ${transparency}, class:^(VSCodium)$" "opacity ${transparency}, title:^(wlogout)$" From caf48a81dd5271ee8a0f65c8e066be632100a526 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 23 Sep 2025 15:34:23 +0200 Subject: [PATCH 03/51] no element hotkey --- home-modules/hyprland.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix index 1451d0e..0720c3e 100644 --- a/home-modules/hyprland.nix +++ b/home-modules/hyprland.nix @@ -362,7 +362,7 @@ in { "SUPER, Q, killactive" "SUPER, W, exec, submap_indicator set '󰈹 '" "SUPER, W, submap, browserSM " - "SUPER, E, exec, element-desktop" + # "SUPER, E, exec, element-desktop" "SUPER, R, exec, rofi -show drun" # "SUPER, T, exec, alacritty" # "SUPER SHIFT, T, exec, alacritty -e sh -c "ssh nxace"" From 9f49dbbd98cec5c43a5c72d6713807a4bdf1580a Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 23 Sep 2025 15:39:06 +0200 Subject: [PATCH 04/51] souce hm-session-vars only if user --- configuration.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configuration.nix b/configuration.nix index 427350e..2e8762e 100644 --- a/configuration.nix +++ b/configuration.nix @@ -65,6 +65,8 @@ system.stateVersion = hyper.pkgs-version; nix.settings.experimental-features = [ "nix-command" "flakes" ]; programs.bash.shellInit = '' - source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh + if [[ "$USER" == "${hyper.user}" ]]; then + source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh + fi ''; } From d8704de501aacbf5aa6e4ee59c59a2c76849d76f Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Thu, 25 Sep 2025 07:20:36 +0000 Subject: [PATCH 05/51] wsl adjustments --- nixos-wsl.nix | 5 +++-- shell-only.nix | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/nixos-wsl.nix b/nixos-wsl.nix index dc484cd..191a2a6 100644 --- a/nixos-wsl.nix +++ b/nixos-wsl.nix @@ -2,15 +2,16 @@ { imports = [ inputs.nixos-wsl.nixosModules.default - ./system-modules/users.nix - ./system-modules/gc.nix + ./system-modules/base-packages.nix ./system-modules/docker.nix + ./system-modules/gc.nix ./system-modules/gpg.nix ./system-modules/networking.nix ./system-modules/nixd.nix # ./system-modules/sops.nix # ./system-modules/sshd.nix # ./system-modules/syncthing.nix + ./system-modules/users.nix ]; system.stateVersion = pkgs.version; # system.stateVersion = "24.11"; diff --git a/shell-only.nix b/shell-only.nix index bf972ea..4f29f55 100644 --- a/shell-only.nix +++ b/shell-only.nix @@ -31,7 +31,7 @@ home.username = hyper.user; # home.homeDirectory = hyper.home; # for some reason you cant use hyper.home here home.homeDirectory = "/home/${hyper.user}"; - home.stateVersion = pkgs.version; + home.stateVersion = hyper.pkgs-version; xdg = { enable = true; configHome = "${hyper.home}/.config"; From 511dac22a828b04ba7baba09498cce2eca821d2d Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Thu, 25 Sep 2025 07:23:33 +0000 Subject: [PATCH 06/51] wsl manages resolv.conf --- system-modules/networking.nix | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/system-modules/networking.nix b/system-modules/networking.nix index 246a0f5..0b43ad8 100644 --- a/system-modules/networking.nix +++ b/system-modules/networking.nix @@ -1,11 +1,6 @@ -{ config, pkgs, ... }@all: with all; -{ - # sops.secrets = { - # "wireless-networking.env" = {}; - # }; - +{ config, pkgs, ... }@all: with all; { networking = { - nameservers = [ + nameservers = pkgs.lib.mkIf (hyper.host != "NxWSL") [ # wsl manages resolv.conf "1.1.1.1" "8.8.8.8" ]; From fa168f01a6c3d5d2137b5d6b131370b9fadc1e98 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Thu, 25 Sep 2025 08:03:24 +0000 Subject: [PATCH 07/51] nxf robustness --- home-modules/fish.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/home-modules/fish.nix b/home-modules/fish.nix index e6a721e..07b33b4 100644 --- a/home-modules/fish.nix +++ b/home-modules/fish.nix @@ -20,12 +20,12 @@ " | lolcat --force 2> /dev/null) msg=" - $(echo -e "$logo" | sed -n 3p): $(cat /etc/*-release | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev) + $(echo -e "$logo" | sed -n 3p): $(cat /etc/*-releas 2> /dev/null || echo 'PRETTY_NAME="[No Release]"' | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev) $(echo -e "$logo" | sed -n 4p): ''${XDG_CURRENT_DESKTOP^} $(echo -e "$logo" | sed -n 5p): ''${TERM^} $(echo -e "$logo" | sed -n 6p): $(bash --version | head --lines 1 | cut -f -4 -d' ' | sed -E 's-(.*?), version (.*?)\(.*-\1 \2-g') $(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev | sed 's/./\U&/') - $(echo -e "$logo" | sed -n 8p): ''$(uname -r) + $(echo -e "$logo" | sed -n 8p): ''$(uname -r | sed -E 's=(.+-.+-.+-.+)-.+=\1=g') $(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g' | sed 's/./\U&/') $(echo -e "$logo" | sed -n 10p): $(yazi --version | sed -E 's-(.*?) \(.*-\1-g') $(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1 | sed 's/./\U&/') @@ -112,7 +112,7 @@ ''; nx_backup = let destination = if hyper.host == "NxNORTH" then "${hyper.home}/shared/" else "${hyper.home}/backups/"; - in pkgs.lib.mkIf (hyper.host != "NxACE") '' + in pkgs.lib.mkIf (hyper.host != "NxACE" && hyper.host != "NxWSL") '' set RPATH (curl -s https://${hyper.domain}/latest-backup) rsync -avz --info=progress2 -e "ssh -p ${builtins.toString secrets.ssh.port}" ${hyper.user}@ssh.${hyper.domain}:"$RPATH" ${destination} ''; From aa6962cb0defde543ef4f4d84e6893f71e030d66 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:02:32 +0200 Subject: [PATCH 08/51] twitch oauth chatterino --- git-crypt/secrets.nix | Bin 3552 -> 3552 bytes home-modules/spotify.nix | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 home-modules/spotify.nix diff --git a/git-crypt/secrets.nix b/git-crypt/secrets.nix index ef17bb3b8f964d0e4ffafb641be5905a32ba7a7e..63bb135e31ba0055984f90a031f5a5574fa8ca6b 100644 GIT binary patch literal 3552 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 Oou1B^AODMO>SO>>vIBtt literal 3552 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 Ijs{g<0JXvEga7~l diff --git a/home-modules/spotify.nix b/home-modules/spotify.nix new file mode 100644 index 0000000..09fb1ca --- /dev/null +++ b/home-modules/spotify.nix @@ -0,0 +1,29 @@ +{ pkgs, ... }@all: with all; +{ + home = { + programs.spotify-player = { + enable = true; + settings = { + theme = "default"; + # border_type = "Rounded"; + progress_bar_type = "Line"; + playback_window_position = "Bottom"; + play_icon = ""; + pause_icon = ""; + liked_icon = ""; + copy_command = { + command = "wl-copy"; + args = [ ]; + }; + # client_id = "65b708073fc0480ea92a077233ca87bd"; + client_port = 8888; + ap_port = 443; + device = { + audio_cache = true; + normalization = true; + volume = 50; + }; + }; + }; + }; +} From ea3d4937ffbce4973a318c1f0eccc13d6d8a2ee3 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:02:55 +0200 Subject: [PATCH 09/51] hyprpanel fix caldav_event polling --- home-modules/bar/hyprpanel.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home-modules/bar/hyprpanel.nix b/home-modules/bar/hyprpanel.nix index 128719d..92015cf 100644 --- a/home-modules/bar/hyprpanel.nix +++ b/home-modules/bar/hyprpanel.nix @@ -27,7 +27,7 @@ "custom/caldav_event" = { execute = "caldav_event"; label = "󰃰 {}"; - interval = 1000; + interval = 60000; hideOnEmpty = false; actions = {}; }; From a4d6b98b4b2bef61d5db97849ac21bbde7bd7196 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:03:15 +0200 Subject: [PATCH 10/51] hyprpanel move media to the left --- home-modules/bar/hyprpanel.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home-modules/bar/hyprpanel.nix b/home-modules/bar/hyprpanel.nix index 92015cf..ab9267b 100644 --- a/home-modules/bar/hyprpanel.nix +++ b/home-modules/bar/hyprpanel.nix @@ -51,12 +51,12 @@ # "bluetooth" "network" "windowtitle" + "media" ]; "middle" = [ "workspaces" ]; "right" = [ "submap" "custom/caldav_event" - "media" "custom/cclock" "notifications" "systray" From 6a4f270959c2e07c6bf59c35fe253af64f57729e Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:03:30 +0200 Subject: [PATCH 11/51] playerctl --- home-modules/pkgs-list/desktop.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/home-modules/pkgs-list/desktop.nix b/home-modules/pkgs-list/desktop.nix index d718c52..ea526de 100644 --- a/home-modules/pkgs-list/desktop.nix +++ b/home-modules/pkgs-list/desktop.nix @@ -1,5 +1,6 @@ { pkgs, ... }@all: with all; { home.packages = with pkgs; [ + xdg-desktop-portal brightnessctl blueman fontpreview @@ -7,7 +8,7 @@ gsettings-desktop-schemas imv pavucontrol - # playerctl + playerctl swww wev wl-clipboard From 9d28a08cd4cc43a0e5ebc80f3baeeb6bfb8e5091 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:04:09 +0200 Subject: [PATCH 12/51] spotify --- home-modules/pkgs-list/programs.nix | 1 - home-modules/spotify.nix | 75 ++++++++++++++++++++--------- home.nix | 1 + 3 files changed, 52 insertions(+), 25 deletions(-) diff --git a/home-modules/pkgs-list/programs.nix b/home-modules/pkgs-list/programs.nix index c936a71..793b4d4 100644 --- a/home-modules/pkgs-list/programs.nix +++ b/home-modules/pkgs-list/programs.nix @@ -3,7 +3,6 @@ chromium element-desktop qbittorrent - unstable.spotify wl-clipboard xfce.thunar ] ++ (if (hyper.host != "NxACE") then [ diff --git a/home-modules/spotify.nix b/home-modules/spotify.nix index 09fb1ca..1ef4a6d 100644 --- a/home-modules/spotify.nix +++ b/home-modules/spotify.nix @@ -1,29 +1,56 @@ { pkgs, ... }@all: with all; { - home = { - programs.spotify-player = { - enable = true; - settings = { - theme = "default"; - # border_type = "Rounded"; - progress_bar_type = "Line"; - playback_window_position = "Bottom"; - play_icon = ""; - pause_icon = ""; - liked_icon = ""; - copy_command = { - command = "wl-copy"; - args = [ ]; - }; - # client_id = "65b708073fc0480ea92a077233ca87bd"; - client_port = 8888; - ap_port = 443; - device = { - audio_cache = true; - normalization = true; - volume = 50; - }; - }; + home.packages = with pkgs; [ + unstable.spotify + ]; + services.librespot = { + enable = true; + package = pkgs.unstable.librespot; + }; + sops.secrets."spotify/spotiy-player-clinet-id" = { path = "%r/secrets/spotify/spotiy-player-clinet-id"; }; + programs.spotify-player = { + enable = true; + package = pkgs.unstable.spotify-player; + settings = { + border_type = "Rounded"; + client_id_command = "cat $XDG_RUNTIME_DIR/secrets/spotify/spotiy-player-clinet-id"; + copy_command.command = "wl-copy"; + cover_img_length = 20; + cover_img_scale = 1; # if this is not 1 it doesnt fit in the box (for me) + cover_img_width = 9; # this ratio depends on your terminal font + device.normalization = true; + genre_num = 32; # all of them + liked_icon = ""; + name = "spotify-player-${hyper.host}"; + pause_icon = ""; + playback_window_position = "Bottom"; + play_icon = ""; + progress_bar_position = "Right"; # "Bottom" + progress_bar_type = "Rectangle"; # "Line" + theme = "${hyper.user}"; }; + themes = [{ + name = "${hyper.user}"; + component_style = with rice.color; { + block_title = { fg = accent.bright; }; + border = { fg = border; }; + current_playing = { fg = special.base; bg = special.darker; modifiers = ["Italic"]; }; + like = { fg = positive.base; }; + lyrics_played = { fg = subtle.base; }; + lyrics_playing = { fg = special.base; }; + page_desc = { fg = secondary.base; }; + playback_album = { fg = secondary.base; }; + playback_artists = { fg = secondary.base; }; + playback_genres = { fg = subtle.base; }; + playback_metadata = { fg = accent.base; bg = background; }; + playback_progress_bar = { fg = accent.brighter; bg = accent.dark; modifiers = ["Bold"]; }; + playback_status = { fg = accent.bright; }; + playback_track = { fg = accent.bright; modifiers = ["Bold"]; }; + secondary_row = { fg = secondary.base; }; + selection = { bg = accent.dark; }; + table_header = { fg = tertiary.bright; }; + # playback_progress_bar_unfilled (Specific to progress_bar_type as Line) = ""; + }; + }]; }; } diff --git a/home.nix b/home.nix index 194c3dc..f06d957 100644 --- a/home.nix +++ b/home.nix @@ -55,6 +55,7 @@ ./home-modules/scanning.nix ./home-modules/sent.nix ./home-modules/sops.nix + ./home-modules/spotify.nix ./home-modules/ssh.nix ./home-modules/starship.nix ./home-modules/tts.nix From cea416b457e48bfd856534651e3b1c91b7ebd280 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:05:15 +0200 Subject: [PATCH 13/51] chatterino update --- home-modules/chatterino.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/home-modules/chatterino.nix b/home-modules/chatterino.nix index 2faa000..9a360de 100644 --- a/home-modules/chatterino.nix +++ b/home-modules/chatterino.nix @@ -6,7 +6,7 @@ let # "asmongold" # "Caedrel" # "EintrachtSpandau" - "GamesDoneQuick" + # "GamesDoneQuick" "Odoamne" "iwdominate" "imls" @@ -20,13 +20,13 @@ let "lol_nemesis" # "NASA" "NoWay4u_Sir" - "OfficialMikeShinoda" + # "OfficialMikeShinoda" "Rekkles" "riotgames" "thebausffs" "ThePrimeagen" "Tolkin" - # "TSM_ImperialHal" + "imperialhal__" "velja_lol" # "Xisuma" "zackrawrr" @@ -46,7 +46,7 @@ let }; }; in { - sops.secrets."streamlink/twitch-oauth" = { path = "%r/secrets/streamlink/twich-oauth"; }; + # sops.secrets."streamlink/twitch-oauth" = { path = "%r/secrets/streamlink/twich-oauth"; }; home = { packages = with pkgs; [ From 60b4066e9b2951e8a2aff9f19abdb24b4693072e Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:07:37 +0200 Subject: [PATCH 14/51] lazygit define pkg --- home-modules/git.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home-modules/git.nix b/home-modules/git.nix index eda9977..9f9b1c5 100644 --- a/home-modules/git.nix +++ b/home-modules/git.nix @@ -31,6 +31,7 @@ }; programs.lazygit = { enable = true; + package = pkgs.lazygit; settings = { windowSize = "normal"; gui.theme = with rice.color; { From b7eb0654427ca5582e4733a892fad9ad7c4cd621 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:07:48 +0200 Subject: [PATCH 15/51] stable opencode --- home-modules/opencode.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home-modules/opencode.nix b/home-modules/opencode.nix index 7865a61..4030b94 100644 --- a/home-modules/opencode.nix +++ b/home-modules/opencode.nix @@ -1,7 +1,7 @@ { pkgs, ... }@all: with all; { home = { packages = with pkgs; [ - latest.opencode + opencode ]; file.".config/opencode/opencode.json".text = let model = "qwen2.5-coder:7b"; From e4222347583217e69fd3365d58eaf6dbedd970c0 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:08:29 +0200 Subject: [PATCH 16/51] sops use key 13 --- home-modules/sops.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/home-modules/sops.nix b/home-modules/sops.nix index 0f730dd..7290bb6 100644 --- a/home-modules/sops.nix +++ b/home-modules/sops.nix @@ -5,8 +5,7 @@ ]; sops = { - age.keyFile = lib.mkIf (hyper.host == "NxACE") "${hyper.home}.age_nx2_key_13.txt"; - gnupg.home = lib.mkIf (hyper.host != "NxACE") "${hyper.home}.gnupg"; + age.keyFile = "${hyper.home}.age_nx2_key_13.txt"; defaultSopsFile = ../sops-secrets.yaml; # %r is $XDG_RUNTIME_DIR From 61984aecf9b4c767b48b5d9f32091eccd809c996 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:09:11 +0200 Subject: [PATCH 17/51] fix term file chooser --- home-modules/yazi.nix | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/home-modules/yazi.nix b/home-modules/yazi.nix index 752325d..ad0afaa 100644 --- a/home-modules/yazi.nix +++ b/home-modules/yazi.nix @@ -1,5 +1,5 @@ { pkgs, ... }@all: with all; let - tfc = pkgs.latest.xdg-desktop-portal-termfilechooser; + tfc = pkgs.xdg-desktop-portal-termfilechooser; in { home.packages = [ pkgs.unar @@ -420,7 +420,14 @@ in { enable = true; xdgOpenUsePortal = true; config.common."org.freedesktop.impl.portal.FileChooser" = "termfilechooser"; - extraPortals = [ tfc ]; + extraPortals = [ tfc ] ++ (with pkgs; [ + xdg-desktop-portal-hyprland + xdg-desktop-portal + xdg-desktop-portal-gnome + xdg-desktop-portal-gtk + xdg-desktop-portal-hyprland + xdg-desktop-portal-wlr + ]); }; }; home.sessionVariables."GTK_USE_PORTAL" = "1"; From 7b3d4e5dfd69ea0f906b8d56562f34b4cf5d1707 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:09:22 +0200 Subject: [PATCH 18/51] fix yazi tab coloring --- home-modules/yazi.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home-modules/yazi.nix b/home-modules/yazi.nix index ad0afaa..d7e6bae 100644 --- a/home-modules/yazi.nix +++ b/home-modules/yazi.nix @@ -331,7 +331,7 @@ in { border_style = { fg = border; }; }; tabs = { - active = { fg = accent.dark; bg = accent.base; }; + active = { fg = secondary.dark; bg = secondary.base; }; inactive = { fg = secondary.base; bg = secondary.dark; }; # sep_inner = # sep_outer = From 5fda87907854ca8f314fc56564d2ed76951a6782 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:10:52 +0200 Subject: [PATCH 19/51] more rice --- flake-modules/rice.nix | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/flake-modules/rice.nix b/flake-modules/rice.nix index 12cfc31..717aa19 100644 --- a/flake-modules/rice.nix +++ b/flake-modules/rice.nix @@ -7,10 +7,24 @@ pkgs: rec { gap-size = 5; border-width = 2; color = let - dark = (-0.5); - bright = (0.5); - alter-set = let f = lib.alter-luminace-hex; in color-name: color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; }; - alter = let f = lib.alter-luminace-hex; in color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; }; + dark = (-0.4); + darker = (-0.6); + bright = 0.4; + brighter = 0.7; + alter-set = let f = lib.alter-luminace-hex; in color-name: color-value: { + base = color-value; + dark = f color-value dark; + darker = f color-value darker; + bright = f color-value bright; + brighter = f color-value brighter; + }; + alter = let f = lib.alter-luminace-hex; in color-value: { + base = color-value; + dark = f color-value dark; + darker = f color-value darker; + bright = f color-value bright; + brighter = f color-value brighter; + }; # ccolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json)); ccolor = builtins.mapAttrs alter-set { black = "#040404"; # "#111111" "#001100"; @@ -33,6 +47,7 @@ pkgs: rec { # tertiary = magenta; # special = yellow; # weird = green; + subtle = { darker = "#111111"; dark = "#444444"; base = "#777777"; bright = "#999999"; brighter = "#cccccc"; }; positive = alter "#00dd00"; negative = alter "#dd0000"; border = accent.base; From 122a4c6cd84fc8e1be33d178cc45098eed5f7d5d Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:11:39 +0200 Subject: [PATCH 20/51] fix hyprland opacities --- home-modules/hyprland.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/home-modules/hyprland.nix b/home-modules/hyprland.nix index 05bf154..4d352ff 100644 --- a/home-modules/hyprland.nix +++ b/home-modules/hyprland.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }@all: with all; -let +{ pkgs, ... }@all: with all; let animation-speed = "5"; transparency = builtins.toString rice.transparency; terminal = "ghostty"; @@ -14,12 +13,11 @@ let left = { name = "desc:Philips Consumer Electronics Company 273PLPH AU11423002132"; resolution = "1920x1080"; position = "0x0"; scale = "1.0"; }; # right = { name = "HDMI-A-2"; resolution = "1920x1080"; position = "4480x360"; scale = "1.0"; }; }; - ace = { - main = { name = "HDMI-A-1"; resolution = "3840x2160"; position = "0x0"; scale = "2.0"; }; - }; + ace.main = { name = "HDMI-A-1"; resolution = "3840x2160"; position = "0x0"; scale = "2.0"; }; }; in { home.packages = with pkgs; [ + xdg-desktop-portal-hyprland hyprland-protocols hyprlock hypridle @@ -256,16 +254,16 @@ in { "opacity ${transparency}, class:^(Code)$" "opacity ${transparency}, class:^(code-oss)$" "opacity ${transparency}, class:^(discord)$" - "opacity ${transparency}, class:^(vesktop)$" + # "opacity ${transparency}, class:^(vesktop)$" # "opacity ${transparency}, class:^(Element)$" "opacity ${transparency}, class:^(lutris)$" "opacity ${transparency}, class:^(neovide)$" # "opacity ${transparency}, class:^(obsidian)$" - "opacity ${transparency}, class:^(vesktop)$" "opacity ${transparency}, class:^(VSCodium)$" "opacity ${transparency}, title:^(wlogout)$" "opaque, title:^(GNU Image Manipulation Program)$" + "opaque, fullscreen:1" "pin, title:^(Picture-in-Picture)$" From d3a407f1a5bba6855bf0c6e9b4cfd83e4cd023ea Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:16:39 +0200 Subject: [PATCH 21/51] more rice color pallete --- home-modules/color-pallete.nix | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/home-modules/color-pallete.nix b/home-modules/color-pallete.nix index ea4696c..4bf0c59 100644 --- a/home-modules/color-pallete.nix +++ b/home-modules/color-pallete.nix @@ -3,17 +3,25 @@ home.file.".config/color-pallete.html".text = with rice.color; let cb = color-set: color-name: size: /* html */ ''
+
+

${color-name}.darker

+

${color-set.darker}

+
-

${color-name}.dark

-

${color-set.dark}

+

${color-name}.dark

+

${color-set.dark}

${color-name}.base

${color-set.base}

-

${color-name}.bright

-

${color-set.bright}

+

${color-name}.bright

+

${color-set.bright}

+
+
+

${color-name}.brighter

+

${color-set.brighter}

''; @@ -67,8 +75,9 @@ ${cb accent "accent" 100} ${cb secondary "secondary" 100} ${cb tertiary "tertiary" 100} - ${cb weird "weird" 100} - ${cb special "special" 100} + ${cb weird "weird" 80} + ${cb special "special" 80} + ${cb subtle "subtle" 80}
${cb positive "positive" 70} ${cb negative "negative" 70} From 31925a507478c037aa191a82b4ac7bce5976bdd2 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:19:04 +0200 Subject: [PATCH 22/51] flake bump --- flake.lock | 116 ++++++++++++++++++++++++++--------------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/flake.lock b/flake.lock index 2ad837b..92e30fe 100644 --- a/flake.lock +++ b/flake.lock @@ -39,11 +39,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1756320983, - "narHash": "sha256-huaJ1CvBsylibf55pjiFEpiKxYU235iAzwMhJ+iDSjw=", + "lastModified": 1759184217, + "narHash": "sha256-9XS/OqgjH7aof2Vt6AGe2voA0U/xrWL7QJQnqa6B80Y=", "owner": "9001", "repo": "copyparty", - "rev": "f4f702c39dd2365f6ca43ed6b72a84c708fded8d", + "rev": "fc2754cba589774a4ff665546653e753c72ba7ce", "type": "github" }, "original": { @@ -220,11 +220,11 @@ ] }, "locked": { - "lastModified": 1756245065, - "narHash": "sha256-aAZNbGcWrVRZgWgkQbkabSGcDVRDMgON4BipMy69gvI=", + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "owner": "nix-community", "repo": "home-manager", - "rev": "54b2879ce622d44415e727905925e21b8f833a98", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "type": "github" }, "original": { @@ -279,11 +279,11 @@ ] }, "locked": { - "lastModified": 1755678602, - "narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=", + "lastModified": 1758192433, + "narHash": "sha256-CR6RnqEJSTiFgA6KQY4TTLUWbZ8RBnb+hxQqesuQNzQ=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "157cc52065a104fc3b8fa542ae648b992421d1c7", + "rev": "c44e749dd611521dee940d00f7c444ee0ae4cfb7", "type": "github" }, "original": { @@ -308,11 +308,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1756325904, - "narHash": "sha256-PRz3GE4ZBScWrHTVegpM4B2YLZplp1iPwmZ9AeYBbsg=", + "lastModified": 1759169434, + "narHash": "sha256-SAJKAYq1QeDCx19+JVwkvyfXLpmXJrOyUCRH+Dy7T/c=", "ref": "refs/heads/main", - "rev": "378e130f1426648d8d734049800128f9882805bf", - "revCount": 6395, + "rev": "38c1e72c9d81fcdad8f173e06102a5da18836230", + "revCount": 6467, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -340,11 +340,11 @@ ] }, "locked": { - "lastModified": 1756325158, - "narHash": "sha256-aJ9jAYtZ64MWBpWPfH1q+t6U9b6kJWc2yK9Vrlj6fZY=", + "lastModified": 1758895089, + "narHash": "sha256-HOIITlSwB5iuVEVLmWNGu8bvI83Y2IbN8SzJQmBDwvg=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "bf843fc6adf90d43a5dd7742e9df61d395ba780d", + "rev": "4d940a10aff16b240533c9b6527a14ff91e5e5ae", "type": "github" }, "original": { @@ -433,11 +433,11 @@ ] }, "locked": { - "lastModified": 1753819801, - "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", + "lastModified": 1757694755, + "narHash": "sha256-j+w5QUUr2QT/jkxgVKecGYV8J7fpzXCMgzEEr6LG9ug=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", + "rev": "5ffdfc13ed03df1dae5084468d935f0a3f2c9a4c", "type": "github" }, "original": { @@ -462,11 +462,11 @@ ] }, "locked": { - "lastModified": 1753622892, - "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", + "lastModified": 1756810301, + "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", + "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931", "type": "github" }, "original": { @@ -483,11 +483,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1754887838, - "narHash": "sha256-npC+H+Wl60EdrV75sjqm+bbbLbKgCCGn4ALSM0B2OWA=", + "lastModified": 1759033501, + "narHash": "sha256-QhcOFLJYC9CiSVPkci62ghMEAJChzl+L98To1pKvnRQ=", "owner": "KZDKM", "repo": "Hyprspace", - "rev": "2b61fd2115262243b03aa9afe8dfd8a78e71636c", + "rev": "e54884da1d6a1af76af9d053887bf3750dd554fd", "type": "github" }, "original": { @@ -576,11 +576,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1755261305, - "narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=", + "lastModified": 1758785683, + "narHash": "sha256-mRn51IeEBXeNh5a6xNLylk4PKBX0s/QQxgkEbYoPq/w=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "203a7b463f307c60026136dd1191d9001c43457f", + "rev": "1bfb978f2f6261b6086e04af17f9418e1fe36d70", "type": "github" }, "original": { @@ -607,11 +607,11 @@ }, "nixpkgs-latest": { "locked": { - "lastModified": 1756326156, - "narHash": "sha256-EvRCnKAE5oL9wOIT/LrA5+pJVpTvhH71OReJDTOZDyk=", + "lastModified": 1759184131, + "narHash": "sha256-pDILdFbj+3Vt/RNZ4ODbIQqJ2HdeyidDAVggQ+hRDh0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "636dea4f2cd65b8c558149a957423da47c1cbc95", + "rev": "0d4b74fdab79df77ae1e29f6b9e3a32ee6160032", "type": "github" }, "original": { @@ -639,11 +639,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1756266583, - "narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=", + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", "type": "github" }, "original": { @@ -654,11 +654,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1756266583, - "narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=", + "lastModified": 1758198701, + "narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2", + "rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d", "type": "github" }, "original": { @@ -686,11 +686,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1754725699, - "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "lastModified": 1758277210, + "narHash": "sha256-iCGWf/LTy+aY0zFu8q12lK8KuZp7yvdhStehhyX1v8w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", + "rev": "8eaee110344796db060382e15d3af0a9fc396e0e", "type": "github" }, "original": { @@ -702,11 +702,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1756217674, - "narHash": "sha256-TH1SfSP523QI7kcPiNtMAEuwZR3Jdz0MCDXPs7TS8uo=", + "lastModified": 1758791193, + "narHash": "sha256-F8WmEwFoHsnix7rt290R0rFXNJiMbClMZyIC/e+HYf0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4e7667a90c167f7a81d906e5a75cba4ad8bee620", + "rev": "25e53aa156d47bad5082ff7618f5feb1f5e02d01", "type": "github" }, "original": { @@ -717,11 +717,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1752596105, - "narHash": "sha256-lFNVsu/mHLq3q11MuGkMhUUoSXEdQjCHvpReaGP1S2k=", + "lastModified": 1756288264, + "narHash": "sha256-Om8adB1lfkU7D33VpR+/haZ2gI5r3Q+ZbIPzE5sYnwE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dab3a6e781554f965bde3def0aa2fda4eb8f1708", + "rev": "ddd1826f294a0ee5fdc198ab72c8306a0ea73aa9", "type": "github" }, "original": { @@ -741,11 +741,11 @@ ] }, "locked": { - "lastModified": 1755960406, - "narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=", + "lastModified": 1758108966, + "narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2", + "rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b", "type": "github" }, "original": { @@ -826,11 +826,11 @@ ] }, "locked": { - "lastModified": 1752633862, - "narHash": "sha256-Bj7ozT1+5P7NmvDcuAXJvj56txcXuAhk3Vd9FdWFQzk=", + "lastModified": 1756348497, + "narHash": "sha256-xJp3VnoYh4kpsaKFO/7SsGbwOz7pI1ZmjbqpXEuR2cw=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "8668ca94858206ac3db0860a9dec471de0d995f8", + "rev": "0adf92c70d23fb4f703aea5d3ebb51ac65994f7f", "type": "github" }, "original": { @@ -846,11 +846,11 @@ ] }, "locked": { - "lastModified": 1754988908, - "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", + "lastModified": 1759030640, + "narHash": "sha256-53VP3BqMXJqD1He1WADTFyUnpta3mie56H7nC59tSic=", "owner": "Mic92", "repo": "sops-nix", - "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", + "rev": "9ac51832c70f2ff34fcc97b05fa74b4a78317f9e", "type": "github" }, "original": { @@ -952,11 +952,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1756309929, - "narHash": "sha256-udly1zNvxR6UKFZSkbutSEZ9EihUd+pPCDBaseppB5s=", + "lastModified": 1759072128, + "narHash": "sha256-n8mpisSJ3JLi9wI5CidfEMQeF8ogSiZUalAAPK3m1qA=", "owner": "sxyazi", "repo": "yazi", - "rev": "dd7afaa64aa54fac5bd30404eb44ccd9d68f31c5", + "rev": "879ed4999694c84d62ba85979e5031d58b85f85d", "type": "github" }, "original": { From 418dcad22cb5d6bd4ec4f3cbe020e752e2b2dbad Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:19:45 +0200 Subject: [PATCH 23/51] sops for the stuff below oops (spotify clinet id etc) --- sops-secrets.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sops-secrets.yaml b/sops-secrets.yaml index da36693..e9f4f09 100644 --- a/sops-secrets.yaml +++ b/sops-secrets.yaml @@ -21,6 +21,8 @@ weechat: passphrase: ENC[AES256_GCM,data:3NVhMouf3wwMJTZCvIjbi5fjHJHxe25Q+wRo,iv:W8cShdM3iUyEiRCPNupMin3gfF+cqGxslD18CAvUW4c=,tag:DXBATGEhHjhXqy+J9BNVwg==,type:str] streamlink: twitch-oauth: ENC[AES256_GCM,data:SvV0CBVL6MO0zqiRg2Ns00KNHLDfzgNObse5F69n,iv:h0DFbwIVKfJSoVowgO3voAOdHXIsw1D3O/aweFRVKcI=,tag:PW0gc+gzlfdOUvIoYIkywg==,type:str] +spotify: + spotiy-player-clinet-id: ENC[AES256_GCM,data:hJpLMgWKzPpqTffr80Jh65Zl3MzKGXiMb8x2F1CxuSQ=,iv:Q8TdEZiAtcdkndsKmvCAlnuu+i60xXUBX6I6VSxwQow=,tag:CIeaJbkMeqRoWnuOgERHYw==,type:str] nx2site: cloudflare: api-token-dns-edit: ENC[AES256_GCM,data:fR4fH6NqwtHI8aebEwjUn5JMoy3q3GXgu/dREe8JK7yRBIOhJ8BKuw==,iv:fQqLRYCN/7zhpHzYxMcn8q1aA7x4qd3qWGgrFWn2E/U=,tag:GJ1muJG755ch/84Sgcf2Vw==,type:str] @@ -89,8 +91,8 @@ sops: YkJWUEMySU50ZHVxUzVudjNnYURXak0KkMn/8sFrrviqb3s8DtS/BAbrdCwJ+jv/ A8rXQkKMjvTqG1f0fq5IlSmRAQy7XFBzkfbKdIUoefhey190WPEHaw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-08-06T22:09:56Z" - mac: ENC[AES256_GCM,data:s3lBIa/Y0fjtFFTDggC+Oxd9T5A1al9ULh4VM78vS+A6nmCZWdezLkY1CwXPrCcrwYQtnKrj5N4Y1jQQmEkF1UIcgkvH7ZQsT7MOJyvWhZUx2/wIg1DwcdlHYJAiwFkIkZ1fEvE4m/uDCWA8xO4qWU4NJaxPzTyapPKKF4VwkNs=,iv:tqDVOQlwS+CMzX8MxrBRPjBVj1Svx91eQx2xamAsSiE=,tag:VJf1at+026fQJ5ML2D/PEg==,type:str] + lastmodified: "2025-09-07T21:03:20Z" + mac: ENC[AES256_GCM,data:x8eIqQQGxtB5ukScesN1Lf4cFicTOi3VSOr/hFxKzccgwW7HLLEqwjai6e67KUFC2otaN9TR7ft0tUsTVwWRVRCHnpEoQ5KshLHy2zsk+CmPIpWTLCZJBpe154z3rRLlc10DCM7yhqArzepw0HgE4j1knADqLVwC7e0k+o/OmE8=,iv:uXeIv19J3LmYg7gtA2SGUSoMe9uccrvvztlDFSSs1V8=,tag:YTJpZdw1K+7//EARR+MviA==,type:str] pgp: - created_at: "2025-06-08T12:35:30Z" enc: |- From ebfd72baa860d07bf67df8004b490f17ba8f38d0 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 00:32:13 +0200 Subject: [PATCH 24/51] wikipedia rice --- home-modules/firefox.nix | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/home-modules/firefox.nix b/home-modules/firefox.nix index 363e78a..491cb51 100644 --- a/home-modules/firefox.nix +++ b/home-modules/firefox.nix @@ -194,6 +194,48 @@ background-color: transparent !important; } } + @-moz-document domain(wikipedia.org) { + body, html, div.mw-page-container, .vector-header, .mw-header { + background-color: transparent !important; + } + :root { + --color-base: ${foreground} !important; + --color-base--hover: ${accent.bright} !important; + --color-emphasized: ${accent.base} !important; + --color-progressive: ${accent.base} !important; + --color-progressive--hover: ${accent.brighter} !important; + --color-progressive--active: ${secondary.bright} !important; + --color-destructive: ${negative.base} !important; + --color-destructive--hover: ${negative.brighter} !important; + --color-destructive--active: ${negative.bright} !important; + --color-visited: ${secondary.base} !important; + --color-visited--hover: ${secondary.brighter} !important; + --color-visited--active: ${secondary.bright} !important; + --color-error: ${negative.base} !important; + --color-error--hover: ${negative.bright} !important; + --color-error--active: ${negative.bright} !important; + --color-warning: ${weird.base} !important; + --color-success: ${positive.base} !important; + --color-notice: ${special.base} !important; + --color-content-added: ${positive.base} !important; + --color-content-removed: ${negative.base} !important; + --color-base--subtle: ${accent.dark} !important; + --box-shadow-color-base: ${black.base} !important; + --background-color-base: transparent !important; + --background-color-neutral: transparent !important; + --background-color-neutral-subtle: transparent !important; + --background-color-interactive: ${accent.darker} !important; + --background-color-interactive--hover: ${accent.dark} !important; + --background-color-interactive--active: ${secondary.dark} !important; + --background-color-interactive-subtle: ${subtle.darker} !important; + --background-color-interactive-subtle--hover: ${subtle.dark} !important; + --background-color-interactive-subtle--active: ${subtle.base} !important; + --border-color-base: ${border} !important; + --border-color-emphasized: ${border2} !important; + --border-color-subtle: ${subtle.base} !important; + --border-color-muted: ${subtle.dark} !important; + } + } @-moz-document domain(youtube.com) { body, html, div#content, ytd-app, #frosted-glass.with-chipbar.ytd-app, ytd-shorts[is-dark] #cinematic-shorts-scrim.ytd-shorts { background-color: transparent !important; From f11db2239eae4699f9a99eb153231ab9433040a0 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 30 Sep 2025 16:29:22 +0000 Subject: [PATCH 25/51] nxf format --- home-modules/fish.nix | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/home-modules/fish.nix b/home-modules/fish.nix index 07b33b4..6a4cfeb 100644 --- a/home-modules/fish.nix +++ b/home-modules/fish.nix @@ -4,7 +4,7 @@ fish any-nix-shell - (writeShellScriptBin "nxfetch" '' + (writeShellScriptBin "nxfetch" /* bash */ '' logo=$(echo -e " ⠀⠀⠀⠀⠰⣿⣧⠀⠀⠹⣿⣧⠀⣴⣿⠆⠀⠀⠀⠀ OS @@ -17,20 +17,20 @@ ⠀⠀⠀⠀⠀⣰⣿⣿⣿⡄⠉⠉⢻⣿⣏⠉⠉⠀⠀⠀ TFM ⠀⠀⠀⠀⠰⣿⠟⠀⢻⣿⣆⠀⠀⠻⣿⠆⠀⠀⠀⠀ PROMPT - " | lolcat --force 2> /dev/null) + " | lolcat --force 2> /dev/null) - msg=" - $(echo -e "$logo" | sed -n 3p): $(cat /etc/*-releas 2> /dev/null || echo 'PRETTY_NAME="[No Release]"' | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev) - $(echo -e "$logo" | sed -n 4p): ''${XDG_CURRENT_DESKTOP^} - $(echo -e "$logo" | sed -n 5p): ''${TERM^} - $(echo -e "$logo" | sed -n 6p): $(bash --version | head --lines 1 | cut -f -4 -d' ' | sed -E 's-(.*?), version (.*?)\(.*-\1 \2-g') - $(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev | sed 's/./\U&/') - $(echo -e "$logo" | sed -n 8p): ''$(uname -r | sed -E 's=(.+-.+-.+-.+)-.+=\1=g') - $(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g' | sed 's/./\U&/') - $(echo -e "$logo" | sed -n 10p): $(yazi --version | sed -E 's-(.*?) \(.*-\1-g') - $(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1 | sed 's/./\U&/') - " - echo -e "$msg" + msg=" + $(echo -e "$logo" | sed -n 3p): $(cat /etc/*-releas 2> /dev/null || echo 'PRETTY_NAME="[No Release]"' | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev) + $(echo -e "$logo" | sed -n 4p): ''${XDG_CURRENT_DESKTOP^} + $(echo -e "$logo" | sed -n 5p): ''${TERM^} + $(echo -e "$logo" | sed -n 6p): $(bash --version | head --lines 1 | cut -f -4 -d' ' | sed -E 's-(.*?), version (.*?)\(.*-\1 \2-g') + $(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev | sed 's/./\U&/') + $(echo -e "$logo" | sed -n 8p): ''$(uname -r | sed -E 's=(.+-.+-.+-.+)-.+=\1=g') + $(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g' | sed 's/./\U&/') + $(echo -e "$logo" | sed -n 10p): $(yazi --version | sed -E 's-(.*?) \(.*-\1-g') + $(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1 | sed 's/./\U&/') + " + echo -e "$msg" '') ]; From 3818645825e322131aecb48f2a07519c9ef1b3b2 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sat, 4 Oct 2025 12:08:37 +0200 Subject: [PATCH 26/51] more gnome base programs --- home-modules/firefox/userChrome.nix | 92 ++++++++++++++ home-modules/firefox/userContent.nix | 179 +++++++++++++++++++++++++++ home-modules/pkgs-list/programs.nix | 4 + 3 files changed, 275 insertions(+) create mode 100644 home-modules/firefox/userChrome.nix create mode 100644 home-modules/firefox/userContent.nix diff --git a/home-modules/firefox/userChrome.nix b/home-modules/firefox/userChrome.nix new file mode 100644 index 0000000..27b2309 --- /dev/null +++ b/home-modules/firefox/userChrome.nix @@ -0,0 +1,92 @@ +rice: with rice.color; let + f = rice.lib.hex-to-rgb-comma-string; + # blur = builtins.toString 20; +in /* css */ '' + :root{ + /* Popup panels */ + --arrowpanel-background : rgba(${f background}, ${builtins.toString rice.transparency}) !important; + --arrowpanel-border-color : ${border} !important; + --arrowpanel-color : ${secondary.base} !important; + --arrowpanel-dimmed : rgba(${f background},0.4) !important; + --arrowpanel-dimmed-further : rgba(${f background},0.6) !important; + --arrowpanel-dimmed-even-further : rgba(${f background},0.8) !important; + + /* Autocomplete */ + --autocomplete-popup-background : rgba(${f background}, ${builtins.toString rice.transparency}) !important; + --autocomplete-popup-color : ${foreground} !important; + --autocomplete-popup-highlight-background: ${accent.base} !important; + --autocomplete-popup-highlight-color : ${foreground} !important; + + /* Toolbar background */ + --toolbar-bgcolor : transparent !important; + --toolbar-non-lwt-bgcolor : rgba(${f background}, ${builtins.toString rice.transparency}) !important; + --toolbar-non-lwt-bgimage : none !important; + --toolbar-color : ${foreground} !important; + + /* Tabs */ + --tab-selected-bgcolor : ${accent.base} !important; + --tabs-border-color : ${border} !important; + --tab-line-color : ${accent.base} !important; + --tab-loader-size : 16px !important; + + /* Sidebar */ + --lwt-sidebar-background-color : rgba(${f background}, ${builtins.toString rice.transparency}) !important; + --lwt-sidebar-text-color : ${foreground} !important; + --sidebar-background-color : rgba(${f background}, ${builtins.toString rice.transparency}) !important; + --sidebar-text-color : ${foreground} !important; + --sidebar-border-color : ${border} !important; + + /* URL bar */ + --urlbar-popup-url-color : ${foreground} !important; + --urlbar-popup-action-color : ${secondary.base} !important; + --toolbar-field-background-color : rgba(${f background}, ${builtins.toString rice.transparency}) !important; + --toolbar-field-focus-background-color : rgba(${f background}, ${builtins.toString rice.transparency}) !important; + --toolbar-field-color : ${accent.base} !important; + --toolbar-field-focus-color : ${foreground} !important; + --toolbar-field-focus-border-color : ${accent.base} !important; + + /* Buttons */ + --toolbarbutton-icon-fill : ${foreground} !important; + --toolbarbutton-hover-background : rgba(${f accent.base}, 0.2) !important; + --toolbarbutton-active-background : rgba(${f accent.base}, 0.4) !important; + + /* Notification and panel */ + --panel-disabled-color : rgba(${f foreground},0.3) !important; + --panel-separator-color : ${border} !important; + + /* New tab page */ + --newtab-background-color : transparent !important; + --newtab-background-color-secondary : ${secondary.dark} !important; + --newtab-text-primary-color : ${foreground} !important; + --newtab-text-secondary-color : ${secondary.base} !important; + --newtab-search-icon-color : ${accent.base} !important; + --newtab-background-card : ${accent.dark} !important; + --tabpanel-background-color : transparent !important; + + background : linear-gradient(180deg,rgba(${f secondary.dark}, ${builtins.toString rice.transparency}) 0%, rgba(${f accent.dark}, ${builtins.toString rice.transparency}) 100%) !important; + } + .tabbrowser-tab[selected="true"] { + color: ${background} !important; + } + hbox#browser { + backround-color: transparent: !important; + } + + #appcontent { + background: transparent !important; + } + #navigator-toolbox { + --tabs-border-color: transparent !important; + } + #toolbar-menubar, #TabsToolbar, #PersonalToolbar, #navigator-toolbox, #sidebar-box { + background-color: transparent !important; + -moz-appearance: none !important; + background-image: none !important; + } + + window, #nav-bar{ + background-color: transparent !important; + -moz-appearance: none !important; + background-image: none !important; + } +'' diff --git a/home-modules/firefox/userContent.nix b/home-modules/firefox/userContent.nix new file mode 100644 index 0000000..9deaa2e --- /dev/null +++ b/home-modules/firefox/userContent.nix @@ -0,0 +1,179 @@ +rice: with rice.color; let + f = rice.lib.hex-to-rgb-comma-string; + blur = builtins.toString 20; +in /* css */ '' + /* Removes the white loading page */ + /* url(about:newtab), url(about:home) */ + @-moz-document url(about:blank) { + html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay { + background: transparent !important; + } + } + + /* Sets up minimal incognito scrollbar */ + @-moz-document url(about:privatebrowsing) { + :root{ + scrollbar-width: thin !important; + scrollbar-color: rgb(161, 161, 161) transparent !important; + } + } + + /* new-tab */ + @-moz-document url-prefix(about:home), url-prefix(about:newtab) { + :root{ + --newtab-background-color-secondary: rgba(${f background},0.5) !important; + } + body, html { + background: transparent !important; + } + .tile, .search-handoff-button { + border: ${builtins.toString rice.border-width}px solid ${border} !important; + } + } + + @-moz-document domain(reddit.com) { + header { + background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important; + backdrop-filter: blur(${blur}px); + } + body, html, .bg-neutral-background, .threadline, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar, comment-body-header, shreddit-comment-tree{ + background-color: transparent !important; + } + } + + @-moz-document domain(reddit.com) { + header { + background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important; + } + body, html, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar{ + background-color: transparent !important; + } + } + + @-moz-document domain(google.com) { + .sfbg { + background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important; + backdrop-filter: blur(${blur}px); + } + body, html, div#search > * { + background-color: transparent !important; + border: ${builtins.toString rice.border-width} solid ${border}; + } + .g, .appbar { + background-color: transparent !important; + border: ${builtins.toString rice.border-width} solid ${border}; + } + div#rso { + * { + background-color: transparent !important; + border: ${builtins.toString rice.border-width} solid ${border}; + } + } + div#cnt > div { + + } + } + + @media (prefers-color-scheme: dark) { + :root .theme-system { + --color-bg: transtparent !important; + --color-text: ${rice.color.foreground} + } + } + + @-moz-document domain(developer.mozilla.org) { + html, body { + background-color: transparent !important; + } + .top-navigation, .article-actions-container { + background-color: rgba(0,0,0,1) !important; + backdrop-filter: blur(100px); + border-radius: ${builtins.toString rice.rounding}px; + } + } + + @-moz-document domain(github.com) { + body, html, header, #repository-container-header, .bgColor-muted, section { + background-color: transparent !important; + } + } + @-moz-document domain(youtube.com) { + body, html, div#content, ytd-app, #frosted-glass.with-chipbar.ytd-app, ytd-shorts[is-dark] #cinematic-shorts-scrim.ytd-shorts { + background-color: transparent !important; + } + #background.ytd-masthead, div#background { + background-color: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; + backdrop-filter: blur(100px); + } + * { + --yt-spec-base-background: transparent; + --yt-spec-raised-background: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; + --yt-spec-menu-background: rgba(${rice.lib.hex-to-rgb-comma-string accent.dark}, ${builtins.toString rice.transparency}) !important; + --yt-spec-inverted-background: rgba(${rice.lib.hex-to-rgb-comma-string secondary.dark}, ${builtins.toString rice.transparency}) !important; + } + } + + @-moz-document domain(mynixos.com) { + body, html { + background-color: transparent !important; + } + header, footer { + background-color: rgba(0,0,0,1) !important; + backdrop-filter: blur(100px); + border-radius: ${builtins.toString rice.rounding}px; + } + } + + @-moz-document domain(moodle.informatik.tu-darmstadt.de) { + body, html , .main-inner, .main-inner * { + background-color: transparent !important; + } + .bg-primary { + background-color: rgba(${rice.lib.hex-to-rgb-comma-string accent.base},0.5) !important; + } + } + + @-moz-document url-prefix("https://nx2.site/") { + html { + background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important; + background-repeat: repeat !important; + background-size: 2vmin 2vmin !important; + } + } + + @-moz-document url-prefix("pw.nx2.site") { + html { + background: black; + } + } + + @-moz-document url-prefix("pw.nx2.site") { + html { + background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important; + background-repeat: repeat !important; + background-size: 2vmin 2vmin !important; + } + body, .tw-bg-background-alt3, main, .card-header, .card-body, .modal-body { + background-color: transparent !important; + } + .modal-open, .modal-header, form.modal-content, .modal-footer { + background-color: rgba(0,0,0,0.8) !important; + backdrop-filter: blur(5px); + } + .cdk-virtual-scroll-content-wrapper, .card, .tw-bg-background, .modal-content { + background-color: rgba(0,0,0,0.8) !important; + border-radius: 10px !important; + border: ${toString rice.border-width}px solid ${border} !important; + } + } +'' + # @-moz-document domain(chatgpt.com) { + # body, html , .bg-token-sidebar-surface-primary { + # background-color: transparent !important; + # } + # .bg-token-main-surface-primary { + # background-color: rgba(0,0,0,1) !important; + # backdrop-filter: blur(100px) !important; + # border-radius: ${builtins.toString rice.rounding}px !important; + # } + # } diff --git a/home-modules/pkgs-list/programs.nix b/home-modules/pkgs-list/programs.nix index c936a71..3c40374 100644 --- a/home-modules/pkgs-list/programs.nix +++ b/home-modules/pkgs-list/programs.nix @@ -1,6 +1,10 @@ { pkgs, hyper, ... }: { home.packages = with pkgs; [ chromium + gnome-clocks + gnome-calculator + gnome-characters + gnome-2048 element-desktop qbittorrent unstable.spotify From c1ca5b2cf5aef20b7ab82bf13b993b85534db11c Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sat, 4 Oct 2025 12:08:59 +0200 Subject: [PATCH 27/51] sleek rclone --- home-modules/rclone.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/home-modules/rclone.nix b/home-modules/rclone.nix index fee8dfc..1ee415d 100644 --- a/home-modules/rclone.nix +++ b/home-modules/rclone.nix @@ -23,9 +23,7 @@ }; }; }; - secrets = { - pass = "/run/user/1000/secrets/copyparty/user-password/${hyper.user}"; - }; + secrets.pass = "/run/user/1000/secrets/copyparty/user-password/${hyper.user}"; }; }; }; From 67c1f6fb25731492f74c7df75d5bb0a0c51d3830 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sat, 4 Oct 2025 12:09:33 +0200 Subject: [PATCH 28/51] firefox refactor + shadow fix --- home-modules/firefox.nix | 269 +------------------------------ home-modules/firefox/firefox.nix | 19 +++ home.nix | 2 +- 3 files changed, 23 insertions(+), 267 deletions(-) create mode 100644 home-modules/firefox/firefox.nix diff --git a/home-modules/firefox.nix b/home-modules/firefox.nix index 363e78a..9335de7 100644 --- a/home-modules/firefox.nix +++ b/home-modules/firefox.nix @@ -9,272 +9,9 @@ packages = with pkgs; [ firefox ]; - file = with rice.color; let - blur = builtins.toString 20; - in { - ".mozilla/firefox/${hyper.user}/chrome/userChrome.css".text = /* css */ '' - :root{ - /* Popup panels */ - --arrowpanel-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - --arrowpanel-border-color : ${border} !important; - --arrowpanel-color : ${secondary.base} !important; - --arrowpanel-dimmed : rgba(${rice.lib.hex-to-rgb-comma-string background},0.4) !important; - --arrowpanel-dimmed-further : rgba(${rice.lib.hex-to-rgb-comma-string background},0.6) !important; - --arrowpanel-dimmed-even-further : rgba(${rice.lib.hex-to-rgb-comma-string background},0.8) !important; - - /* Autocomplete */ - --autocomplete-popup-background : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - --autocomplete-popup-color : ${foreground} !important; - --autocomplete-popup-highlight-background: ${accent.base} !important; - --autocomplete-popup-highlight-color : ${foreground} !important; - - /* Toolbar background */ - --toolbar-bgcolor : rgba(${rice.lib.hex-to-rgb-comma-string background},0.4) !important; - --toolbar-non-lwt-bgcolor : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - --toolbar-non-lwt-bgimage : none !important; - --toolbar-color : ${foreground} !important; - - /* Tabs */ - --tab-selected-bgcolor : ${accent.base} !important; - --tabs-border-color : ${border} !important; - --tab-line-color : ${accent.base} !important; - --tab-loader-size : 16px !important; - - /* Sidebar */ - --lwt-sidebar-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - --lwt-sidebar-text-color : ${foreground} !important; - --sidebar-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - --sidebar-text-color : ${foreground} !important; - --sidebar-border-color : ${border} !important; - - /* URL bar */ - --urlbar-popup-url-color : ${foreground} !important; - --urlbar-popup-action-color : ${secondary.base} !important; - --toolbar-field-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - --toolbar-field-focus-background-color : rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - --toolbar-field-color : ${accent.base} !important; - --toolbar-field-focus-color : ${foreground} !important; - --toolbar-field-focus-border-color : ${accent.base} !important; - - /* Buttons */ - --toolbarbutton-icon-fill : ${foreground} !important; - --toolbarbutton-hover-background : rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.2) !important; - --toolbarbutton-active-background : rgba(${rice.lib.hex-to-rgb-comma-string accent.base}, 0.4) !important; - - /* Notification and panel */ - --panel-disabled-color : rgba(${rice.lib.hex-to-rgb-comma-string foreground},0.3) !important; - --panel-separator-color : ${border} !important; - - /* New tab page */ - --newtab-background-color : ${background} !important; - --newtab-background-color-secondary : ${secondary.dark} !important; - --newtab-text-primary-color : ${foreground} !important; - --newtab-text-secondary-color : ${secondary.base} !important; - --newtab-search-icon-color : ${accent.base} !important; - - --tabpanel-background-color : transparent !important; - background : linear-gradient(180deg,rgba(${rice.lib.hex-to-rgb-comma-string secondary.dark}, ${builtins.toString rice.transparency}) 0%, rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) 100%) !important; - } - .tabbrowser-tab[selected="true"] { - color: ${background} !important; - } - - #appcontent { - background: transparent !important; - } - #navigator-toolbox { - --tabs-border-color: transparent !important; - } - #toolbar-menubar, #TabsToolbar, #PersonalToolbar, #navigator-toolbox, #sidebar-box { - background-color: transparent !important; - -moz-appearance: none !important; - background-image: none !important; - } - - window, #nav-bar{ - background-color: transparent !important; - -moz-appearance: none !important; - background-image: none !important; - } - ''; - - ".mozilla/firefox/${hyper.user}/chrome/userContent.css".text = /* css */ '' - /* Removes the white loading page */ - /* url(about:newtab), url(about:home) */ - @-moz-document url(about:blank) { - html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay { - background: ${background} !important; - } - } - - /* Sets up minimal incognito scrollbar */ - @-moz-document url(about:privatebrowsing) { - :root{ - scrollbar-width: thin !important; - scrollbar-color: rgb(161, 161, 161) transparent !important; - } - } - - /* new-tab */ - @-moz-document url-prefix(about:home), url-prefix(about:newtab) { - :root{ - --newtab-background-color-secondary: ${background} !important; - } - body, html { - background: transparent !important; - } - .tile, .search-handoff-button { - border: ${builtins.toString rice.border-width}px solid ${border} !important; - } - } - - @-moz-document domain(reddit.com) { - header { - background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important; - backdrop-filter: blur(${blur}px); - } - body, html, .bg-neutral-background, .threadline, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar, comment-body-header, shreddit-comment-tree{ - background-color: transparent !important; - } - } - - @-moz-document domain(reddit.com) { - header { - background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important; - } - body, html, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar{ - background-color: transparent !important; - } - } - - @-moz-document domain(google.com) { - .sfbg { - background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important; - backdrop-filter: blur(${blur}px); - } - body, html, div#search > * { - background-color: transparent !important; - border: ${builtins.toString rice.border-width} solid ${border}; - } - .g, .appbar { - background-color: transparent !important; - border: ${builtins.toString rice.border-width} solid ${border}; - } - div#rso { - * { - background-color: transparent !important; - border: ${builtins.toString rice.border-width} solid ${border}; - } - } - div#cnt > div { - - } - } - - @media (prefers-color-scheme: dark) { - :root .theme-system { - --color-bg: transtparent !important; - --color-text: ${rice.color.foreground} - } - } - - @-moz-document domain(developer.mozilla.org) { - html, body { - background-color: transparent !important; - } - .top-navigation, .article-actions-container { - background-color: rgba(0,0,0,1) !important; - backdrop-filter: blur(100px); - border-radius: ${builtins.toString rice.rounding}px; - } - } - - @-moz-document domain(github.com) { - body, html, header, #repository-container-header, .bgColor-muted, section { - background-color: transparent !important; - } - } - @-moz-document domain(youtube.com) { - body, html, div#content, ytd-app, #frosted-glass.with-chipbar.ytd-app, ytd-shorts[is-dark] #cinematic-shorts-scrim.ytd-shorts { - background-color: transparent !important; - } - #background.ytd-masthead, div#background { - background-color: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - backdrop-filter: blur(100px); - } - * { - --yt-spec-base-background: transparent; - --yt-spec-raised-background: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important; - --yt-spec-menu-background: rgba(${rice.lib.hex-to-rgb-comma-string accent.dark}, ${builtins.toString rice.transparency}) !important; - --yt-spec-inverted-background: rgba(${rice.lib.hex-to-rgb-comma-string secondary.dark}, ${builtins.toString rice.transparency}) !important; - } - } - - @-moz-document domain(mynixos.com) { - body, html { - background-color: transparent !important; - } - header, footer { - background-color: rgba(0,0,0,1) !important; - backdrop-filter: blur(100px); - border-radius: ${builtins.toString rice.rounding}px; - } - } - - @-moz-document domain(moodle.informatik.tu-darmstadt.de) { - body, html , .main-inner, .main-inner * { - background-color: transparent !important; - } - .bg-primary { - background-color: rgba(${rice.lib.hex-to-rgb-comma-string accent.base},0.5) !important; - } - } - - @-moz-document url-prefix("https://nx2.site/") { - html { - background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important; - background-repeat: repeat !important; - background-size: 2vmin 2vmin !important; - } - } - - @-moz-document url-prefix("pw.nx2.site") { - html { - background: black; - } - } - - @-moz-document url-prefix("pw.nx2.site") { - html { - background: radial-gradient(rgba(255, 255, 255, 0.8) 5%, transparent 5%) !important; - background-repeat: repeat !important; - background-size: 2vmin 2vmin !important; - } - body, .tw-bg-background-alt3, main, .card-header, .card-body, .modal-body { - background-color: transparent !important; - } - .modal-open, .modal-header, form.modal-content, .modal-footer { - background-color: rgba(0,0,0,0.8) !important; - backdrop-filter: blur(5px); - } - .cdk-virtual-scroll-content-wrapper, .card, .tw-bg-background, .modal-content { - background-color: rgba(0,0,0,0.8) !important; - border-radius: 10px !important; - border: ${toString rice.border-width}px solid ${border} !important; - } - } - - ''; - # @-moz-document domain(chatgpt.com) { - # body, html , .bg-token-sidebar-surface-primary { - # background-color: transparent !important; - # } - # .bg-token-main-surface-primary { - # background-color: rgba(0,0,0,1) !important; - # backdrop-filter: blur(100px) !important; - # border-radius: ${builtins.toString rice.rounding}px !important; - # } - # } + file = { + ".mozilla/firefox/${hyper.user}/chrome/userChrome.css".text = import ./userChrome.nix rice; + ".mozilla/firefox/${hyper.user}/chrome/userContent.css".text = import ./userContent.nix rice; }; }; } diff --git a/home-modules/firefox/firefox.nix b/home-modules/firefox/firefox.nix new file mode 100644 index 0000000..211cce0 --- /dev/null +++ b/home-modules/firefox/firefox.nix @@ -0,0 +1,19 @@ +{ pkgs, ... }@all: with all; +# browser.tabs.allow_transparent_browser +# https://www.reddit.com/r/FirefoxCSS/comments/1dqws4b/firefox_128_will_allow_the_main_browser_content/ +{ + programs.firefox.profiles."{hyper.user}".settings = { + "widget.use-xdg-desktop-portal.file-picker" = 1; + }; + home = { + packages = with pkgs; [ + firefox + ]; + file = with rice.color; let + blur = builtins.toString 20; + f = rice.lib.hex-to-rgb-comma-string; + in { + ".mozilla/firefox/${hyper.user}/chrome/userChrome.css".text = import ./userChrome.nix rice; + ".mozilla/firefox/${hyper.user}/chrome/userContent.css".text = import ./userContent.nix rice; }; + }; +} diff --git a/home.nix b/home.nix index 194c3dc..0bb59d3 100644 --- a/home.nix +++ b/home.nix @@ -12,7 +12,7 @@ ./home-modules/discord.nix ./home-modules/email.nix ./home-modules/figlet.nix - ./home-modules/firefox.nix + ./home-modules/firefox/firefox.nix ./home-modules/fish.nix ./home-modules/games.nix ./home-modules/gestures.nix From 21fee7056a8f105ae3b6c64616977022f1312448 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sat, 4 Oct 2025 22:52:06 +0200 Subject: [PATCH 29/51] hypr.home fix --- home-modules/chatterino.nix | 2 +- home-modules/xdg.nix | 8 ++++---- home.nix | 4 ++-- shell-only.nix | 12 ++++++------ system-modules/nvidia.nix | 4 +--- 5 files changed, 14 insertions(+), 16 deletions(-) diff --git a/home-modules/chatterino.nix b/home-modules/chatterino.nix index 9a360de..c2370e4 100644 --- a/home-modules/chatterino.nix +++ b/home-modules/chatterino.nix @@ -207,7 +207,7 @@ in { "external": { "streamlink": { "quality": "", - "options": "--config ${hyper.home}.config/streamlink/config" + "options": "--config ${hyper.home}/.config/streamlink/config" } } } diff --git a/home-modules/xdg.nix b/home-modules/xdg.nix index 4542153..7286973 100644 --- a/home-modules/xdg.nix +++ b/home-modules/xdg.nix @@ -1,10 +1,10 @@ { pkgs, ... }@all: with all; { xdg = { enable = true; - configHome = "${hyper.home}.config"; - cacheHome = "${hyper.home}.cache"; - dataHome = "${hyper.home}.local/share"; - stateHome = "${hyper.home}.local/state"; + configHome = "${hyper.home}/.config"; + cacheHome = "${hyper.home}/.cache"; + dataHome = "${hyper.home}/.local/share"; + stateHome = "${hyper.home}/.local/state"; mimeApps = { enable = true; defaultApplications = let diff --git a/home.nix b/home.nix index 2dec93e..c965d32 100644 --- a/home.nix +++ b/home.nix @@ -75,8 +75,8 @@ ./home-modules/calendar-campuszeit-fix.nix ] else []); home.username = hyper.user; - # home.homeDirectory = hyper.home; # for some reason you cant use hyper.home here - home.homeDirectory = "/home/${hyper.user}"; + home.homeDirectory = hyper.home; + # home.homeDirectory = "/home/${hyper.user}"; home.stateVersion = hyper.pkgs-version; programs.home-manager.enable = true; } diff --git a/shell-only.nix b/shell-only.nix index 4f29f55..00299ae 100644 --- a/shell-only.nix +++ b/shell-only.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }@all: with all; -{ +{ pkgs, ... }@all: with all; { imports = [ ./home-modules/bash.nix ./home-modules/color-pallete.nix @@ -28,10 +27,11 @@ ./home-modules/pkgs-list/shell.nix ]; - home.username = hyper.user; - # home.homeDirectory = hyper.home; # for some reason you cant use hyper.home here - home.homeDirectory = "/home/${hyper.user}"; - home.stateVersion = hyper.pkgs-version; + home = { + username = hyper.user; + homeDirectory = hyper.home; + stateVersion = hyper.pkgs-version; + }; xdg = { enable = true; configHome = "${hyper.home}/.config"; diff --git a/system-modules/nvidia.nix b/system-modules/nvidia.nix index c899f9c..b2d49af 100644 --- a/system-modules/nvidia.nix +++ b/system-modules/nvidia.nix @@ -1,6 +1,4 @@ -{ pkgs, ... }@all: with all; -lib.mkIf hyper.nvidia.enable -{ +{ pkgs, ... }@all: with all; lib.mkIf hyper.nvidia.enable { environment.systemPackages = with pkgs; [ lshw glxinfo From 6809a6494f9e7e9a36255cd8e0ed57023072a2f5 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sat, 4 Oct 2025 22:53:18 +0200 Subject: [PATCH 30/51] Crypto Change luks for xps ssh via ssh sops via age gpg backbone, but not removed gpg-agent removed --- .sops.yaml | 2 + flake.lock | 6 +- flake.nix | 2 +- home-modules/gpg.nix | 65 ++++++--------- home-modules/sops.nix | 22 +++-- home-modules/ssh.nix | 25 +++++- sops-secrets.yaml | 61 ++++++++------ system-modules/hardware-configuration.nix | 98 +++++++++++------------ 8 files changed, 144 insertions(+), 137 deletions(-) diff --git a/.sops.yaml b/.sops.yaml index 0f00d93..202d793 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -2,6 +2,7 @@ keys: - &users: - &nx2 22FB2CC03DC5292AB81CF67D0AF27B383170E634 - &nx2_key_13 age1x2lpsennl74n0f5jl60uv2ffjcuqymzf9ap3frlz2quyv0x3hq3scnewwq + - &xps-home age1pn4utvwpqdrswn0xurfdexn5nks9cd06jxzwg3m3m6za25ap4vxqxd0p3k - &hosts: - &north age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e - &xps age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6 @@ -14,5 +15,6 @@ creation_rules: - *xps - *ace - *nx2_key_13 + - *xps-home pgp: - *nx2 diff --git a/flake.lock b/flake.lock index e037395..2a784f0 100644 --- a/flake.lock +++ b/flake.lock @@ -607,11 +607,11 @@ }, "nixpkgs-latest": { "locked": { - "lastModified": 1759571742, - "narHash": "sha256-XnKT7uz8+qWixrdfbADNKK7RXw5qS/C/ODRl2UpgL28=", + "lastModified": 1759574388, + "narHash": "sha256-6Vv/JfG6A6YmlsKYqF88TrisrNWacTCUDX2Ibe8n4yw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "52d84c8433651dec08db86d2a31b4562f026bd6b", + "rev": "32fd1eea9d3114de2acff9b10e67fd0007d2c833", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e539f4d..d5c9240 100644 --- a/flake.nix +++ b/flake.nix @@ -31,7 +31,7 @@ inherit system; user = "nx2"; domain = "nx2.site"; - home = "/home/${user}/"; + home = "/home/${user}"; webroot = "/var/lib/hugo/nx2site/public"; pkgs-version = "25.05"; }; diff --git a/home-modules/gpg.nix b/home-modules/gpg.nix index a47f72d..9d7370c 100644 --- a/home-modules/gpg.nix +++ b/home-modules/gpg.nix @@ -2,52 +2,35 @@ { # there also is a system module home.packages = with pkgs; [ - gnupg gpg-tui pinentry-all ]; - services.gpg-agent = let - min2sec = min: (min * 60); - in { + programs.gpg = { enable = true; - verbose = true; - sshKeys = [ - "97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey - ]; - enableSshSupport = true; - enableFishIntegration = true; - defaultCacheTtlSsh = min2sec 60; - defaultCacheTtl = min2sec 30; - pinentry = { - package = pkgs.pinentry; - program = "pinentry"; + package = pkgs.gnupg; + homedir = if hyper.host == "NxXPS" then "${hyper.home}/vault/gnupg" else "${hyper.home}/.gnupg"; + settings = { + armor = true; + cert-digest-algo = "SHA512"; + charset = "utf-8"; + default-preference-list = "SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed"; + keyid-format = "0xlong"; + list-options = "show-uid-validity"; + no-comments = true; + no-emit-version = true; + no-greeting = true; + no-symkey-cache = true; + personal-cipher-preferences = "AES256 AES192 AES"; + personal-compress-preferences = "ZLIB BZIP2 ZIP Uncompressed"; + personal-digest-preferences = "SHA512 SHA384 SHA256"; + pinentry-mode = "loopback"; + require-cross-certification = true; + s2k-cipher-algo = "AES256"; + s2k-digest-algo = "SHA512"; + use-agent = true; + verify-options = "show-uid-validity"; + with-fingerprint = true; }; - extraConfig = '' - allow-loopback-pinentry - ''; }; - - home.file.".gnupg/gpg.conf".text = '' - personal-cipher-preferences AES256 AES192 AES - personal-digest-preferences SHA512 SHA384 SHA256 - personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed - default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed - cert-digest-algo SHA512 - s2k-digest-algo SHA512 - s2k-cipher-algo AES256 - charset utf-8 - no-comments - no-emit-version - no-greeting - keyid-format 0xlong - list-options show-uid-validity - verify-options show-uid-validity - with-fingerprint - require-cross-certification - no-symkey-cache - armor - use-agent - pinentry-mode loopback - ''; } diff --git a/home-modules/sops.nix b/home-modules/sops.nix index 7290bb6..e3737c7 100644 --- a/home-modules/sops.nix +++ b/home-modules/sops.nix @@ -1,22 +1,18 @@ -{ pkgs, ... }@all: with all; -{ - imports = [ - inputs.sops-nix.homeManagerModules.sops - ]; - +{ pkgs, ... }@all: with all; { + imports = [ inputs.sops-nix.homeManagerModules.sops ]; sops = { - age.keyFile = "${hyper.home}.age_nx2_key_13.txt"; + age.keyFile = if (hyper.host == "NxXPS") then + "${hyper.home}/vault/age/sops-xps-home.key" + else if (hyper.host == "NxACE") then + "${hyper.home}/.age_nx2_key_13.txt" + else if (hyper.host == "NxNORTH") then + "${hyper.home}/.age_nx2_key_13.txt" + else "unkown host in sops.nix"; defaultSopsFile = ../sops-secrets.yaml; - - # %r is $XDG_RUNTIME_DIR secrets = { "example" = { path = "%r/secrets/example"; }; - # "sops-age-private-key" = { # Bootstrapping doens't work - # mode = "0400"; - # path = "/home/${user}/.config/sops/age/keys.txt"; - # }; }; }; } diff --git a/home-modules/ssh.nix b/home-modules/ssh.nix index cf71ccd..dbe1c8a 100644 --- a/home-modules/ssh.nix +++ b/home-modules/ssh.nix @@ -2,16 +2,18 @@ { home = { packages = with pkgs; [ sshfs ]; - file.".ssh/config".text = '' + file."vault/ssh/config".text = /* ssh */ '' HOST nxace HostName ssh.${hyper.domain} User ${hyper.user} Port 50022 + IdentityFile ~/vault/ssh/nxace-nx2-${hyper.host} HOST nxacel HostName 10.0.1.1 User ${hyper.user} Port 50022 + IdentityFile ~/vault/ssh/nxace-nx2-${hyper.host} HOST nxrpil HostName 10.0.1.31 @@ -22,6 +24,27 @@ HostName ssh.${hyper.domain} User git Port 50022 + IdentityFile ~/vault/ssh/nxgit-nx2-${hyper.host} ''; }; + # services.gpg-agent = let + # min2sec = min: (min * 60); + # in { + # enable = true; + # verbose = true; + # sshKeys = [ + # "97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey + # ]; + # enableSshSupport = true; + # enableFishIntegration = true; + # defaultCacheTtlSsh = min2sec 60; + # defaultCacheTtl = min2sec 30; + # pinentry = { + # package = pkgs.pinentry; + # program = "pinentry"; + # }; + # extraConfig = '' + # allow-loopback-pinentry + # ''; + # }; } diff --git a/sops-secrets.yaml b/sops-secrets.yaml index e9f4f09..ee4ff59 100644 --- a/sops-secrets.yaml +++ b/sops-secrets.yaml @@ -58,51 +58,60 @@ sops: - recipient: age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZWl0RCszNGZqNDhzY25a - K2dPTGMvMzBSZytRMWR5d1pkTVpETmNZUTFzCmUrU25XdklVc3NicUV2OVh5bktR - YmZIeGZzYkVJMXRwSkt6bXlaRGpiaEkKLS0tIEZOMDUxaEo1aXRsV050a3I0eFNR - UlIxODJVK3lEaC9lWG9wNmhaUWhuZEEKnQT50Svfxgnbo6+gTSGyLW8vt+hzehu5 - djy0wdML7XGORKURUJcAnGCdgsugu7exTBPMeKldlPXySPGUf6vPRA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUSW9RSEE1aGV1RVUzZXh0 + M3FhS01jYU90S3pOUzhKMUFndXVzSk8wYkZrCnhRdkE4cnNxWHJWYjVzUGZVMmNQ + N1kxM240OC9oOEloUjhEUmx3c3RTQzQKLS0tIGIwNUhjOURaVXNIeHR5SjNEQmly + QUFHYUxTSWREcU9GT2JUSXNBNndkMkEKCIPVu8VbDjsdDaePoivW0jMvzD/GZpHk + 9P1zJ0fN1NPCTi7spAyiyDWpJa6sfwAVj7Bs2zzFZoJZUxvE054YPw== -----END AGE ENCRYPTED FILE----- - recipient: age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBISzJjS2t4OFNtd2s3RjE3 - V2hOUnByNVp3bjE4a0tPSkdCbXcwU093NGtFCmR2RXdzbTk1RXhQbmdVM0pkdGhE - T2VGN1VnYlRqWXRmWEJucTd5eU5HYWsKLS0tIFJRODNibTZNRjZtZjlpN0IzbVZQ - aHQwY0l3OTRVYlNSZnBQMGM4ekp0NGMKL0scPlNFywKmdPI3I8sgvmaVXOp6qm2m - O0N8BuQPEhiZXzNhPBPJnt6e/X+eW35lXdvbQ6AKv791WjZ4OlSZow== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjb3R0bFhqZzg3MC9rZFVi + elJCTHdjVlpTVUtaUzcwQklmbVd6TXJsSUNRClk0VExaYVFkaE5KYWtGYmU1bGk4 + OHJYQUpKZ1gzUnQyaVpudVdiZ0RYb1UKLS0tIGNINzBHRHE3YkhMNVY4dVVlUVBs + TzhkWmxYU016TXN5Z0JDUVFZeG1QMWsKiukK/zVn6WEr1E5qKPULsyJQX8qDgQoY + JIeoG+OehtZ33VIXJfiNw60taM4XJb+bv/u9dzCY9ahW8M5VthpIlg== -----END AGE ENCRYPTED FILE----- - recipient: age1jj7kfjw3e7rf9kwg5f87zf4ns6yr5465wcasanr9gcgwrq7c6dmq6gprgk enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwT2laNmNOYnhON2FEcGxl - OVFHa2owL1RCWWNWdDhzZWRlSkhPZmJpQjFvCjNPSGc4L1V5cENBMzY2VU56RnNW - QmNiNGMyZXY0WmN3R0c5YURQN1RGbDQKLS0tIE5lZXZiR2FZVms4YllUd1BsOURD - YTMxdkhkLzNGOWVYQkZJQnVCeW4zcXcKLaGzWYXBaR9mpLE47pWAkYUv/L5JuCR9 - ZH2oaOLio6BHY+pf9WbbazbjIKXMZ8KozpLTzbn7ayKYYgGxEiwdIA== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCOStIUnJVVU5YRFg0T0dF + ZjBMVThZSFlRa0lCZ2RFZ1R4Mjk0Zjd4b0RRCkwveXN2SmIwajd6R1NScXpQS0FH + S25rOFRKRzd2SFRlZHYxMnZPY3Q3QUEKLS0tIDZRVU54UlFiSWJlWW9LWVRqcGpD + RXIxSVA3T0RwZEJDTk1JWHZVT09neUUKX7QgyC+yJ+eDvKX2dW9XU2UA8WPC5Tsm + fzlmjPWR/E2Gdnoi0k2+HLWo46SUeMYdpZfx3gK+UmDFUags+SCHpg== -----END AGE ENCRYPTED FILE----- - recipient: age1x2lpsennl74n0f5jl60uv2ffjcuqymzf9ap3frlz2quyv0x3hq3scnewwq enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByUmxCQ3ZOVGlWUWFkcGk1 - ZzNaR0R0UG43dkh5Wjd5MmQ5SlkwU0g3c0ZJCnVYZExQdi94ME56eUVwUG5XbjJi - OC9OSmZYeHo4anJLb0NQSEs3cmMrS1UKLS0tIFJWU1VYL09SbDlHZlJtRlhmSjFJ - YkJWUEMySU50ZHVxUzVudjNnYURXak0KkMn/8sFrrviqb3s8DtS/BAbrdCwJ+jv/ - A8rXQkKMjvTqG1f0fq5IlSmRAQy7XFBzkfbKdIUoefhey190WPEHaw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzMUw1OXpCN0F6WkdBWFVM + M0VWdGlVcllTQlJKQUpKTG9wQ2NqVGEzVFJzCjE4UU92MlljSEIrZENFdVZpQUcx + SUh3SUh4bnZFVFpJOThQdG8wM24xZVkKLS0tIGJsUUl1QmJiRUFFRERrWWlMK1Fk + V2ZCS0tFUHNKckY1YXNRa3lwS3dVYW8KzrtAPlNuWQxSR2PEqFyqI5yv8jD2ZE3j + CT1SFmY9vf++WiOt1epby2MNpYdgyNrvlcaNUiE8Pt5ce0Y21pbq5A== + -----END AGE ENCRYPTED FILE----- + - recipient: age1pn4utvwpqdrswn0xurfdexn5nks9cd06jxzwg3m3m6za25ap4vxqxd0p3k + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3MHZlREs5OGxqTkZadmx1 + R2hwMmc1YlZTd3owOHRIajJQMnVCbTFPOWtrCndMQ2Evc09VazNGVktrMXVHR2Vw + dFZWMm9rdi9iQWh3Y1lQT1g2SDJqNjQKLS0tIHYwVmVLeWQvc2ZWUzkxZzdKSnZt + TE44bHh2SFBMNldkdWZGcXc0c05LVWsK7LfqdRED2NkJxAxq+48MlLyIV30ihe0+ + t269ote4qHDBx0RCZd5/hYUph/8Xf/fPa7Q6JYl6fkKiWUA3uWdbFQ== -----END AGE ENCRYPTED FILE----- lastmodified: "2025-09-07T21:03:20Z" mac: ENC[AES256_GCM,data:x8eIqQQGxtB5ukScesN1Lf4cFicTOi3VSOr/hFxKzccgwW7HLLEqwjai6e67KUFC2otaN9TR7ft0tUsTVwWRVRCHnpEoQ5KshLHy2zsk+CmPIpWTLCZJBpe154z3rRLlc10DCM7yhqArzepw0HgE4j1knADqLVwC7e0k+o/OmE8=,iv:uXeIv19J3LmYg7gtA2SGUSoMe9uccrvvztlDFSSs1V8=,tag:YTJpZdw1K+7//EARR+MviA==,type:str] pgp: - - created_at: "2025-06-08T12:35:30Z" + - created_at: "2025-10-04T19:49:10Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DCvJ7ODFw5jQSAQdAw5PIhSmghpU+R4d8A9FY1z9NwN2C1CQvnP0u/D6k9nEw - 4jYo133RBpSmZUEOPsrAIGDwcx5rAjIwXtYEUeH3ZR1/0imfyOh0iF0NhEqF5awG - 0l4BWb/AQFnokqiIuRGQPMqpO6X3m00C2kB79nodaxorhc/WBs4JX3qz89zozsLq - ao8WHHadtQJwBveKurCNHLcr2+vLatPZ93Oo3s/ky+5eB+HrottOC818TIP51tXx - =8dKb + hF4DCvJ7ODFw5jQSAQdA2lEw0/JamW2LbvTLg0PhRxyNFbBunqhNa0/Bgv9riF8w + 4MIL+i7o3KOAGF4h3NQpQNkG1rgMImzlXbSOzLJJV/uEMkew6VASKENAa+4FFo7t + 0l4B3QpXdQzCWe07HXhqG+YetjR8tM9Rtk5XZuw4XTyca49BZezXPCbqgstoSW+U + TSjvpKr4FeE3tA3ePo4Jo7HYa1qotJe97pgDqziWIqEIJNwNhwROv9aLagWX9cVd + =dhDw -----END PGP MESSAGE----- fp: 22FB2CC03DC5292AB81CF67D0AF27B383170E634 unencrypted_suffix: _unencrypted diff --git a/system-modules/hardware-configuration.nix b/system-modules/hardware-configuration.nix index 3772a32..c03c5e6 100644 --- a/system-modules/hardware-configuration.nix +++ b/system-modules/hardware-configuration.nix @@ -1,54 +1,48 @@ -{ pkgs, ... }@all: with all; -{ - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - environment.systemPackages = with pkgs; [ - ntfs3g - ]; - - boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; - # boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems = if hyper.host != "NxACE" then { - "/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; }; - "/boot" = { device = "/dev/disk/by-label/EFI"; fsType = "vfat"; }; - "/home/${hyper.user}/shared" = { device = "/dev/disk/by-label/shared"; fsType = "ntfs"; options = [ "uid=1000" "gid=100" ]; }; - } else { - "/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; }; - "/boot" = { device = "/dev/disk/by-label/EFI"; fsType = "vfat"; }; - "/vault" = { device = "/dev/disk/by-label/vault"; fsType = "ext4"; }; - -}; - - - swapDevices = [ - { device = "/dev/disk/by-label/swap"; } - ]; - +{ pkgs, ... }@all: with all; { + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + environment = { + systemPackages = with pkgs; [ ntfs3g cryptsetup ]; + variables = pkgs.lib.mkIf (hyper.host == "NxXPS") { + VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl"); + }; + }; + boot = { + initrd = { + availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + luks.devices.cryptroot.device = pkgs.lib.mkIf (hyper.host == "NxXPS") "/dev/nvme0n1p7"; + kernelModules = pkgs.lib.mkIf (hyper.host == "NxXPS") [ "i915" "cryptd" ]; + }; + kernelModules = [ "kvm-intel" ]; + extraModulePackages = [ ]; + extraModprobeConfig = pkgs.lib.mkIf (hyper.host == "NxXPS") '' + options iwlwifi 11n_disable=8 + ''; + }; + fileSystems = let + ntfs = { fsType = "ntfs"; options = [ "uid=1000" "gid=100" ]; }; + in { + "/" = { device = "/dev/disk/by-label/nixos"; fsType = "ext4"; }; + "/boot" = { device = "/dev/disk/by-label/EFI"; fsType = "vfat"; }; + } // (if hyper.host == "NxXPS" then { + "${hyper.home}/shared" = { device = "/dev/disk/by-label/shared"; } // ntfs; + "${hyper.home}/vault" = { device = "/dev/disk/by-label/vault"; fsType = "ext4"; }; + } else if hyper.host == "NxNORTH" then { + "${hyper.home}/shared" = { device = "/dev/disk/by-label/shared"; } // ntfs; + } else if hyper.host == "NxXPS" then { + "/vault" = { device = "/dev/disk/by-label/vault"; fsType = "ext4"; }; + } else {}); + hardware = { + cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + graphics.extraPackages = with pkgs.lib; mkIf (hyper.host == "NxXPS") [ + (if (versionOlder (versions.majorMinor version) "25.05") then pkgs.vaapiIntel else pkgs.intel-vaapi-driver) + pkgs.libvdpau-va-gl + pkgs.intel-media-driver + ]; + }; + swapDevices = [ { device = "/dev/disk/by-label/swap"; } ]; networking.useDHCP = lib.mkDefault true; - - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; - - # from nixos-hardware - services.thermald.enable = lib.mkDefault true; - boot.extraModprobeConfig = if hyper.host == "NxXPS" then '' - options iwlwifi 11n_disable=8 - '' else ""; - boot.initrd.kernelModules = if hyper.host == "NxXPS" then [ "i915" ] else []; - - environment.variables = if hyper.host == "NxXPS" then { - VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl"); - } else {}; - - hardware.graphics.extraPackages = if hyper.host == "NxXPS" then with pkgs; [ - (if (lib.versionOlder (lib.versions.majorMinor lib.version) "25.05") then vaapiIntel else intel-vaapi-driver) - libvdpau-va-gl - intel-media-driver - ] else []; - - services.upower.enable = true; + services = { + thermald.enable = lib.mkDefault true; + upower.enable = true; + }; } From f7de7f740de3b340d3c6ab4be17a6aa211887973 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sun, 5 Oct 2025 00:20:27 +0200 Subject: [PATCH 31/51] user accept xps ssh + refactor --- system-modules/users.nix | 65 ++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/system-modules/users.nix b/system-modules/users.nix index 22a9ab3..146a946 100644 --- a/system-modules/users.nix +++ b/system-modules/users.nix @@ -1,36 +1,37 @@ -{ pkgs, ... }@all: with all; -{ - users.defaultUserShell = pkgs.bash; # if interactive, itll switch to fish - - users.users."${hyper.user}" = { - isNormalUser = true; - extraGroups = [ - # TODO: actually put the groups into the relevant files - "networkmanager" - "wheel" - "audio" - "video" - "lp" - "scanner" - "docker" - "libvirtd" - "uinput" - "input" - "ydotool" - "acme" - "nginx" - "adbusers" - "postgres" - "radicale" - "audiobookshelf" - "nextcloud" - ]; - useDefaultShell = true; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID1RPCcS8DtIf75a2FEW4d8X6WTVeLlmretoLqppvZlJ" # From [A] GPG Sub Key - ]; +{ pkgs, ... }@all: with all; { + users = { + defaultUserShell = pkgs.bash; # if interactive, itll switch to fish + users."${hyper.user}" = { + isNormalUser = true; + extraGroups = [ + # TODO: actually put the groups into the relevant files + "acme" + "adbusers" + "audio" + "audiobookshelf" + "copyparty" + "docker" + "input" + "libvirtd" + "lp" + "networkmanager" + "nextcloud" + "nginx" + "postgres" + "radicale" + "scanner" + "uinput" + "video" + "wheel" + "ydotool" + ]; + useDefaultShell = true; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID1RPCcS8DtIf75a2FEW4d8X6WTVeLlmretoLqppvZlJ" # From [A] GPG Sub Key + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE5sYVtPLHXatTjrpol46xr9R4TidcB4t8axO6/ReNNR nx2@ssh.nx2.site" # NxXPS + ]; + }; }; - programs = { bash = { interactiveShellInit = '' From 4c178e57fa7e12ab9cbaaaabf1d37704969ad0db Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sun, 5 Oct 2025 00:59:05 +0200 Subject: [PATCH 32/51] ssh use module --- home-modules/ssh.nix | 89 +++++++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 46 deletions(-) diff --git a/home-modules/ssh.nix b/home-modules/ssh.nix index dbe1c8a..8f8407a 100644 --- a/home-modules/ssh.nix +++ b/home-modules/ssh.nix @@ -1,50 +1,47 @@ -{ pkgs, ... }@all: with all; -{ - home = { - packages = with pkgs; [ sshfs ]; - file."vault/ssh/config".text = /* ssh */ '' - HOST nxace - HostName ssh.${hyper.domain} - User ${hyper.user} - Port 50022 - IdentityFile ~/vault/ssh/nxace-nx2-${hyper.host} +{ pkgs, ... }@all: with all; { + programs.ssh = { + enable = true; + package = pkgs.openssh; + matchBlocks = let + nxace = name: { + host = name; + hostname = "ssh.${hyper.domain}"; + user = hyper.user; + port = secrets.ssh.port; + identityFile = "${hyper.home}/vault/ssh/nxace-nx2-${hyper.host}"; + }; + in { + "nxace" = nxace "nxace"; + "nxacel" = (nxace "nxacel") // { hostname = "10.0.1.1"; }; + "nxrpli" = (nxace "nxrpil") // { hostname = "10.0.1.31"; port = 22; }; + "nxgit" = (nxace "nxgit") // { + user = "git"; + identityFile = builtins.trace config.programs.ssh.matchBlocks.nxgit + "${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}"; + # addKeysToAgent = "1h"; + }; + }; + }; + home.packages = with pkgs; [ sshfs ]; - HOST nxacel - HostName 10.0.1.1 - User ${hyper.user} - Port 50022 - IdentityFile ~/vault/ssh/nxace-nx2-${hyper.host} - - HOST nxrpil - HostName 10.0.1.31 - User ${hyper.user} - Port 22 - - HOST nxgit - HostName ssh.${hyper.domain} - User git - Port 50022 - IdentityFile ~/vault/ssh/nxgit-nx2-${hyper.host} + services.gpg-agent = let + min2sec = min: (min * 60); + in { + enable = false; + verbose = true; + sshKeys = [ + "97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey + ]; + enableSshSupport = true; + enableFishIntegration = true; + defaultCacheTtlSsh = min2sec 60; + defaultCacheTtl = min2sec 30; + pinentry = { + package = pkgs.pinentry; + program = "pinentry"; + }; + extraConfig = '' + allow-loopback-pinentry ''; }; - # services.gpg-agent = let - # min2sec = min: (min * 60); - # in { - # enable = true; - # verbose = true; - # sshKeys = [ - # "97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey - # ]; - # enableSshSupport = true; - # enableFishIntegration = true; - # defaultCacheTtlSsh = min2sec 60; - # defaultCacheTtl = min2sec 30; - # pinentry = { - # package = pkgs.pinentry; - # program = "pinentry"; - # }; - # extraConfig = '' - # allow-loopback-pinentry - # ''; - # }; } From 1fc8b2a7cb5ca1617d99c266cca663e038b9208e Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sun, 5 Oct 2025 01:48:18 +0200 Subject: [PATCH 33/51] all use vault gpg --- home-modules/gpg.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home-modules/gpg.nix b/home-modules/gpg.nix index 9d7370c..127868f 100644 --- a/home-modules/gpg.nix +++ b/home-modules/gpg.nix @@ -9,7 +9,7 @@ programs.gpg = { enable = true; package = pkgs.gnupg; - homedir = if hyper.host == "NxXPS" then "${hyper.home}/vault/gnupg" else "${hyper.home}/.gnupg"; + homedir = "${hyper.home}/vault/gnupg"; settings = { armor = true; cert-digest-algo = "SHA512"; From ff5de39a1972288b5d1ebcc218514dfd127f78a2 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sun, 5 Oct 2025 01:50:43 +0200 Subject: [PATCH 34/51] all use vault sops age --- .sops.yaml | 2 ++ home-modules/sops.nix | 13 +------- sops-secrets.yaml | 71 ++++++++++++++++++++++++------------------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/.sops.yaml b/.sops.yaml index 202d793..5694f7e 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -3,6 +3,7 @@ keys: - &nx2 22FB2CC03DC5292AB81CF67D0AF27B383170E634 - &nx2_key_13 age1x2lpsennl74n0f5jl60uv2ffjcuqymzf9ap3frlz2quyv0x3hq3scnewwq - &xps-home age1pn4utvwpqdrswn0xurfdexn5nks9cd06jxzwg3m3m6za25ap4vxqxd0p3k + - &ace-home age1ur5zpr325cv7w0yn49azz9f48xsxd73w2sytt22yrnw5qs9r34nsv3vl05 - &hosts: - &north age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e - &xps age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6 @@ -16,5 +17,6 @@ creation_rules: - *ace - *nx2_key_13 - *xps-home + - *ace-home pgp: - *nx2 diff --git a/home-modules/sops.nix b/home-modules/sops.nix index e3737c7..bc34252 100644 --- a/home-modules/sops.nix +++ b/home-modules/sops.nix @@ -1,18 +1,7 @@ { pkgs, ... }@all: with all; { imports = [ inputs.sops-nix.homeManagerModules.sops ]; sops = { - age.keyFile = if (hyper.host == "NxXPS") then - "${hyper.home}/vault/age/sops-xps-home.key" - else if (hyper.host == "NxACE") then - "${hyper.home}/.age_nx2_key_13.txt" - else if (hyper.host == "NxNORTH") then - "${hyper.home}/.age_nx2_key_13.txt" - else "unkown host in sops.nix"; + age.keyFile = "${hyper.home}/vault/age/sopsnix-${hyper.host}-home.key"; defaultSopsFile = ../sops-secrets.yaml; - secrets = { - "example" = { - path = "%r/secrets/example"; - }; - }; }; } diff --git a/sops-secrets.yaml b/sops-secrets.yaml index ee4ff59..ea8f94e 100644 --- a/sops-secrets.yaml +++ b/sops-secrets.yaml @@ -58,60 +58,69 @@ sops: - recipient: age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUSW9RSEE1aGV1RVUzZXh0 - M3FhS01jYU90S3pOUzhKMUFndXVzSk8wYkZrCnhRdkE4cnNxWHJWYjVzUGZVMmNQ - N1kxM240OC9oOEloUjhEUmx3c3RTQzQKLS0tIGIwNUhjOURaVXNIeHR5SjNEQmly - QUFHYUxTSWREcU9GT2JUSXNBNndkMkEKCIPVu8VbDjsdDaePoivW0jMvzD/GZpHk - 9P1zJ0fN1NPCTi7spAyiyDWpJa6sfwAVj7Bs2zzFZoJZUxvE054YPw== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxODZibjJwSGRJYVpyRXFh + UmFmRVIwOGhFaHhpb05iRGtTSnV0UUlkOUd3CnFiOTJ4cTN0OHYvQTlScy9NYXAr + a1A1YzFkdkttenhRa1NIUnhuVEZiLzgKLS0tIFVkTDRZNWhHeHN3MWNTSHJRbSs0 + Nk5FcnBaSkhWcXZaeCtQMDJaVEc1aEEK71jQkA/mOqNIdcNYHDnb43MEVKyNIOpT + 8J/CV6U5M+YGNvkHXafNFccHKY8dFPVDzcJl0lthECjcGrplzNEWNw== -----END AGE ENCRYPTED FILE----- - recipient: age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6 enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjb3R0bFhqZzg3MC9rZFVi - elJCTHdjVlpTVUtaUzcwQklmbVd6TXJsSUNRClk0VExaYVFkaE5KYWtGYmU1bGk4 - OHJYQUpKZ1gzUnQyaVpudVdiZ0RYb1UKLS0tIGNINzBHRHE3YkhMNVY4dVVlUVBs - TzhkWmxYU016TXN5Z0JDUVFZeG1QMWsKiukK/zVn6WEr1E5qKPULsyJQX8qDgQoY - JIeoG+OehtZ33VIXJfiNw60taM4XJb+bv/u9dzCY9ahW8M5VthpIlg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBK0dKQWQyOW8xQ0RMOXlv + SStnV0R1QWNlZlVrUGdqSTVUSUJHL09RQW5BCk1OL2NLVFk1R1kzTjc1OUR5TmVC + MXI0ZnoxcVRoNHFOa2FJT0RvOUtTakUKLS0tIC82QzlJT0RjVHo0aXZOckNNNElO + WjZEL0NzL0NzOUdMK3FaOE5Ub2x5OXcKOAahFXWAQNagHz2G+O1TPiKB7UqUl8p2 + K89cGfal6M2ui403lb2ygEi+v6K908Kh9MzGaDtR0r2k7kGQS4aFmg== -----END AGE ENCRYPTED FILE----- - recipient: age1jj7kfjw3e7rf9kwg5f87zf4ns6yr5465wcasanr9gcgwrq7c6dmq6gprgk enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCOStIUnJVVU5YRFg0T0dF - ZjBMVThZSFlRa0lCZ2RFZ1R4Mjk0Zjd4b0RRCkwveXN2SmIwajd6R1NScXpQS0FH - S25rOFRKRzd2SFRlZHYxMnZPY3Q3QUEKLS0tIDZRVU54UlFiSWJlWW9LWVRqcGpD - RXIxSVA3T0RwZEJDTk1JWHZVT09neUUKX7QgyC+yJ+eDvKX2dW9XU2UA8WPC5Tsm - fzlmjPWR/E2Gdnoi0k2+HLWo46SUeMYdpZfx3gK+UmDFUags+SCHpg== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaNGhjNHlubGp3QzRkRy9i + UmM0ZlE5UUxhM0tCeHkwOUt2VEt1YldnNnhrCnZHWlpWZ3BpZ1BlYTlVVmFZQ2Q4 + RlF5UldLdDNOZTB6UDlBcldqRmhyTDQKLS0tIG5OZjZkdnNnbTZ2K3kzNGdqdGFE + RUdad1FHMTVFVU8xRmpCdHRnK0Z5ZkkKb+25mUdPRozNnyPXGCJOe+xtsOZVe4oy + SDpdoSASzq2uljMxVPyINJcbEThJriZAzC30Qt2aroc2zo3dnsnVMg== -----END AGE ENCRYPTED FILE----- - recipient: age1x2lpsennl74n0f5jl60uv2ffjcuqymzf9ap3frlz2quyv0x3hq3scnewwq enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzMUw1OXpCN0F6WkdBWFVM - M0VWdGlVcllTQlJKQUpKTG9wQ2NqVGEzVFJzCjE4UU92MlljSEIrZENFdVZpQUcx - SUh3SUh4bnZFVFpJOThQdG8wM24xZVkKLS0tIGJsUUl1QmJiRUFFRERrWWlMK1Fk - V2ZCS0tFUHNKckY1YXNRa3lwS3dVYW8KzrtAPlNuWQxSR2PEqFyqI5yv8jD2ZE3j - CT1SFmY9vf++WiOt1epby2MNpYdgyNrvlcaNUiE8Pt5ce0Y21pbq5A== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArV094ZWwvTzJuYlE1Um14 + K09wUlcxdFc1eFB3bXgrSXlRK3ZRSnB1QXhBClhNZVFIRHBVUGkwOVk3ejc5b0FN + cEtkSTFHZ1FWUDQzZUJBbHRsMnhWMUkKLS0tIDhQWGpvV01TRHY0VnJCclRsVHl6 + YkZJWm5xWlh2NmtibnVPYSs2QjF0TW8KRj+d44ttYXoElSzxv6n4u9NL/aeXJQpc + Fc0797glPXgInJZkQSzCmjKs6LzY82I5D34evwuFzuwD/TMAGyo0/g== -----END AGE ENCRYPTED FILE----- - recipient: age1pn4utvwpqdrswn0xurfdexn5nks9cd06jxzwg3m3m6za25ap4vxqxd0p3k enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3MHZlREs5OGxqTkZadmx1 - R2hwMmc1YlZTd3owOHRIajJQMnVCbTFPOWtrCndMQ2Evc09VazNGVktrMXVHR2Vw - dFZWMm9rdi9iQWh3Y1lQT1g2SDJqNjQKLS0tIHYwVmVLeWQvc2ZWUzkxZzdKSnZt - TE44bHh2SFBMNldkdWZGcXc0c05LVWsK7LfqdRED2NkJxAxq+48MlLyIV30ihe0+ - t269ote4qHDBx0RCZd5/hYUph/8Xf/fPa7Q6JYl6fkKiWUA3uWdbFQ== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAreTRVWkxiNnZKeFFiNVA2 + ZldmbXpUN2lyYjh0M0ZNSHpHRGk0aHpkUUZzCmhrZnBTWTlTYU13K2YwNFVCT1px + ZUhWODQrZHlIR2RQOFhmUXY2NXI3QUkKLS0tIHlDcnI0dGt3a2h6a3l1YkRMNkVr + QVRCdkMza3JDb01mdW5mbTZtbFVVR3MK3dww+AlRaTwe2oveZzcRaKgLE++U0jxJ + kaC8DmqQh/XbiqlJ9sIIg6PfmyME7ACe31TkZVc1MhSvVePmxRRLYQ== + -----END AGE ENCRYPTED FILE----- + - recipient: age1ur5zpr325cv7w0yn49azz9f48xsxd73w2sytt22yrnw5qs9r34nsv3vl05 + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoR1g0Wk1idkFVbUlNaEls + dlRMWHNFMW5HSmtyUlF5YnBMZkFGUzFEZ0ZRCmZoZDZDRlFIbk5mQU1Kbk9hU0p6 + WldxaHpuZVlqVkJyK0hEZkFaV2FKZG8KLS0tIGxMdFJBc1pDMmpKVm5mbTFRUU9m + SUwwSStwcmw0VDFLdTlqZDViV0k3YTgKukCR3ZJaJpEHNCxoisES9/uIULz1E7XW + w4VVHk+0fuTUCcCWz/Lpw58OgNdNz7mAx8Ji2Uyid3qTkd6NjdCVaA== -----END AGE ENCRYPTED FILE----- lastmodified: "2025-09-07T21:03:20Z" mac: ENC[AES256_GCM,data:x8eIqQQGxtB5ukScesN1Lf4cFicTOi3VSOr/hFxKzccgwW7HLLEqwjai6e67KUFC2otaN9TR7ft0tUsTVwWRVRCHnpEoQ5KshLHy2zsk+CmPIpWTLCZJBpe154z3rRLlc10DCM7yhqArzepw0HgE4j1knADqLVwC7e0k+o/OmE8=,iv:uXeIv19J3LmYg7gtA2SGUSoMe9uccrvvztlDFSSs1V8=,tag:YTJpZdw1K+7//EARR+MviA==,type:str] pgp: - - created_at: "2025-10-04T19:49:10Z" + - created_at: "2025-10-04T23:33:42Z" enc: |- -----BEGIN PGP MESSAGE----- - hF4DCvJ7ODFw5jQSAQdA2lEw0/JamW2LbvTLg0PhRxyNFbBunqhNa0/Bgv9riF8w - 4MIL+i7o3KOAGF4h3NQpQNkG1rgMImzlXbSOzLJJV/uEMkew6VASKENAa+4FFo7t - 0l4B3QpXdQzCWe07HXhqG+YetjR8tM9Rtk5XZuw4XTyca49BZezXPCbqgstoSW+U - TSjvpKr4FeE3tA3ePo4Jo7HYa1qotJe97pgDqziWIqEIJNwNhwROv9aLagWX9cVd - =dhDw + hF4DCvJ7ODFw5jQSAQdAwFhdvVSDAhK6TQhL1Jd+Bw9KNHD5BhzMxM04+tsOmVMw + DDFAuBEfqGGzsJfrWPfdJJOPGYHK3vz/O6zitpCy1cF7EuSkak11nLDAG6Itozuv + 0l4BS8mBaxvNcJUePYCq0SY7qVmu+OGnchKJ2e3suJllxZ+Uxc9WDSBxRVGMcwXo + N2d/0dtdU8HAP70/L2SeTDMgK+lX++71DGAO45+c040GbMnB1SGJfWDa71b0BHVS + =5jtR -----END PGP MESSAGE----- fp: 22FB2CC03DC5292AB81CF67D0AF27B383170E634 unencrypted_suffix: _unencrypted From e8373d62935a290fcecab1c94bc98baf60f1e892 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sun, 5 Oct 2025 01:50:49 +0200 Subject: [PATCH 35/51] no trace --- home-modules/ssh.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/home-modules/ssh.nix b/home-modules/ssh.nix index 8f8407a..c0b99f4 100644 --- a/home-modules/ssh.nix +++ b/home-modules/ssh.nix @@ -16,8 +16,7 @@ "nxrpli" = (nxace "nxrpil") // { hostname = "10.0.1.31"; port = 22; }; "nxgit" = (nxace "nxgit") // { user = "git"; - identityFile = builtins.trace config.programs.ssh.matchBlocks.nxgit - "${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}"; + identityFile = "${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}"; # addKeysToAgent = "1h"; }; }; From b0cb61f05eccc0d4fec6c440a8f50b6dcb8861f5 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sun, 5 Oct 2025 01:51:05 +0200 Subject: [PATCH 36/51] hw ace fix --- system-modules/hardware-configuration.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/system-modules/hardware-configuration.nix b/system-modules/hardware-configuration.nix index c03c5e6..0107e3d 100644 --- a/system-modules/hardware-configuration.nix +++ b/system-modules/hardware-configuration.nix @@ -9,7 +9,9 @@ boot = { initrd = { availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; - luks.devices.cryptroot.device = pkgs.lib.mkIf (hyper.host == "NxXPS") "/dev/nvme0n1p7"; + luks.devices = pkgs.lib.mkIf (hyper.host == "NxXPS") { + "vault".device = "/dev/nvme0n1p7"; + }; kernelModules = pkgs.lib.mkIf (hyper.host == "NxXPS") [ "i915" "cryptd" ]; }; kernelModules = [ "kvm-intel" ]; @@ -28,7 +30,7 @@ "${hyper.home}/vault" = { device = "/dev/disk/by-label/vault"; fsType = "ext4"; }; } else if hyper.host == "NxNORTH" then { "${hyper.home}/shared" = { device = "/dev/disk/by-label/shared"; } // ntfs; - } else if hyper.host == "NxXPS" then { + } else if hyper.host == "NxACE" then { "/vault" = { device = "/dev/disk/by-label/vault"; fsType = "ext4"; }; } else {}); hardware = { From 470922dce263283969dfcdca5ec85a5f8739db45 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Sun, 5 Oct 2025 01:51:11 +0200 Subject: [PATCH 37/51] ace colors --- flake-modules/colors.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/flake-modules/colors.json b/flake-modules/colors.json index 134e471..61eecac 100644 --- a/flake-modules/colors.json +++ b/flake-modules/colors.json @@ -1,13 +1,13 @@ { "base": { - "foreground": "#fee5cc", - "background": "#190c00" + "foreground": "#fefefe", + "background": "#020202" }, "to_alter": { - "accent": "#fc9835", - "secondary": "#fc3535", - "tertiary": "#e64b73", - "special": "#3499fc", - "weird": "#56fc34" + "accent": "#aaaaff", + "secondary": "#aaeeff", + "tertiary": "#aaffaa", + "special": "#aaffaa", + "weird": "#ffffaa" } } \ No newline at end of file From e25ad7891dad8768b4e9330aec651129a55cc481 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 7 Oct 2025 17:30:46 +0200 Subject: [PATCH 38/51] cleanup --- home-modules/nx-gcal-event.nix | 2 +- nixos-wsl.nix | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/home-modules/nx-gcal-event.nix b/home-modules/nx-gcal-event.nix index 5c14580..f172ed5 100644 --- a/home-modules/nx-gcal-event.nix +++ b/home-modules/nx-gcal-event.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }@all: with all; +{ pkgs, ... }@all: with all; let sep = " "; in { home = { diff --git a/nixos-wsl.nix b/nixos-wsl.nix index 191a2a6..a668140 100644 --- a/nixos-wsl.nix +++ b/nixos-wsl.nix @@ -8,13 +8,9 @@ ./system-modules/gpg.nix ./system-modules/networking.nix ./system-modules/nixd.nix - # ./system-modules/sops.nix - # ./system-modules/sshd.nix - # ./system-modules/syncthing.nix ./system-modules/users.nix ]; system.stateVersion = pkgs.version; - # system.stateVersion = "24.11"; wsl = { defaultUser = hyper.user; enable = true; @@ -31,6 +27,5 @@ ]; }; }; - nixpkgs.hostPlatform = hyper.system; } From 98c0a26209c6616af406ed38dd7293dca751b678 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 7 Oct 2025 17:31:05 +0200 Subject: [PATCH 39/51] no gpg-agent --- system-modules/gpg.nix | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/system-modules/gpg.nix b/system-modules/gpg.nix index 8075bd3..e5cf5b5 100644 --- a/system-modules/gpg.nix +++ b/system-modules/gpg.nix @@ -1,14 +1,8 @@ -{ pkgs, ... }@all: with all; -{ - environment.systemPackages = with pkgs; [ - gnupg - gpg-tui - ]; - +{ pkgs, ... }@all: with all; { programs.gnupg = { dirmngr.enable = true; agent = { - enable = true; + enable = false; enableSSHSupport = true; enableExtraSocket = true; enableBrowserSocket = true; From ffddb4773b0c8e4f41e84f6b605f7518efa0e9f3 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 7 Oct 2025 17:31:27 +0200 Subject: [PATCH 40/51] ssh-agent + port fix --- home-modules/ssh.nix | 45 +++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/home-modules/ssh.nix b/home-modules/ssh.nix index c0b99f4..9d53f31 100644 --- a/home-modules/ssh.nix +++ b/home-modules/ssh.nix @@ -7,7 +7,7 @@ host = name; hostname = "ssh.${hyper.domain}"; user = hyper.user; - port = secrets.ssh.port; + port = 50022; identityFile = "${hyper.home}/vault/ssh/nxace-nx2-${hyper.host}"; }; in { @@ -23,24 +23,31 @@ }; home.packages = with pkgs; [ sshfs ]; - services.gpg-agent = let - min2sec = min: (min * 60); - in { - enable = false; - verbose = true; - sshKeys = [ - "97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey - ]; - enableSshSupport = true; - enableFishIntegration = true; - defaultCacheTtlSsh = min2sec 60; - defaultCacheTtl = min2sec 30; - pinentry = { - package = pkgs.pinentry; - program = "pinentry"; + services = { + ssh-agent = { + enable = true; + # socket = "ssh-agent"; # suffix to $XDG_RUNTIME_DIR + # package = pkgs.openssh; + }; + gpg-agent = let + min2sec = min: (min * 60); + in { + enable = false; + verbose = true; + sshKeys = [ + "97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey + ]; + enableSshSupport = true; + enableFishIntegration = true; + defaultCacheTtlSsh = min2sec 60; + defaultCacheTtl = min2sec 30; + pinentry = { + package = pkgs.pinentry; + program = "pinentry"; + }; + extraConfig = '' + allow-loopback-pinentry + ''; }; - extraConfig = '' - allow-loopback-pinentry - ''; }; } From 812555c467f729aac512b00c58537895b503ca4d Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 7 Oct 2025 17:31:40 +0200 Subject: [PATCH 41/51] more ssh keys allowed --- system-modules/users.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/system-modules/users.nix b/system-modules/users.nix index 146a946..b6c11c5 100644 --- a/system-modules/users.nix +++ b/system-modules/users.nix @@ -28,7 +28,9 @@ useDefaultShell = true; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID1RPCcS8DtIf75a2FEW4d8X6WTVeLlmretoLqppvZlJ" # From [A] GPG Sub Key - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE5sYVtPLHXatTjrpol46xr9R4TidcB4t8axO6/ReNNR nx2@ssh.nx2.site" # NxXPS + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE5sYVtPLHXatTjrpol46xr9R4TidcB4t8axO6/ReNNR nxxps-nx2@nxace" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC/zcoYuYbamTPMOZPfsP1yQJ5Y6sDlPfBwui8MQjKWn nxnorth-nx2@nxace" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMnbJx7nVeVi5jK1Eybm+jQoopiCTslewuHFLv2yCt4f nxdcs-nx2@nxace" ]; }; }; From 685a34fcbb90de10a8368d8d5f5af2f79636d70f Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 7 Oct 2025 16:35:06 +0000 Subject: [PATCH 42/51] NxWSL -> NxDCS --- flake.lock | 62 +++++++++++++++++------------------ flake.nix | 4 +-- home-modules/fish.nix | 2 +- home-modules/git.nix | 6 ++-- home-modules/xdg.nix | 38 ++++++++++----------- nixos-wsl.nix | 3 +- system-modules/networking.nix | 2 +- 7 files changed, 58 insertions(+), 59 deletions(-) diff --git a/flake.lock b/flake.lock index 2a784f0..dc884a4 100644 --- a/flake.lock +++ b/flake.lock @@ -39,11 +39,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1759572648, - "narHash": "sha256-0f1EsUBA64FV14RuNLyo3XDLLgvY+l2X/Bro+T4+AdM=", + "lastModified": 1759705705, + "narHash": "sha256-ckBnfbxbT7VU7ay0c5jkstAZHrC4xDpEHgnQo99OdEw=", "owner": "9001", "repo": "copyparty", - "rev": "38cc80982237e862e538a31f49e8c6aae749f014", + "rev": "20ac117c3272da50ce125795d831ac55f29e766d", "type": "github" }, "original": { @@ -308,11 +308,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1759530922, - "narHash": "sha256-IKNfBuBbuofOVHJujnzBGaSydnmlMBRWl9owIZVVk9k=", + "lastModified": 1759837778, + "narHash": "sha256-K/F/ndJszKrbhhCcQEpLU3jrDSapQCprgNYJscHZYf0=", "ref": "refs/heads/main", - "rev": "76d998743ac10e712238c1016db4d8e8d16f1049", - "revCount": 6476, + "rev": "5ba2d2217b649c4ca2db7e3f383b3f6af6e70d65", + "revCount": 6484, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -340,11 +340,11 @@ ] }, "locked": { - "lastModified": 1758895089, - "narHash": "sha256-HOIITlSwB5iuVEVLmWNGu8bvI83Y2IbN8SzJQmBDwvg=", + "lastModified": 1759748449, + "narHash": "sha256-9I7KVSR7PsSaahM6CbxUyjXSRAY/4+29rFblZDqHPFE=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "4d940a10aff16b240533c9b6527a14ff91e5e5ae", + "rev": "7be897d6ae765fab756c0b7e6b91e8c5b39a419e", "type": "github" }, "original": { @@ -576,11 +576,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1759348509, - "narHash": "sha256-at9xMhxMP65JYWlGWYJ412VKbS+tXkTM3f5t9Q8IyMA=", + "lastModified": 1759833546, + "narHash": "sha256-rOfkgIiiZNPUbf61OqEym60wXEODeDG8XH+gV/SUoUc=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "d96dda76c1f1827634ddf28d386feabd2d135d21", + "rev": "7c0c0f4c3a51761434f18209fa9499b8579ff730", "type": "github" }, "original": { @@ -607,11 +607,11 @@ }, "nixpkgs-latest": { "locked": { - "lastModified": 1759574388, - "narHash": "sha256-6Vv/JfG6A6YmlsKYqF88TrisrNWacTCUDX2Ibe8n4yw=", + "lastModified": 1759851983, + "narHash": "sha256-5tYg4TRly5I8LOagO5X0dArUOht023mevqr3qlVghb0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "32fd1eea9d3114de2acff9b10e67fd0007d2c833", + "rev": "7eb8a3cd795b18e7ac26c9cba411e1f588257a62", "type": "github" }, "original": { @@ -639,11 +639,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1759381078, - "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", + "lastModified": 1759733170, + "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", + "rev": "8913c168d1c56dc49a7718685968f38752171c3b", "type": "github" }, "original": { @@ -686,11 +686,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1759036355, - "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "lastModified": 1759733170, + "narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "rev": "8913c168d1c56dc49a7718685968f38752171c3b", "type": "github" }, "original": { @@ -702,11 +702,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1759439645, - "narHash": "sha256-oiAyQaRilPk525Z5aTtTNWNzSrcdJ7IXM0/PL3CGlbI=", + "lastModified": 1759735786, + "narHash": "sha256-a0+h02lyP2KwSNrZz4wLJTu9ikujNsTWIC874Bv7IJ0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "879bd460b3d3e8571354ce172128fbcbac1ed633", + "rev": "20c4598c84a671783f741e02bf05cbfaf4907cff", "type": "github" }, "original": { @@ -846,11 +846,11 @@ ] }, "locked": { - "lastModified": 1759188042, - "narHash": "sha256-f9QC2KKiNReZDG2yyKAtDZh0rSK2Xp1wkPzKbHeQVRU=", + "lastModified": 1759635238, + "narHash": "sha256-UvzKi02LMFP74csFfwLPAZ0mrE7k6EiYaKecplyX9Qk=", "owner": "Mic92", "repo": "sops-nix", - "rev": "9fcfabe085281dd793589bdc770a2e577a3caa5d", + "rev": "6e5a38e08a2c31ae687504196a230ae00ea95133", "type": "github" }, "original": { @@ -952,11 +952,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1759502148, - "narHash": "sha256-Yncc0FlzzvsZTAtId/usUKNdJR911mpQcR+ZNjabrio=", + "lastModified": 1759765472, + "narHash": "sha256-YYfXBsw57fH6s/hXR24rv8/nr35oQl1CBH7p4WcK8RA=", "owner": "sxyazi", "repo": "yazi", - "rev": "cd6881c9fe88dfe73d91980829fd371f5eeec242", + "rev": "554cb52cc581df9a41e0778ebd448925cd3aca55", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d5c9240..e04e435 100644 --- a/flake.nix +++ b/flake.nix @@ -70,7 +70,7 @@ NxXPS = make-nixos-system "NxXPS" { enable = true; prime = true; }; NxNORTH = make-nixos-system "NxNORTH" { enable = true; prime = false; }; NxACE = make-nixos-system "NxACE" { enable = false; }; - NxWSL = make-nixos-wsl-system "NxWSL"; + NxDCS = make-nixos-wsl-system "NxDCS"; }; homeConfigurations = let @@ -93,7 +93,7 @@ "${hyper-base.user}@NxNORTH" = make-home-configuration "NxNORTH" hyper-base.user { enable = true; prime = false; }; "${hyper-base.user}@NxACE" = make-home-configuration "NxACE" hyper-base.user { enable = false; }; - "${hyper-base.user}@NxWSL" = make-shell-configuration "NxWSL" hyper-base.user; + "${hyper-base.user}@NxDCS" = make-shell-configuration "NxDCS" hyper-base.user; }; }; } diff --git a/home-modules/fish.nix b/home-modules/fish.nix index 6a4cfeb..422159e 100644 --- a/home-modules/fish.nix +++ b/home-modules/fish.nix @@ -112,7 +112,7 @@ ''; nx_backup = let destination = if hyper.host == "NxNORTH" then "${hyper.home}/shared/" else "${hyper.home}/backups/"; - in pkgs.lib.mkIf (hyper.host != "NxACE" && hyper.host != "NxWSL") '' + in pkgs.lib.mkIf (hyper.host != "NxACE" && hyper.host != "NxDCS") '' set RPATH (curl -s https://${hyper.domain}/latest-backup) rsync -avz --info=progress2 -e "ssh -p ${builtins.toString secrets.ssh.port}" ${hyper.user}@ssh.${hyper.domain}:"$RPATH" ${destination} ''; diff --git a/home-modules/git.nix b/home-modules/git.nix index 9f9b1c5..1e9d2d5 100644 --- a/home-modules/git.nix +++ b/home-modules/git.nix @@ -21,10 +21,10 @@ }; extraConfig = { credential = { - "https://git.da.dicos.de".username = lib.mkIf (hyper.host =="NxWSL") "lkurzweg"; - "https://git.da.dicos.de".password = lib.mkIf (hyper.host =="NxWSL") "Test"; + "https://git.da.dicos.de".username = lib.mkIf (hyper.host =="NxDCS") "lkurzweg"; + "https://git.da.dicos.de".password = lib.mkIf (hyper.host =="NxDCS") "Test"; }; - url."ssh://git@git.da.dicos.de/".insteadOf = lib.mkIf (hyper.host =="NxWSL") "https://git.da.dicos.de/"; + url."ssh://git@git.da.dicos.de/".insteadOf = lib.mkIf (hyper.host =="NxDCS") "https://git.da.dicos.de/"; url."ssh://git@github.com/".insteadOf = "https://github.com/"; pull.rebase = false; # true }; diff --git a/home-modules/xdg.nix b/home-modules/xdg.nix index 7286973..64ba151 100644 --- a/home-modules/xdg.nix +++ b/home-modules/xdg.nix @@ -8,25 +8,25 @@ mimeApps = { enable = true; defaultApplications = let - browser = "firefox.desktop"; - image = "imv.desktop"; - in { - "default-web-browser" = [ browser ]; - "text/html" = [ browser ]; - "text/htm" = [ browser ]; - "x-scheme-handler/http" = [ browser ]; - "x-scheme-handler/https" = [ browser ]; - "x-scheme-handler/about" = [ browser ]; - "x-scheme-handler/unknown" = [ browser ]; - "x-scheme-handler/mailto" = "thunderbird.desktop"; - "image/png" = image; - "image/jpg" = image; - "image/jpeg" = image; - "image/webp" = image; - "image/gif" = image; - "application/pdf" = "zathura.desktop"; - "inode/directory" = "thunar.desktop"; - }; + browser = "firefox.desktop"; + image = "imv.desktop"; + in { + "default-web-browser" = [ browser ]; + "text/html" = [ browser ]; + "text/htm" = [ browser ]; + "x-scheme-handler/http" = [ browser ]; + "x-scheme-handler/https" = [ browser ]; + "x-scheme-handler/about" = [ browser ]; + "x-scheme-handler/unknown" = [ browser ]; + "x-scheme-handler/mailto" = "thunderbird.desktop"; + "image/png" = image; + "image/jpg" = image; + "image/jpeg" = image; + "image/webp" = image; + "image/gif" = image; + "application/pdf" = "zathura.desktop"; + "inode/directory" = "thunar.desktop"; + }; }; }; } diff --git a/nixos-wsl.nix b/nixos-wsl.nix index a668140..c6a4ab6 100644 --- a/nixos-wsl.nix +++ b/nixos-wsl.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }@all: with all; -{ +{ pkgs, ... }@all: with all; { imports = [ inputs.nixos-wsl.nixosModules.default ./system-modules/base-packages.nix diff --git a/system-modules/networking.nix b/system-modules/networking.nix index 0b43ad8..c8afe68 100644 --- a/system-modules/networking.nix +++ b/system-modules/networking.nix @@ -1,6 +1,6 @@ { config, pkgs, ... }@all: with all; { networking = { - nameservers = pkgs.lib.mkIf (hyper.host != "NxWSL") [ # wsl manages resolv.conf + nameservers = pkgs.lib.mkIf (hyper.host != "NxDCS") [ # wsl manages resolv.conf "1.1.1.1" "8.8.8.8" ]; From 042e8c7ee7c09fda63e7687ffbf493f836bba79b Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 7 Oct 2025 16:35:42 +0000 Subject: [PATCH 43/51] further gpg-ssh edits --- home-modules/gpg.nix | 30 ++++++++++++++++++++++-------- home-modules/ssh.nix | 34 ++++++---------------------------- 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/home-modules/gpg.nix b/home-modules/gpg.nix index 127868f..11e62c9 100644 --- a/home-modules/gpg.nix +++ b/home-modules/gpg.nix @@ -1,11 +1,5 @@ -{ pkgs, ... }@all: with all; -{ - # there also is a system module - home.packages = with pkgs; [ - gpg-tui - pinentry-all - ]; - +{ pkgs, ... }@all: with all; { + home.packages = with pkgs; [ pinentry-all ]; programs.gpg = { enable = true; package = pkgs.gnupg; @@ -33,4 +27,24 @@ with-fingerprint = true; }; }; + services.gpg-agent = let + min2sec = min: (min * 60); + in { + enable = false; + verbose = true; + sshKeys = [ + "97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey + ]; + enableSshSupport = true; + enableFishIntegration = true; + defaultCacheTtlSsh = min2sec 60; + defaultCacheTtl = min2sec 30; + pinentry = { + package = pkgs.pinentry; + program = "pinentry"; + }; + extraConfig = '' + allow-loopback-pinentry + ''; + }; } diff --git a/home-modules/ssh.nix b/home-modules/ssh.nix index 9d53f31..6568481 100644 --- a/home-modules/ssh.nix +++ b/home-modules/ssh.nix @@ -1,7 +1,9 @@ { pkgs, ... }@all: with all; { + home.packages = with pkgs; [ sshfs ]; programs.ssh = { enable = true; package = pkgs.openssh; + addKeysToAgent = "yes"; matchBlocks = let nxace = name: { host = name; @@ -21,33 +23,9 @@ }; }; }; - home.packages = with pkgs; [ sshfs ]; - - services = { - ssh-agent = { - enable = true; - # socket = "ssh-agent"; # suffix to $XDG_RUNTIME_DIR - # package = pkgs.openssh; - }; - gpg-agent = let - min2sec = min: (min * 60); - in { - enable = false; - verbose = true; - sshKeys = [ - "97081264F7FD72D890D496E839AA9A4C7892A7D8" # Keygrip (not Fingerprint!) of [A] Subkey - ]; - enableSshSupport = true; - enableFishIntegration = true; - defaultCacheTtlSsh = min2sec 60; - defaultCacheTtl = min2sec 30; - pinentry = { - package = pkgs.pinentry; - program = "pinentry"; - }; - extraConfig = '' - allow-loopback-pinentry - ''; - }; + services.ssh-agent = { + enable = true; + # socket = "ssh-agent"; # suffix to $XDG_RUNTIME_DIR + # package = pkgs.openssh; }; } From 40eefbf9480109f75599b7f5bbff8ac92c63161a Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Thu, 9 Oct 2025 15:32:10 +0200 Subject: [PATCH 44/51] fix nxfetch --- home-modules/fish.nix | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/home-modules/fish.nix b/home-modules/fish.nix index 422159e..8d9602b 100644 --- a/home-modules/fish.nix +++ b/home-modules/fish.nix @@ -7,20 +7,22 @@ (writeShellScriptBin "nxfetch" /* bash */ '' logo=$(echo -e " - ⠀⠀⠀⠀⠰⣿⣧⠀⠀⠹⣿⣧⠀⣴⣿⠆⠀⠀⠀⠀ OS - ⠀⠀⠀⣀⣀⣹⣿⣧⣀⣀⠘⣿⣿⣿⠏⠀⠀⠀⠀⠀ DE/WM - ⠀⠀⠼⠿⠿⠿⠿⠿⠿⠿⠦⠘⣿⣿⡀⠀⣼⣧⠀⠀ TERM - ⠀⠀⠀⠀⢠⣶⡶⠀⠀⠀⠀⠀⠈⠿⢁⣼⣿⠋⠀⠀ SHELL - ⢾⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⡷ ISHELL - ⠀⠀⣠⣿⡟⢁⣶⡀⠀⠀⠀⠀⠀⠾⠿⠃⠀⠀⠀⠀ KERNEL - ⠀⠀⢻⡟⠀⠈⢿⣿⡄⠲⣶⣶⣶⣶⣶⣶⣶⡖⠀⠀ EDITOR - ⠀⠀⠀⠀⠀⣰⣿⣿⣿⡄⠉⠉⢻⣿⣏⠉⠉⠀⠀⠀ TFM - ⠀⠀⠀⠀⠰⣿⠟⠀⢻⣿⣆⠀⠀⠻⣿⠆⠀⠀⠀⠀ PROMPT + ⠀⠀⠀⠀⠰⣿⣧⠀⠀⠹⣿⣧⠀⣴⣿⠆⠀⠀⠀⠀ OS + ⠀⠀⠀⣀⣀⣹⣿⣧⣀⣀⠘⣿⣿⣿⠏⠀⠀⠀⠀⠀ DE/WM + ⠀⠀⠼⠿⠿⠿⠿⠿⠿⠿⠦⠘⣿⣿⡀⠀⣼⣧⠀⠀ TERM + ⠀⠀⠀⠀⢠⣶⡶⠀⠀⠀⠀⠀⠈⠿⢁⣼⣿⠋⠀⠀ SHELL + ⢾⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⡷ ISHELL + ⠀⠀⣠⣿⡟⢁⣶⡀⠀⠀⠀⠀⠀⠾⠿⠃⠀⠀⠀⠀ KERNEL + ⠀⠀⢻⡟⠀⠈⢿⣿⡄⠲⣶⣶⣶⣶⣶⣶⣶⡖⠀⠀ EDITOR + ⠀⠀⠀⠀⠀⣰⣿⣿⣿⡄⠉⠉⢻⣿⣏⠉⠉⠀⠀⠀ TFM + ⠀⠀⠀⠀⠰⣿⠟⠀⢻⣿⣆⠀⠀⠻⣿⠆⠀⠀⠀⠀ PROMPT " | lolcat --force 2> /dev/null) + release_line=$(cat /etc/*-release 2> /dev/null || echo 'PRETTY_NAME="[No Release]"') + msg=" - $(echo -e "$logo" | sed -n 3p): $(cat /etc/*-releas 2> /dev/null || echo 'PRETTY_NAME="[No Release]"' | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev) + $(echo -e "$logo" | sed -n 3p): $(echo "$release_line" | grep PRETTY_NAME | cut -c 14- | rev | cut -c 2- | rev) $(echo -e "$logo" | sed -n 4p): ''${XDG_CURRENT_DESKTOP^} $(echo -e "$logo" | sed -n 5p): ''${TERM^} $(echo -e "$logo" | sed -n 6p): $(bash --version | head --lines 1 | cut -f -4 -d' ' | sed -E 's-(.*?), version (.*?)\(.*-\1 \2-g') From 90c093fcef5a4c1676916b6f98aedd687fe5e45e Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Mon, 13 Oct 2025 14:30:34 +0200 Subject: [PATCH 45/51] reddit rice --- home-modules/firefox/userContent.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/home-modules/firefox/userContent.nix b/home-modules/firefox/userContent.nix index b7c8d50..4fa10d9 100644 --- a/home-modules/firefox/userContent.nix +++ b/home-modules/firefox/userContent.nix @@ -33,12 +33,16 @@ in /* css */ '' @-moz-document domain(reddit.com) { header { - background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important; + background-color: rgba(${f background},${builtins.toString rice.transparency}) !important; backdrop-filter: blur(${blur}px); } - body, html, .bg-neutral-background, .threadline, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar, comment-body-header, shreddit-comment-tree{ + body, html, .bg-neutral-background, .threadline, reddit-sidebar-nav, shreddit-post, aside, .reddit-search-bar, comment-body-header, shreddit-comment-tree, #flex-left-nav-container { background-color: transparent !important; } + #main-content { + background-color: rgba(${f background},0.5)!important; + } + } @-moz-document domain(reddit.com) { From 78975da97023ddc22d37724a0ef5e51987a7086b Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Mon, 13 Oct 2025 14:38:06 +0200 Subject: [PATCH 46/51] ssh * identities --- home-modules/ssh.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/home-modules/ssh.nix b/home-modules/ssh.nix index 6568481..87b4d1d 100644 --- a/home-modules/ssh.nix +++ b/home-modules/ssh.nix @@ -13,6 +13,12 @@ identityFile = "${hyper.home}/vault/ssh/nxace-nx2-${hyper.host}"; }; in { + "*" = { + identityFile = [ + "${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}" + "${hyper.home}/vault/ssh/github-noggynoggy-${hyper.host}" + ]; + }; "nxace" = nxace "nxace"; "nxacel" = (nxace "nxacel") // { hostname = "10.0.1.1"; }; "nxrpli" = (nxace "nxrpil") // { hostname = "10.0.1.31"; port = 22; }; From ba199f9568a4d0102acd695ea1ca287fe9bc6d14 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 21 Oct 2025 15:22:31 +0200 Subject: [PATCH 47/51] rust --- home-modules/programming.nix | 12 ++++++++++++ home-modules/programming/rust.nix | 11 +++++++++++ home.nix | 8 +------- 3 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 home-modules/programming.nix create mode 100644 home-modules/programming/rust.nix diff --git a/home-modules/programming.nix b/home-modules/programming.nix new file mode 100644 index 0000000..886de76 --- /dev/null +++ b/home-modules/programming.nix @@ -0,0 +1,12 @@ +{ ... }: { + imports = [ + ./programming/c.nix + ./programming/gleam.nix + ./programming/glsl.nix + ./programming/go.nix + ./programming/java.nix + ./programming/js.nix + ./programming/python.nix + ./programming/rust.nix + ]; +} diff --git a/home-modules/programming/rust.nix b/home-modules/programming/rust.nix new file mode 100644 index 0000000..d00e5dd --- /dev/null +++ b/home-modules/programming/rust.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }@all: with all; { + home = { + packages = with pkgs; [ + cargo + clippy + rustc + rustfmt + rust-analyzer + ]; + }; +} diff --git a/home.nix b/home.nix index c965d32..a35891f 100644 --- a/home.nix +++ b/home.nix @@ -42,13 +42,7 @@ ./home-modules/pkgs-list/programs.nix ./home-modules/pkgs-list/shell.nix ./home-modules/pnx.nix - ./home-modules/programming/c.nix - ./home-modules/programming/gleam.nix - ./home-modules/programming/glsl.nix - ./home-modules/programming/go.nix - ./home-modules/programming/java.nix - ./home-modules/programming/js.nix - ./home-modules/programming/python.nix + ./home-modules/programming.nix ./home-modules/qt.nix ./home-modules/rclone.nix ./home-modules/rofi.nix From 858a8b77ecfb9a797e20c885af49ed85c5a385ee Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 21 Oct 2025 15:22:55 +0200 Subject: [PATCH 48/51] tuda rust labs --- home-modules/ssh.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home-modules/ssh.nix b/home-modules/ssh.nix index 87b4d1d..5a67b59 100644 --- a/home-modules/ssh.nix +++ b/home-modules/ssh.nix @@ -17,6 +17,7 @@ identityFile = [ "${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}" "${hyper.home}/vault/ssh/github-noggynoggy-${hyper.host}" + "${hyper.home}/vault/ssh/tg-dm-informatik-tuda" ]; }; "nxace" = nxace "nxace"; From 7655e7b3bdeeb8ba8b0f619ad19e619f7dd72516 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 21 Oct 2025 15:23:12 +0200 Subject: [PATCH 49/51] helix hints --- home-modules/helix.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home-modules/helix.nix b/home-modules/helix.nix index a7fbd30..6b96360 100644 --- a/home-modules/helix.nix +++ b/home-modules/helix.nix @@ -436,8 +436,8 @@ fg = black.bright; }; "ui.virtual.inlay-hint" = { - fg = background; - bg = tertiary.dark; + fg = subtle.base; + bg = subtle.dark; }; "ui.virtual.ruler" = { bg = background; From 29a917ed373380ff4c164e189706a08bb11bf1c1 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 21 Oct 2025 15:23:22 +0200 Subject: [PATCH 50/51] worlds calendar --- home-modules/calendar.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/home-modules/calendar.nix b/home-modules/calendar.nix index 0ae3cd7..7808e18 100644 --- a/home-modules/calendar.nix +++ b/home-modules/calendar.nix @@ -47,6 +47,13 @@ read-only = true; type = "ics"; } + { + name = "Worlds"; + url = "https://zlypher.github.io/lol-events/cal/league-of-legends-world-championship.ical"; + color = "#7b99a6"; + read-only = true; + type = "ics"; + } { name = "Feiertage Hessen"; url = "https://ics.tools/Feiertage/hessen.ics"; @@ -54,13 +61,6 @@ read-only = true; type = "ics"; } - # { - # name = "Handball Männer"; - # url = "http://i.cal.to/ical/108/dhb/handball-nationalmannschaft/c687e97f.bc7c3eb6-11a0e356.ics"; - # color = "#880023"; - # read-only = true; - # type = "ics"; - # } ]; default_set = { # name = From 52fe355b0afccd939f92a32db574318f271358a9 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Tue, 21 Oct 2025 15:23:59 +0200 Subject: [PATCH 51/51] cleanup color pallete --- home-modules/color-pallete.nix | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/home-modules/color-pallete.nix b/home-modules/color-pallete.nix index 4bf0c59..30616cc 100644 --- a/home-modules/color-pallete.nix +++ b/home-modules/color-pallete.nix @@ -25,6 +25,8 @@ ''; + rgb = rice.lib.hex-to-rgb-comma-string; + s = builtins.toString; in /* html */ '' @@ -38,27 +40,26 @@ padding: 0px; } html { - background: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}); - padding: auto; + background: transparent; } body { font-family: ${rice.font.base.name}; color: ${foreground}; width: fit-content; margin: 10px auto 10px auto; - background: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}); - border: ${builtins.toString rice.border-width}px solid ${border}; - border-radius: ${builtins.toString rice.rounding}px; - padding: ${builtins.toString rice.gap-size}px; + background: rgba(${rgb background},${s rice.transparency}); + border: ${s rice.border-width}px solid ${border}; + border-radius: ${s rice.rounding}px; + padding: ${s rice.gap-size}px; } h1 { - margin: ${builtins.toString rice.gap-size}px; + margin: ${s rice.gap-size}px; } .color-container { font-family: ${rice.font.code.name}; display: flex; - gap: ${builtins.toString rice.gap-size}px; - margin: ${builtins.toString rice.gap-size}px; + gap: ${s rice.gap-size}px; + margin: ${s rice.gap-size}px; } .color-box { width: 200px; @@ -66,7 +67,7 @@ flex-direction: column; justify-content: center; align-items: center; - border-radius: ${builtins.toString rice.rounding}px; + border-radius: ${s rice.rounding}px; }