From 241ecdfcbd2cd198e471e2ad072e9f0e50356c04 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:55:28 +0100 Subject: [PATCH 01/13] feat: adds remmina to sakura --- hosts/sakura/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/sakura/default.nix b/hosts/sakura/default.nix index 0832657..3650301 100644 --- a/hosts/sakura/default.nix +++ b/hosts/sakura/default.nix @@ -29,6 +29,7 @@ in fwupd fw-ectool monero-gui + remmina ]; etc.hosts.mode = "0700"; }; From ba54c694d5b52087d3fdebfe55749b70a6139926 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:55:40 +0100 Subject: [PATCH 02/13] feat: switch to `nautilus` --- modules/home/hyprland/config.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/home/hyprland/config.nix b/modules/home/hyprland/config.nix index ee91626..c2d23a3 100644 --- a/modules/home/hyprland/config.nix +++ b/modules/home/hyprland/config.nix @@ -56,7 +56,7 @@ home.file.".cache/nwg-dock-pinned".text = '' chromium-browser - thunar + nautilus ${if (host == "sakura") then "darktable" else ""} ${if (host == "sakura") then "flstudio" else ""} ${if (host == "iris") then "steam" else ""} @@ -264,7 +264,7 @@ "$mainMod, D, exec, bemenu-run -l 5 --ignorecase" "SUPER SHIFT, L, exec, swaylock --image /home/${username}/.local/share/bg.png" "SUPER, L, exec, swaylock --image /home/${username}/.local/share/bg.png" - "$mainMod, E, exec, thunar" + "$mainMod, E, exec, nautilus" "$mainMod SHIFT, B, exec, pkill -SIGUSR1 .waybar-wrapped" "$mainMod, C,exec, hyprpicker -a" "$mainMod, W,exec, wallpaper-picker" From 066aea0a32bd72f25fc52814d68d2bee51563487 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:55:44 +0100 Subject: [PATCH 03/13] feat: adds `hypridle` --- modules/home/hyprland/hyprland.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home/hyprland/hyprland.nix b/modules/home/hyprland/hyprland.nix index 75c10ad..e215b35 100644 --- a/modules/home/hyprland/hyprland.nix +++ b/modules/home/hyprland/hyprland.nix @@ -12,6 +12,7 @@ direnv nwg-dock-hyprland hyprland-monitor-attached + hypridle ]; # systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ]; wayland.windowManager.hyprland = { From 0915c136bbb6b5b9aaa497452dff70838caf6e46 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:55:52 +0100 Subject: [PATCH 04/13] feat: adds `qbittorrent` --- modules/home/packages.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home/packages.nix b/modules/home/packages.nix index 7fe86cd..fa19aea 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -30,6 +30,7 @@ gnumake python3 nautilus + qbittorrent # CLI shit bitwarden-cli From 58aa4daf9aaf50358885b7579ee428f34d3d3df1 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:56:42 +0100 Subject: [PATCH 05/13] feat: customizes `qutebrowser` a little more (adds mpv, --t for undo, makes scrolling smoother, adds x for close) --- modules/home/qutebrowser.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/home/qutebrowser.nix b/modules/home/qutebrowser.nix index 2fc880f..543becb 100644 --- a/modules/home/qutebrowser.nix +++ b/modules/home/qutebrowser.nix @@ -34,6 +34,16 @@ in programs.qutebrowser = { enable = true; + keyBindings = { + normal = { + "d" = "scroll-page 0 0.5"; + "u" = "scroll-page 0 -0.5"; + "x" = "tab-close -o"; + "" = "undo"; + ",v" = "spawn mpv {url}"; + }; + }; + settings = { fonts = { default_family = "GohuFont 14 Nerd Font Mono"; From 487dbc3a8dd40796e545d0b5b61825a0fb4e9c05 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:56:48 +0100 Subject: [PATCH 06/13] feat: updates minisign for oisd --- modules/security/dnscrypt.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/security/dnscrypt.nix b/modules/security/dnscrypt.nix index 3541520..a14d80d 100644 --- a/modules/security/dnscrypt.nix +++ b/modules/security/dnscrypt.nix @@ -25,7 +25,7 @@ in "https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md" "https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md" ]; - minisign_key = "sha256-QIpM9e7dye+EDO9rvlhSbDVLtmcgw8aLtg0DncPHK2s="; # See https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/public-resolvers.md + minisign_key = "sha256-fgfgm5GHDqq/RIRF8M1j6H3OZ/r1DVPgwMvwikdauNI="; # See https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/public-resolvers.md cache_file = "/var/lib/dnscrypt/public-resolvers.md"; }; From 804f6b6ea226d1ad22c5fc209b61f3863fe2b04a Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:57:07 +0100 Subject: [PATCH 07/13] feat: makes obs-studio work with virtual camera for signal calls --- roles/creative.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/roles/creative.nix b/roles/creative.nix index 37a9200..cb2762d 100644 --- a/roles/creative.nix +++ b/roles/creative.nix @@ -16,13 +16,28 @@ in }; config = mkIf cfg.enable { + programs.obs-studio = { + enable = true; + enableVirtualCamera = true; + }; + environment.systemPackages = [ + (pkgs.wrapOBS { + plugins = with pkgs.obs-studio-plugins; [ + wlrobs + obs-backgroundremoval + obs-pipewire-audio-capture + obs-vaapi # optional AMD hardware acceleration + obs-gstreamer + obs-vkcapture + ]; + }) + ]; home-manager = { users.${username} = { home.packages = with pkgs; [ gimp darktable audacity - obs-studio kdePackages.kdenlive orca-slicer freecad From 9dce0a712ef2cd04c92f20deca8fb171caa4be19 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:57:25 +0100 Subject: [PATCH 08/13] feat: `thunar` -> `nautilus` --- roles/gui.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/gui.nix b/roles/gui.nix index 9c44843..bf34e9a 100644 --- a/roles/gui.nix +++ b/roles/gui.nix @@ -76,7 +76,8 @@ in nsxiv imv libreoffice - xfce.thunar + #xfce.thunar + nautilus # spotify spotify-player thunderbird From 6baac4016302a92ce54f5a4e7dcfe57d1bb1738b Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 17:57:34 +0100 Subject: [PATCH 09/13] flake: update (oisd) --- flake.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.lock b/flake.lock index 10beeda..4a6c96d 100644 --- a/flake.lock +++ b/flake.lock @@ -913,7 +913,7 @@ "oisd": { "flake": false, "locked": { - "narHash": "sha256-QIpM9e7dye+EDO9rvlhSbDVLtmcgw8aLtg0DncPHK2s=", + "narHash": "sha256-fgfgm5GHDqq/RIRF8M1j6H3OZ/r1DVPgwMvwikdauNI=", "type": "file", "url": "https://big.oisd.nl/domainswild" }, From 8ad3fa03b0a82ea6c5f5f7115b69d62660724c10 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 20:13:07 +0100 Subject: [PATCH 10/13] feat: adds `caffeine` script --- modules/home/scripts/scripts.nix | 2 ++ modules/home/scripts/scripts/caffeine | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100755 modules/home/scripts/scripts/caffeine diff --git a/modules/home/scripts/scripts.nix b/modules/home/scripts/scripts.nix index 3ca810e..3767e57 100644 --- a/modules/home/scripts/scripts.nix +++ b/modules/home/scripts/scripts.nix @@ -15,6 +15,7 @@ let dock-on-all-monitors = pkgs.writeScriptBin "dock-on-all-monitors" ( builtins.readFile ./scripts/dock-on-all-monitors.sh ); + caffeine = pkgs.writeScriptBin "caffeine" (builtins.readFile ./scripts/caffeine); in { home.packages = with pkgs; [ @@ -29,5 +30,6 @@ in toggle_oppacity ascii dock-on-all-monitors + caffeine ]; } diff --git a/modules/home/scripts/scripts/caffeine b/modules/home/scripts/scripts/caffeine new file mode 100755 index 0000000..0bc1bd3 --- /dev/null +++ b/modules/home/scripts/scripts/caffeine @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +CAFFEINE_FILE="$HOME/.config/hypr/caffeine_mode" + +if [ -f "$CAFFEINE_FILE" ]; then + rm "$CAFFEINE_FILE" + notify-send "Caffeine" "Disabled" +else + touch "$CAFFEINE_FILE" + notify-send "Caffeine" "Enabled" +fi From 5651c9f2764b4d3265c4c5e04466f1b33d503304 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 20:13:34 +0100 Subject: [PATCH 11/13] feat: adds more bluetooth devices; removes icons from privacy module --- modules/home/waybar/scripts.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/home/waybar/scripts.nix b/modules/home/waybar/scripts.nix index 7db02b1..c3723c0 100644 --- a/modules/home/waybar/scripts.nix +++ b/modules/home/waybar/scripts.nix @@ -97,8 +97,10 @@ in #!/usr/bin/env zsh typeset -A known=( - 'headphones' '38:18:4C:D1:AE:48' + 'ch700n' '38:18:4C:D1:AE:48' 'airpods' '2C:18:09:EF:BD:11' + 'headphones' '38:18:4C:D4:B7:B4' + 'trackpad' '38:18:4C:D4:B7:B4' ) function get_addr_or_fail () { @@ -194,18 +196,18 @@ in if [[ "$(echo $MICROPHONE_STATE | grep 'Microphone: Connected')" ]]; then MIC=1 - MTEXT="󰍬 - available!" + MTEXT="microphone: available!" else MIC=0 - MTEXT=" " + MTEXT="" fi if [[ "$(echo $CAMERA_STATE | grep 'Camera: Connected')" ]]; then CAM=1 - CTEXT="󰄀 - available!" + CTEXT="camera: available!" else CAM=0 - CTEXT="󰗟 " + CTEXT="" fi echo "$CTEXT $MTEXT" From 3bf723fc467d5e9e628f22f409add698d3b28e63 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 20:16:42 +0100 Subject: [PATCH 12/13] feat: make `music` part only update when `rmpc` sends a signal to `waybar` --- modules/home/waybar/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/home/waybar/default.nix b/modules/home/waybar/default.nix index dec5655..6f2bfbf 100644 --- a/modules/home/waybar/default.nix +++ b/modules/home/waybar/default.nix @@ -109,11 +109,12 @@ }, "custom/music": { - "interval": 5, + "interval": "once", "return-type": "json", "exec": "~/.local/bin/waybar-music", "on-click": "playerctl play-pause", - "escape": true + "escape": true, + "signal": 2 }, "custom/devices": { From 273d6e920712cddca48e44deb3d8497290f3a3fc Mon Sep 17 00:00:00 2001 From: Ahwx Date: Fri, 26 Dec 2025 20:17:00 +0100 Subject: [PATCH 13/13] feat: work with newly-made `caffeine` package --- modules/home/hyprland/config.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/home/hyprland/config.nix b/modules/home/hyprland/config.nix index c2d23a3..e683cd2 100644 --- a/modules/home/hyprland/config.nix +++ b/modules/home/hyprland/config.nix @@ -79,13 +79,13 @@ } listener { - timeout = 165 # in seconds - on-timeout = pgrep hyprlock || hyprlock + timeout = 300 # 5m in seconds + on-timeout = if [ -f "$HOME/.config/hypr/caffeine_mode" ]; then exit 0; else pgrep hyprlock || hyprlock; fi } listener { - timeout = 1800 # in seconds - on-timeout = systemctl suspend; hyprlock + timeout = 1800 # 30m in seconds + on-timeout = if [ -f "$HOME/.config/hypr/caffeine_mode" ]; then exit 0; else systemctl suspend; hyprlock; fi } '';