From 377e36e15722681e65144fedd1da443adf484594 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 14 Feb 2026 10:48:34 -0800 Subject: [PATCH 01/14] Remove deprecated option --- homes/x86_64-linux/alejandro@git/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/homes/x86_64-linux/alejandro@git/default.nix b/homes/x86_64-linux/alejandro@git/default.nix index 4bb54e0..0cf5664 100644 --- a/homes/x86_64-linux/alejandro@git/default.nix +++ b/homes/x86_64-linux/alejandro@git/default.nix @@ -12,6 +12,5 @@ nix.gc = { automatic = true; options = "-d"; - frequency = "03:15"; }; } From 7ba479675887b791e206106eca27b7063e0e708e Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Wed, 18 Feb 2026 19:53:16 -0800 Subject: [PATCH 02/14] Enable zathura --- homes/x86_64-linux/alejandro@carbon/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/homes/x86_64-linux/alejandro@carbon/default.nix b/homes/x86_64-linux/alejandro@carbon/default.nix index 2f502d4..91972ed 100644 --- a/homes/x86_64-linux/alejandro@carbon/default.nix +++ b/homes/x86_64-linux/alejandro@carbon/default.nix @@ -31,4 +31,7 @@ in ", switch:off:Lid Switch, exec, ${clamshell_script}/bin/clamshell open" ", switch:on:Lid Switch, exec, ${clamshell_script}/bin/clamshell close" ]; + + catppuccin.zathura.enable = true; + programs.zathura.enable = true; } From 259c75204d29d82ef0c9697c07d14c324f64591b Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 21 Feb 2026 08:07:34 -0800 Subject: [PATCH 03/14] Add ability to inhibit sleep when plugged in --- .../x86_64-linux/alejandro@carbon/default.nix | 2 +- modules/home/services/hypridle/default.nix | 26 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/homes/x86_64-linux/alejandro@carbon/default.nix b/homes/x86_64-linux/alejandro@carbon/default.nix index 91972ed..1356707 100644 --- a/homes/x86_64-linux/alejandro@carbon/default.nix +++ b/homes/x86_64-linux/alejandro@carbon/default.nix @@ -4,7 +4,6 @@ let internal_display_settings = "eDP-1,preferred,auto,1.6"; clamshell_script = pkgs.writeShellScriptBin "clamshell" '' if ${pkgs.hyprland}/bin/hyprctl monitors | ${pkgs.ripgrep}/bin/rg -q '\sDP-'; then - echo "Detected external monitor..." if [[ "$1" == "open" ]]; then ${pkgs.hyprland}/bin/hyprctl keyword monitor ${internal_display_settings} else @@ -25,6 +24,7 @@ in ",preferred,auto,1" ]; }; + aa.services.hypridle.suspendInhibitWhenPluggedIn = true; aa.windowManagers.sway.enable = lib.mkForce false; wayland.windowManager.hyprland.settings.bindl = [ diff --git a/modules/home/services/hypridle/default.nix b/modules/home/services/hypridle/default.nix index 50e792d..6e7dfe9 100644 --- a/modules/home/services/hypridle/default.nix +++ b/modules/home/services/hypridle/default.nix @@ -14,6 +14,18 @@ let ; cfg = config.${namespace}.services.hypridle; + + # Script that suspends only when on battery power. + # When plugged in, uses systemd-inhibit to block suspend. + suspendScript = pkgs.writeShellScript "hypridle-suspend" '' + if [ "$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/AC/online)" = "1" ]; then + # Plugged in - inhibit suspend + ${pkgs.systemd}/bin/systemd-inhibit --what=sleep --who=hypridle --why="AC power connected" --mode=block ${pkgs.coreutils}/bin/sleep infinity & + else + # On battery - suspend + ${pkgs.systemd}/bin/systemctl suspend + fi + ''; in { options.${namespace}.services.hypridle = { @@ -49,6 +61,14 @@ in Whether or not to automatically suspend ''; }; + suspendInhibitWhenPluggedIn = mkOption { + type = types.bool; + default = false; + description = '' + Whether to inhibit suspend when AC power is connected. + Useful for laptops that should only suspend on battery. + ''; + }; brightnessTimeout = mkOption { type = types.int; @@ -108,7 +128,11 @@ in # Suspend system (lib.mkIf cfg.suspendEnable { timeout = cfg.suspendTimeout; - on-timeout = "systemctl suspend"; + on-timeout = + if cfg.suspendInhibitWhenPluggedIn then + "${suspendScript}" + else + "${pkgs.systemd}/bin/systemctl suspend"; }) ]; }; From 3edb2674145e805466b69793f7e71ed4fb6cc643 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 21:25:59 -0800 Subject: [PATCH 04/14] Ran nixfmt-tree --- modules/home/apps/tmux/default.nix | 69 +++++++------ .../nixos/services/adguardhome/default.nix | 17 ++-- modules/nixos/services/grafana/default.nix | 21 ++-- modules/nixos/services/minio/default.nix | 97 +++++++++---------- modules/nixos/services/nix-serve/default.nix | 27 +++--- modules/nixos/services/octoprint/default.nix | 25 +++-- modules/nixos/services/sunshine/default.nix | 31 +++--- modules/nixos/services/teslamate/default.nix | 23 +++-- modules/nixos/user/default.nix | 3 +- 9 files changed, 153 insertions(+), 160 deletions(-) diff --git a/modules/home/apps/tmux/default.nix b/modules/home/apps/tmux/default.nix index 63120c4..3cef1f2 100644 --- a/modules/home/apps/tmux/default.nix +++ b/modules/home/apps/tmux/default.nix @@ -75,44 +75,43 @@ in tmuxPlugins.vim-tmux-navigator ]; - extraConfig = - '' - # Scrolling with mouse wheel scrolls output instead of previous commands - setw -g mouse on + extraConfig = '' + # Scrolling with mouse wheel scrolls output instead of previous commands + setw -g mouse on - # Open panes in the same directory - bind c new-window -c "#{pane_current_path}" - bind '"' split-window -c "#{pane_current_path}" - bind % split-window -h -c "#{pane_current_path}" + # Open panes in the same directory + bind c new-window -c "#{pane_current_path}" + bind '"' split-window -c "#{pane_current_path}" + bind % split-window -h -c "#{pane_current_path}" - # sessionizer - bind C-o display-popup -E "${pkgs.tmux-sessionizer}/bin/tms" - bind C-j display-popup -E "${pkgs.tmux-sessionizer}/bin/tms switch" - bind C-w display-popup -E "${pkgs.tmux-sessionizer}/bin/tms windows" - bind C-s command-prompt -p "Rename active session to:" "run-shell '${pkgs.tmux-sessionizer}/bin/tms rename %1'" + # sessionizer + bind C-o display-popup -E "${pkgs.tmux-sessionizer}/bin/tms" + bind C-j display-popup -E "${pkgs.tmux-sessionizer}/bin/tms switch" + bind C-w display-popup -E "${pkgs.tmux-sessionizer}/bin/tms windows" + bind C-s command-prompt -p "Rename active session to:" "run-shell '${pkgs.tmux-sessionizer}/bin/tms rename %1'" - '' - + lib.strings.optionalString config.programs.lazygit.enable '' - # Open lazygit in a popup - # Spins up a new session with a '-lg' suffix (hitting the shortcut - # toggles between attaching and detaching) - bind C-g if-shell "[[ $(tmux display-message -p '#S') == *-lg ]]" { - detach-client - } { - display-popup -h 90% -w 90% -E "tmux new-session -A -s $(tmux display-message -p '#S')-lg ${pkgs.lazygit}/bin/lazygit" - } - '' - + lib.strings.optionalString config.programs.btop.enable '' - # Open btop in a popup - # Spins up a new session named `btop` (hitting the shortcut - # toggles between attaching and detaching) - # NOTE: This overrides the default C-t shortcut (shows time by default) - bind C-t if-shell "[[ $(tmux display-message -p '#S') == btop ]]" { - detach-client - } { - display-popup -h 90% -w 90% -E "tmux new-session -A -s btop ${pkgs.btop}/bin/btop" - } - ''; + '' + + lib.strings.optionalString config.programs.lazygit.enable '' + # Open lazygit in a popup + # Spins up a new session with a '-lg' suffix (hitting the shortcut + # toggles between attaching and detaching) + bind C-g if-shell "[[ $(tmux display-message -p '#S') == *-lg ]]" { + detach-client + } { + display-popup -h 90% -w 90% -E "tmux new-session -A -s $(tmux display-message -p '#S')-lg ${pkgs.lazygit}/bin/lazygit" + } + '' + + lib.strings.optionalString config.programs.btop.enable '' + # Open btop in a popup + # Spins up a new session named `btop` (hitting the shortcut + # toggles between attaching and detaching) + # NOTE: This overrides the default C-t shortcut (shows time by default) + bind C-t if-shell "[[ $(tmux display-message -p '#S') == btop ]]" { + detach-client + } { + display-popup -h 90% -w 90% -E "tmux new-session -A -s btop ${pkgs.btop}/bin/btop" + } + ''; }; xdg.configFile."tms/config.toml".source = (pkgs.formats.toml { }).generate "tms-config" tmsConfig; diff --git a/modules/nixos/services/adguardhome/default.nix b/modules/nixos/services/adguardhome/default.nix index 00c369c..1f1f778 100644 --- a/modules/nixos/services/adguardhome/default.nix +++ b/modules/nixos/services/adguardhome/default.nix @@ -38,16 +38,15 @@ in services.nginx = { enable = true; recommendedProxySettings = true; - virtualHosts."adguardhome.kilonull.com" = - { - locations."/" = { - proxyPass = "http://127.0.0.1:3000"; - }; - } - // lib.optionalAttrs (cfg.acmeCertName != "") { - forceSSL = true; - useACMEHost = cfg.acmeCertName; + virtualHosts."adguardhome.kilonull.com" = { + locations."/" = { + proxyPass = "http://127.0.0.1:3000"; }; + } + // lib.optionalAttrs (cfg.acmeCertName != "") { + forceSSL = true; + useACMEHost = cfg.acmeCertName; + }; }; networking.firewall = { diff --git a/modules/nixos/services/grafana/default.nix b/modules/nixos/services/grafana/default.nix index 1a83bc2..1841cd7 100644 --- a/modules/nixos/services/grafana/default.nix +++ b/modules/nixos/services/grafana/default.nix @@ -113,18 +113,17 @@ in services.nginx = { enable = true; - virtualHosts."${server_settings.domain}" = - { - locations."/" = { - proxyPass = "http://${server_settings.http_addr}:${toString server_settings.http_port}"; - proxyWebsockets = true; - recommendedProxySettings = true; - }; - } - // lib.optionalAttrs (cfg.acmeCertName != "") { - forceSSL = true; - useACMEHost = cfg.acmeCertName; + virtualHosts."${server_settings.domain}" = { + locations."/" = { + proxyPass = "http://${server_settings.http_addr}:${toString server_settings.http_port}"; + proxyWebsockets = true; + recommendedProxySettings = true; }; + } + // lib.optionalAttrs (cfg.acmeCertName != "") { + forceSSL = true; + useACMEHost = cfg.acmeCertName; + }; }; networking.firewall = { diff --git a/modules/nixos/services/minio/default.nix b/modules/nixos/services/minio/default.nix index 074396c..a998f4b 100644 --- a/modules/nixos/services/minio/default.nix +++ b/modules/nixos/services/minio/default.nix @@ -33,63 +33,62 @@ in services.nginx = { enable = true; virtualHosts = { - "minio.kilonull.com" = - { - extraConfig = '' - # Allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # Disable buffering - proxy_buffering off; - proxy_request_buffering off; - ''; + "minio.kilonull.com" = { + extraConfig = '' + # Allow special characters in headers + ignore_invalid_headers off; + # Allow any size file to be uploaded. + # Set to a value such as 1000m; to restrict file size to a specific value + client_max_body_size 0; + # Disable buffering + proxy_buffering off; + proxy_request_buffering off; + ''; - locations."/".extraConfig = '' - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; + locations."/".extraConfig = '' + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; - proxy_connect_timeout 300; - # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 - proxy_http_version 1.1; - proxy_set_header Connection ""; - chunked_transfer_encoding off; + proxy_connect_timeout 300; + # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 + proxy_http_version 1.1; + proxy_set_header Connection ""; + chunked_transfer_encoding off; - proxy_pass http://localhost:9000; - ''; - locations."/ui".extraConfig = '' - rewrite ^/ui/(.*) /$1 break; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-NginX-Proxy true; + proxy_pass http://localhost:9000; + ''; + locations."/ui".extraConfig = '' + rewrite ^/ui/(.*) /$1 break; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-NginX-Proxy true; - # This is necessary to pass the correct IP to be hashed - real_ip_header X-Real-IP; + # This is necessary to pass the correct IP to be hashed + real_ip_header X-Real-IP; - proxy_connect_timeout 300; + proxy_connect_timeout 300; - # To support websockets in MinIO versions released after January 2023 - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - # Some environments may encounter CORS errors (Kubernetes + Nginx Ingress) - # Uncomment the following line to set the Origin request to an empty string - proxy_set_header Origin ""; + # To support websockets in MinIO versions released after January 2023 + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + # Some environments may encounter CORS errors (Kubernetes + Nginx Ingress) + # Uncomment the following line to set the Origin request to an empty string + proxy_set_header Origin ""; - chunked_transfer_encoding off; + chunked_transfer_encoding off; - proxy_pass http://localhost:9001; - ''; - } - // lib.optionalAttrs (cfg.acmeCertName != "") { - forceSSL = true; - useACMEHost = cfg.acmeCertName; - }; + proxy_pass http://localhost:9001; + ''; + } + // lib.optionalAttrs (cfg.acmeCertName != "") { + forceSSL = true; + useACMEHost = cfg.acmeCertName; + }; }; }; }; diff --git a/modules/nixos/services/nix-serve/default.nix b/modules/nixos/services/nix-serve/default.nix index 80f0dce..3e3b61d 100644 --- a/modules/nixos/services/nix-serve/default.nix +++ b/modules/nixos/services/nix-serve/default.nix @@ -45,20 +45,19 @@ in nginx = { enable = true; - virtualHosts."${cfg.subdomain_name}.${cfg.domain_name}" = - { - serverAliases = [ "${cfg.subdomain_name}" ]; - locations."/".extraConfig = '' - proxy_pass http://localhost:${toString config.services.nix-serve.port}; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - ''; - } - // lib.optionalAttrs (cfg.acmeCertName != "") { - forceSSL = true; - useACMEHost = cfg.acmeCertName; - }; + virtualHosts."${cfg.subdomain_name}.${cfg.domain_name}" = { + serverAliases = [ "${cfg.subdomain_name}" ]; + locations."/".extraConfig = '' + proxy_pass http://localhost:${toString config.services.nix-serve.port}; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + ''; + } + // lib.optionalAttrs (cfg.acmeCertName != "") { + forceSSL = true; + useACMEHost = cfg.acmeCertName; + }; }; }; diff --git a/modules/nixos/services/octoprint/default.nix b/modules/nixos/services/octoprint/default.nix index 35cde36..451cfd9 100644 --- a/modules/nixos/services/octoprint/default.nix +++ b/modules/nixos/services/octoprint/default.nix @@ -25,20 +25,19 @@ in services.nginx = { enable = true; recommendedProxySettings = true; - virtualHosts."octoprint.kilonull.com" = - { - locations."/" = { - proxyPass = "http://127.0.0.1:${toString config.services.octoprint.port}"; - proxyWebsockets = true; - extraConfig = '' - client_max_body_size 512m; - ''; - }; - } - // lib.optionalAttrs (cfg.acmeCertName != "") { - forceSSL = true; - useACMEHost = cfg.acmeCertName; + virtualHosts."octoprint.kilonull.com" = { + locations."/" = { + proxyPass = "http://127.0.0.1:${toString config.services.octoprint.port}"; + proxyWebsockets = true; + extraConfig = '' + client_max_body_size 512m; + ''; }; + } + // lib.optionalAttrs (cfg.acmeCertName != "") { + forceSSL = true; + useACMEHost = cfg.acmeCertName; + }; }; networking.firewall.allowedTCPPorts = [ diff --git a/modules/nixos/services/sunshine/default.nix b/modules/nixos/services/sunshine/default.nix index 3d73849..db6afc4 100644 --- a/modules/nixos/services/sunshine/default.nix +++ b/modules/nixos/services/sunshine/default.nix @@ -30,23 +30,22 @@ in services.nginx = { enable = true; - virtualHosts."sunshine.kilonull.com" = - { - locations."/" = { - recommendedProxySettings = true; - # NOTE: Sunshine is a little weird since it requires multiple - # ports. You configure it with a base port and the web UI +1 from - # the base port. - proxyPass = "https://127.0.0.1:${toString (config.services.sunshine.settings.port + 1)}"; - extraConfig = '' - proxy_ssl_verify off; - ''; - }; - } - // lib.optionalAttrs (cfg.acmeCertName != "") { - forceSSL = true; - useACMEHost = cfg.acmeCertName; + virtualHosts."sunshine.kilonull.com" = { + locations."/" = { + recommendedProxySettings = true; + # NOTE: Sunshine is a little weird since it requires multiple + # ports. You configure it with a base port and the web UI +1 from + # the base port. + proxyPass = "https://127.0.0.1:${toString (config.services.sunshine.settings.port + 1)}"; + extraConfig = '' + proxy_ssl_verify off; + ''; }; + } + // lib.optionalAttrs (cfg.acmeCertName != "") { + forceSSL = true; + useACMEHost = cfg.acmeCertName; + }; }; }; } diff --git a/modules/nixos/services/teslamate/default.nix b/modules/nixos/services/teslamate/default.nix index 4c35ff4..cb0c188 100644 --- a/modules/nixos/services/teslamate/default.nix +++ b/modules/nixos/services/teslamate/default.nix @@ -147,19 +147,18 @@ in services.nginx = { enable = true; - virtualHosts."teslamate.kilonull.com" = - { - locations."/" = { - recommendedProxySettings = true; - proxyWebsockets = true; - # TODO: Make port configurable. - proxyPass = "http://127.0.0.1:4000"; - }; - } - // lib.optionalAttrs (cfg.acmeCertName != "") { - forceSSL = true; - useACMEHost = cfg.acmeCertName; + virtualHosts."teslamate.kilonull.com" = { + locations."/" = { + recommendedProxySettings = true; + proxyWebsockets = true; + # TODO: Make port configurable. + proxyPass = "http://127.0.0.1:4000"; }; + } + // lib.optionalAttrs (cfg.acmeCertName != "") { + forceSSL = true; + useACMEHost = cfg.acmeCertName; + }; }; networking.firewall.allowedTCPPorts = [ 4000 ]; diff --git a/modules/nixos/user/default.nix b/modules/nixos/user/default.nix index 67bea25..7810ec5 100644 --- a/modules/nixos/user/default.nix +++ b/modules/nixos/user/default.nix @@ -58,6 +58,7 @@ in shell = pkgs.zsh; extraGroups = [ "wheel" ] ++ cfg.extraGroups; - } // cfg.extraOptions; + } + // cfg.extraOptions; }; } From 90b3ee1edae7dea4f38b122a406743da34ffaf2d Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 21:26:50 -0800 Subject: [PATCH 05/14] Add yazi popup --- modules/home/apps/tmux/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/home/apps/tmux/default.nix b/modules/home/apps/tmux/default.nix index 3cef1f2..130250e 100644 --- a/modules/home/apps/tmux/default.nix +++ b/modules/home/apps/tmux/default.nix @@ -111,6 +111,16 @@ in } { display-popup -h 90% -w 90% -E "tmux new-session -A -s btop ${pkgs.btop}/bin/btop" } + '' + + lib.strings.optionalString config.programs.yazi.enable '' + # Open yazi in a popup + # Spins up a new session with a '-yazi' suffix (hitting the shortcut + # toggles between attaching and detaching) + bind C-g if-shell "[[ $(tmux display-message -p '#S') == *-yazi ]]" { + detach-client + } { + display-popup -h 90% -w 90% -E "tmux new-session -A -s $(tmux display-message -p '#S')-yazi ${pkgs.yazi}/bin/yazi" + } ''; }; From 0819294a35d0f6775ba625984350e1d6a7a1d805 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 21:38:14 -0800 Subject: [PATCH 06/14] Disable hydra --- systems/x86_64-linux/gospel/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/systems/x86_64-linux/gospel/default.nix b/systems/x86_64-linux/gospel/default.nix index 40a1475..58e570e 100644 --- a/systems/x86_64-linux/gospel/default.nix +++ b/systems/x86_64-linux/gospel/default.nix @@ -47,7 +47,8 @@ services.prometheus.enable = true; services.promtail.enable = true; services.hydra = { - enable = true; + # Intentionally disabled for now + enable = false; acmeCertName = "kilonull.com"; secretKeyPath = "/var/gospelCache"; s3Bucket = "nix-store"; From a6fdf61cea522b7a2fc97f67c95269f8c7484067 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 22:05:51 -0800 Subject: [PATCH 07/14] Fix typo --- .forgejo/workflows/build_nixos_configs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build_nixos_configs.yml b/.forgejo/workflows/build_nixos_configs.yml index 650718e..93523e9 100644 --- a/.forgejo/workflows/build_nixos_configs.yml +++ b/.forgejo/workflows/build_nixos_configs.yml @@ -1,4 +1,4 @@ -name: Buill NixOS Configurations +name: Build NixOS Configurations on: [push] jobs: From d12fc5d944af0544ea964d63e5d58c451cbc7dee Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 22:10:27 -0800 Subject: [PATCH 08/14] Add runner settings to get nix builds working Committing this late (was already in use by system) --- systems/x86_64-linux/gospel/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/systems/x86_64-linux/gospel/default.nix b/systems/x86_64-linux/gospel/default.nix index 58e570e..4422494 100644 --- a/systems/x86_64-linux/gospel/default.nix +++ b/systems/x86_64-linux/gospel/default.nix @@ -112,6 +112,15 @@ "ubuntu-20.04:docker://node:16-bullseye" "ubuntu-18.04:docker://node:16-buster" ]; + settings.container = { + options = '' + ; + -e PATH=:${pkgs.nix}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + -e NIX_PATH=nixpkgs=flake:nixpkgs:/nix/var/nix/profiles/per-user/root/channels + -e NIX_REMOTE=daemon + ''; + valid_volumes = [ "/nix" ]; + }; }; }; }; From 16b77fee0a97b10b7d44082ce03ae266caf5f741 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 22:26:07 -0800 Subject: [PATCH 09/14] Update lockfile --- flake.lock | 56 +++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/flake.lock b/flake.lock index 0f4d688..11ba4d8 100644 --- a/flake.lock +++ b/flake.lock @@ -63,11 +63,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1770551880, - "narHash": "sha256-+cS5yXWsSLiK36+PP/+dcQdxpXSclx2d65p7l6Dis+A=", + "lastModified": 1772153824, + "narHash": "sha256-T65qXmlcD9qFpPTi+mOXsn4dIkO2N8Ls67nqmuzepv0=", "owner": "catppuccin", "repo": "nix", - "rev": "db4dfe3f2a80e9c33492d839accd49f75c7324c2", + "rev": "4b0f5b7bf7b3eeb484d49524f3c9791864ab9362", "type": "github" }, "original": { @@ -132,11 +132,11 @@ ] }, "locked": { - "lastModified": 1770744655, - "narHash": "sha256-n8U5fggqvdAUJ6Ydd7uEG1aEsZBuRgUJnA++dtsmpYQ=", + "lastModified": 1772320113, + "narHash": "sha256-F/yM6SAAtCkG4NVOWap70CcAiPP+EIR5rb2zI3XlHDw=", "owner": "cachix", "repo": "devenv", - "rev": "d8bd7b74d0604227220074ac0bc934c4efb2b8fb", + "rev": "65c59037d2dba83876ec9da8d22584d604553f16", "type": "github" }, "original": { @@ -361,11 +361,11 @@ ] }, "locked": { - "lastModified": 1770779995, - "narHash": "sha256-Evbc+u49wYQ5uyEi/HHxVFEt3g/w4MZxkMXMe7McjRM=", + "lastModified": 1772330611, + "narHash": "sha256-UZjPc/d5XRxvjDbk4veAO4XFdvx6BUum2l40V688Xq8=", "owner": "nix-community", "repo": "home-manager", - "rev": "b3f43db171474132528be57610bfa5fb3b766879", + "rev": "58fd7ff0eec2cda43e705c4c0585729ec471d400", "type": "github" }, "original": { @@ -401,11 +401,11 @@ ] }, "locked": { - "lastModified": 1770395975, - "narHash": "sha256-zg0AEZn8d4rqIIsw5XrkVL5p1y6fBj2L57awfUg+gNA=", + "lastModified": 1771532737, + "narHash": "sha256-H26FQmOyvIGnedfAioparJQD8Oe+/byD6OpUpnI/hkE=", "owner": "cachix", "repo": "nix", - "rev": "ccb6019ce2bd11f5de5fe4617c0079d8cb1ed057", + "rev": "7eb6c427c7a86fdc3ebf9e6cbf2a84e80e8974fd", "type": "github" }, "original": { @@ -480,11 +480,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1770631810, - "narHash": "sha256-b7iK/x+zOXbjhRqa+XBlYla4zFvPZyU5Ln2HJkiSnzc=", + "lastModified": 1771969195, + "narHash": "sha256-qwcDBtrRvJbrrnv1lf/pREQi8t2hWZxVAyeMo7/E9sw=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "2889685785848de940375bf7fea5e7c5a3c8d502", + "rev": "41c6b421bdc301b2624486e11905c9af7b8ec68e", "type": "github" }, "original": { @@ -496,11 +496,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1770197578, - "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=", + "lastModified": 1771848320, + "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "rev": "2fc6539b481e1d2569f25f8799236694180c0993", "type": "github" }, "original": { @@ -527,11 +527,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1770617025, - "narHash": "sha256-1jZvgZoAagZZB6NwGRv2T2ezPy+X6EFDsJm+YSlsvEs=", + "lastModified": 1772047000, + "narHash": "sha256-7DaQVv4R97cii/Qdfy4tmDZMB2xxtyIvNGSwXBBhSmo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2db38e08fdadcc0ce3232f7279bab59a15b94482", + "rev": "1267bb4920d0fc06ea916734c11b0bf004bbe17e", "type": "github" }, "original": { @@ -559,11 +559,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1770562336, - "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", + "lastModified": 1772198003, + "narHash": "sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", + "rev": "dd9b079222d43e1943b6ebd802f04fd959dc8e61", "type": "github" }, "original": { @@ -612,11 +612,11 @@ "nixvim": "nixvim_2" }, "locked": { - "lastModified": 1770233182, - "narHash": "sha256-p6AN4IoRzITMYHt4OlPqWE9L80bbEHOh60Ek3OgMSJ4=", + "lastModified": 1770835587, + "narHash": "sha256-D0LVQRMGA0xJpdpykxXaoHC3vGrkYG461jbJ5TfUzEM=", "ref": "main", - "rev": "5a55725bd5de3f0640ccfcbf38600fc79b3f92fd", - "revCount": 58, + "rev": "72767c9aee71b0e5cec6dde7c2de92d3edb93dc4", + "revCount": 59, "type": "git", "url": "https://git.alejandr0angul0.dev/alejandro-angulo/nixvim-config" }, From 07928e2e6e80f15fffaa8c148ed9f18d0b18090b Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 22:31:50 -0800 Subject: [PATCH 10/14] Fix yazi shortcut --- modules/home/apps/tmux/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/apps/tmux/default.nix b/modules/home/apps/tmux/default.nix index 130250e..fb8ac52 100644 --- a/modules/home/apps/tmux/default.nix +++ b/modules/home/apps/tmux/default.nix @@ -116,7 +116,7 @@ in # Open yazi in a popup # Spins up a new session with a '-yazi' suffix (hitting the shortcut # toggles between attaching and detaching) - bind C-g if-shell "[[ $(tmux display-message -p '#S') == *-yazi ]]" { + bind C-y if-shell "[[ $(tmux display-message -p '#S') == *-yazi ]]" { detach-client } { display-popup -h 90% -w 90% -E "tmux new-session -A -s $(tmux display-message -p '#S')-yazi ${pkgs.yazi}/bin/yazi" From e7b18117930366b54cca4684181535637040c6c6 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 22:35:09 -0800 Subject: [PATCH 11/14] Cache upstream binaries too --- .forgejo/workflows/build_nixos_configs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/build_nixos_configs.yml b/.forgejo/workflows/build_nixos_configs.yml index 93523e9..579e3cd 100644 --- a/.forgejo/workflows/build_nixos_configs.yml +++ b/.forgejo/workflows/build_nixos_configs.yml @@ -27,4 +27,4 @@ jobs: nix --extra-experimental-features nix-command --extra-experimental-features flakes run nixpkgs#attic-client \ -- login gospel https://attic.kilonull.com ${{ secrets.ATTIC_PUSH_SECRET }} nix --extra-experimental-features nix-command --extra-experimental-features flakes run nixpkgs#attic-client \ - -- push gospel:nixosConfigs ./result + -- push --ignore-upstream-cache-filter gospel:nixosConfigs ./result From 1d4762941dfb3f8858eec94914066bb7fb8a709c Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 23:02:42 -0800 Subject: [PATCH 12/14] Try disabling allowed hosts list --- modules/nixos/services/atticd/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/nixos/services/atticd/default.nix b/modules/nixos/services/atticd/default.nix index 8843c6d..1a41dd5 100644 --- a/modules/nixos/services/atticd/default.nix +++ b/modules/nixos/services/atticd/default.nix @@ -37,7 +37,6 @@ in # openssl genrsa -traditional 4096 | base64 -w0 environmentFile = config.age.secrets.atticd.path; settings = { - allowed-hosts = [ "attic.kilonull.com" ]; api-endpoint = "https://attic.kilonull.com/"; listen = "[::]:8080"; garbage-collection.retention-period = "30d"; From 3e68b6d7bf3f5607ebd7b066c36311502c867392 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Sat, 28 Feb 2026 23:14:39 -0800 Subject: [PATCH 13/14] Address build warning --- modules/home/programs/yazi/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/home/programs/yazi/default.nix b/modules/home/programs/yazi/default.nix index c44c998..4867baf 100644 --- a/modules/home/programs/yazi/default.nix +++ b/modules/home/programs/yazi/default.nix @@ -13,7 +13,10 @@ in }; config = lib.mkIf cfg.enable { - programs.yazi.enable = true; + programs.yazi = { + enable = true; + shellWrapperName = "y"; + }; catppuccin.yazi.enable = true; }; } From 79b18edc1abd3ab8f51c046b179a11e58ea8f545 Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Tue, 3 Mar 2026 08:31:43 -0800 Subject: [PATCH 14/14] Add zoom --- systems/x86_64-linux/carbon/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/systems/x86_64-linux/carbon/default.nix b/systems/x86_64-linux/carbon/default.nix index 41e05a9..fa68830 100644 --- a/systems/x86_64-linux/carbon/default.nix +++ b/systems/x86_64-linux/carbon/default.nix @@ -82,6 +82,7 @@ nixos-generators vlc signal-desktop-bin + zoom-us ]; environment.pathsToLink = [ "/share/applications"