From 1eca5834db44563ce7fa5f0dfc485569c99f812f Mon Sep 17 00:00:00 2001 From: Shun Kakinoki Date: Mon, 23 Mar 2026 08:55:53 +0900 Subject: [PATCH 1/6] feat(hm): add syncthing service and enhance nix config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add syncthing as a home-manager service (Linux-only via services.syncthing) - Upgrade nix config: lix package, registry pinning, full substituter set, trusted-public-keys, use-xdg-base-directories, and gc.automatic - Flatten home-manager/misc/nix → home-manager/nix (remove misc wrapper) - Move NixOS-only nix settings to matic (channel.enable, nix-path, trusted-users, environment.etc nix/inputs/nixpkgs) Co-Authored-By: Claude Sonnet 4.6 --- home-manager/default.nix | 3 +- home-manager/misc/default.nix | 3 -- home-manager/misc/nix/default.nix | 10 ------ home-manager/nix/default.nix | 37 +++++++++++++++++++++ home-manager/services/default.nix | 2 ++ home-manager/services/syncthing/default.nix | 6 ++++ named-hosts/matic/default.nix | 13 ++++---- 7 files changed, 52 insertions(+), 22 deletions(-) delete mode 100644 home-manager/misc/default.nix delete mode 100644 home-manager/misc/nix/default.nix create mode 100644 home-manager/nix/default.nix create mode 100644 home-manager/services/syncthing/default.nix diff --git a/home-manager/default.nix b/home-manager/default.nix index 7e3cf0ac8..aaf2f63a8 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -9,7 +9,6 @@ let hmConfig = import ../config { inherit inputs; }; packages = import ./packages { inherit pkgs inputs; }; - misc = import ./misc; modules = import ./modules; programs = import ./programs { inherit config lib pkgs; @@ -22,7 +21,7 @@ in { imports = hmConfig - ++ misc + ++ [ ./nix ] ++ modules ++ programs ++ services diff --git a/home-manager/misc/default.nix b/home-manager/misc/default.nix deleted file mode 100644 index 2bc15e204..000000000 --- a/home-manager/misc/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -[ - ./nix -] diff --git a/home-manager/misc/nix/default.nix b/home-manager/misc/nix/default.nix deleted file mode 100644 index fb2bba57b..000000000 --- a/home-manager/misc/nix/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ lib, pkgs, ... }: -{ - nix = { - package = lib.mkDefault pkgs.nix; - enable = true; - extraOptions = '' - experimental-features = nix-command flakes - ''; - }; -} diff --git a/home-manager/nix/default.nix b/home-manager/nix/default.nix new file mode 100644 index 000000000..ed7dab4fe --- /dev/null +++ b/home-manager/nix/default.nix @@ -0,0 +1,37 @@ +{ + lib, + pkgs, + inputs, + ... +}: +{ + nix = { + package = lib.mkDefault pkgs.lixPackageSets.latest.lix; + enable = true; + registry.nixpkgs.flake = inputs.nixpkgs; + settings = { + experimental-features = [ + "nix-command" + "flakes" + ]; + use-xdg-base-directories = true; + substituters = [ + "https://cache.nixos.org" + "https://cache.garnix.io" + "https://cloudtide.cachix.org" + "https://nix-community.cachix.org" + "https://yazi.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" + "cloudtide.cachix.org-1:9NZ1Mah2+u8cd/CmVffFV23z5uFNpZSrhfgTt5fuN/4=" + "yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k=" + ]; + }; + gc = { + automatic = true; + }; + }; +} diff --git a/home-manager/services/default.nix b/home-manager/services/default.nix index d86314376..92d1cb3d7 100644 --- a/home-manager/services/default.nix +++ b/home-manager/services/default.nix @@ -17,6 +17,7 @@ let sshAgent = import ./ssh-agent { inherit config lib pkgs; }; + syncthing = import ./syncthing { inherit lib pkgs; }; tmuxSessionLogger = import ./tmux-session-logger { inherit pkgs; }; in [ @@ -30,5 +31,6 @@ in neversslKeepalive ollama sshAgent + syncthing tmuxSessionLogger ] diff --git a/home-manager/services/syncthing/default.nix b/home-manager/services/syncthing/default.nix new file mode 100644 index 000000000..290f6c678 --- /dev/null +++ b/home-manager/services/syncthing/default.nix @@ -0,0 +1,6 @@ +{ pkgs, lib, ... }: +{ + services.syncthing = lib.mkIf pkgs.stdenv.isLinux { + enable = true; + }; +} diff --git a/named-hosts/matic/default.nix b/named-hosts/matic/default.nix index c9e680796..65b738cf2 100644 --- a/named-hosts/matic/default.nix +++ b/named-hosts/matic/default.nix @@ -336,20 +336,19 @@ inputs.nixpkgs.lib.nixosSystem { zlib ]; - # Nix settings + # NixOS-level nix settings (complements home-manager misc/nix) nix = { + channel.enable = false; settings = { - experimental-features = [ - "nix-command" - "flakes" - ]; + nix-path = lib.mkForce "nixpkgs=/etc/nix/inputs/nixpkgs"; trusted-users = [ - "root" username + "@wheel" + "root" ]; }; - package = pkgs.nixVersions.stable; }; + environment.etc."nix/inputs/nixpkgs".source = "${inputs.nixpkgs}"; system.stateVersion = "24.11"; } From d4c10b1effbd763234ca5c50e614e0e1eb5056be Mon Sep 17 00:00:00 2001 From: Shun Kakinoki Date: Mon, 23 Mar 2026 08:58:02 +0900 Subject: [PATCH 2/6] fix(matic): update nix comment to reference home-manager/nix Co-Authored-By: Claude Sonnet 4.6 --- named-hosts/matic/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/named-hosts/matic/default.nix b/named-hosts/matic/default.nix index 65b738cf2..a4f07c34f 100644 --- a/named-hosts/matic/default.nix +++ b/named-hosts/matic/default.nix @@ -336,7 +336,7 @@ inputs.nixpkgs.lib.nixosSystem { zlib ]; - # NixOS-level nix settings (complements home-manager misc/nix) + # NixOS-level nix settings (complements home-manager nix/) nix = { channel.enable = false; settings = { From 369f483c65bcf6df5b68cba5e9452fd586810556 Mon Sep 17 00:00:00 2001 From: Shun Kakinoki Date: Mon, 23 Mar 2026 10:09:22 +0900 Subject: [PATCH 3/6] feat(idle): set lock timeout to 5min on battery, 10min on AC Match macOS screensaver idleTime (600s) for consistency across devices. Co-Authored-By: Claude Sonnet 4.6 --- config/hyprland/hypridle.conf | 21 +++++++++++++++++---- nix-darwin/config/system.nix | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/config/hyprland/hypridle.conf b/config/hyprland/hypridle.conf index cedd10362..913022879 100644 --- a/config/hyprland/hypridle.conf +++ b/config/hyprland/hypridle.conf @@ -19,16 +19,29 @@ listener { on-resume = brightnessctl -r } -# Lock screen after 5 minutes +# Lock screen after 5 minutes (only on battery) listener { timeout = 300 - on-timeout = loginctl lock-session + on-timeout = bash -c 'cat /sys/class/power_supply/AC*/online | grep -q 0 && loginctl lock-session' } -# Turn off display after 5.5 minutes +# Lock screen after 10 minutes (only on AC) +listener { + timeout = 600 + on-timeout = bash -c 'cat /sys/class/power_supply/AC*/online | grep -q 1 && loginctl lock-session' +} + +# Turn off display after 5.5 minutes (only on battery) listener { timeout = 330 - on-timeout = hyprctl dispatch dpms off + on-timeout = bash -c 'cat /sys/class/power_supply/AC*/online | grep -q 0 && hyprctl dispatch dpms off' + on-resume = hyprctl dispatch dpms on +} + +# Turn off display after 10.5 minutes (only on AC) +listener { + timeout = 630 + on-timeout = bash -c 'cat /sys/class/power_supply/AC*/online | grep -q 1 && hyprctl dispatch dpms off' on-resume = hyprctl dispatch dpms on } diff --git a/nix-darwin/config/system.nix b/nix-darwin/config/system.nix index 40c4b9513..a676e99a3 100644 --- a/nix-darwin/config/system.nix +++ b/nix-darwin/config/system.nix @@ -29,6 +29,7 @@ "com.apple.screensaver" = { askForPassword = true; askForPasswordDelay = 0; + idleTime = 600; }; "com.apple.screencapture" = { location = "~/Desktop"; From bc516376b359c0e901d14d54a324e5401b3e152d Mon Sep 17 00:00:00 2001 From: Shun Kakinoki Date: Mon, 23 Mar 2026 10:38:37 +0900 Subject: [PATCH 4/6] refactor(hm): follow let-binding convention for nix import Co-Authored-By: Claude Sonnet 4.6 --- home-manager/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/home-manager/default.nix b/home-manager/default.nix index aaf2f63a8..c94ca4037 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -9,6 +9,7 @@ let hmConfig = import ../config { inherit inputs; }; packages = import ./packages { inherit pkgs inputs; }; + nix = [ ./nix ]; modules = import ./modules; programs = import ./programs { inherit config lib pkgs; @@ -21,7 +22,7 @@ in { imports = hmConfig - ++ [ ./nix ] + ++ nix ++ modules ++ programs ++ services From 5b40a31d27e810bb7ddd3ab81fe09ff1e3f8046f Mon Sep 17 00:00:00 2001 From: Shun Kakinoki Date: Mon, 23 Mar 2026 10:41:12 +0900 Subject: [PATCH 5/6] refactor(hm): split nix index/config, alphabetize let bindings Co-Authored-By: Claude Sonnet 4.6 --- home-manager/default.nix | 6 +++--- home-manager/nix/default.nix | 40 +++--------------------------------- home-manager/nix/nix.nix | 37 +++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 40 deletions(-) create mode 100644 home-manager/nix/nix.nix diff --git a/home-manager/default.nix b/home-manager/default.nix index c94ca4037..cc0b3190c 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -8,9 +8,9 @@ }: let hmConfig = import ../config { inherit inputs; }; - packages = import ./packages { inherit pkgs inputs; }; - nix = [ ./nix ]; modules = import ./modules; + nix = import ./nix; + packages = import ./packages { inherit pkgs inputs; }; programs = import ./programs { inherit config lib pkgs; sources = { }; @@ -22,8 +22,8 @@ in { imports = hmConfig - ++ nix ++ modules + ++ nix ++ programs ++ services ++ [ diff --git a/home-manager/nix/default.nix b/home-manager/nix/default.nix index ed7dab4fe..755bdc727 100644 --- a/home-manager/nix/default.nix +++ b/home-manager/nix/default.nix @@ -1,37 +1,3 @@ -{ - lib, - pkgs, - inputs, - ... -}: -{ - nix = { - package = lib.mkDefault pkgs.lixPackageSets.latest.lix; - enable = true; - registry.nixpkgs.flake = inputs.nixpkgs; - settings = { - experimental-features = [ - "nix-command" - "flakes" - ]; - use-xdg-base-directories = true; - substituters = [ - "https://cache.nixos.org" - "https://cache.garnix.io" - "https://cloudtide.cachix.org" - "https://nix-community.cachix.org" - "https://yazi.cachix.org" - ]; - trusted-public-keys = [ - "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" - "cloudtide.cachix.org-1:9NZ1Mah2+u8cd/CmVffFV23z5uFNpZSrhfgTt5fuN/4=" - "yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k=" - ]; - }; - gc = { - automatic = true; - }; - }; -} +[ + ./nix.nix +] diff --git a/home-manager/nix/nix.nix b/home-manager/nix/nix.nix new file mode 100644 index 000000000..ed7dab4fe --- /dev/null +++ b/home-manager/nix/nix.nix @@ -0,0 +1,37 @@ +{ + lib, + pkgs, + inputs, + ... +}: +{ + nix = { + package = lib.mkDefault pkgs.lixPackageSets.latest.lix; + enable = true; + registry.nixpkgs.flake = inputs.nixpkgs; + settings = { + experimental-features = [ + "nix-command" + "flakes" + ]; + use-xdg-base-directories = true; + substituters = [ + "https://cache.nixos.org" + "https://cache.garnix.io" + "https://cloudtide.cachix.org" + "https://nix-community.cachix.org" + "https://yazi.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" + "cloudtide.cachix.org-1:9NZ1Mah2+u8cd/CmVffFV23z5uFNpZSrhfgTt5fuN/4=" + "yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k=" + ]; + }; + gc = { + automatic = true; + }; + }; +} From 1953f993a35e4f8abfebb1539665202872c7f82f Mon Sep 17 00:00:00 2001 From: Shun Kakinoki Date: Mon, 23 Mar 2026 10:43:42 +0900 Subject: [PATCH 6/6] revert: remove syncthing from this PR Co-Authored-By: Claude Sonnet 4.6 --- home-manager/services/default.nix | 2 -- home-manager/services/syncthing/default.nix | 6 ------ 2 files changed, 8 deletions(-) delete mode 100644 home-manager/services/syncthing/default.nix diff --git a/home-manager/services/default.nix b/home-manager/services/default.nix index 92d1cb3d7..d86314376 100644 --- a/home-manager/services/default.nix +++ b/home-manager/services/default.nix @@ -17,7 +17,6 @@ let sshAgent = import ./ssh-agent { inherit config lib pkgs; }; - syncthing = import ./syncthing { inherit lib pkgs; }; tmuxSessionLogger = import ./tmux-session-logger { inherit pkgs; }; in [ @@ -31,6 +30,5 @@ in neversslKeepalive ollama sshAgent - syncthing tmuxSessionLogger ] diff --git a/home-manager/services/syncthing/default.nix b/home-manager/services/syncthing/default.nix deleted file mode 100644 index 290f6c678..000000000 --- a/home-manager/services/syncthing/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, lib, ... }: -{ - services.syncthing = lib.mkIf pkgs.stdenv.isLinux { - enable = true; - }; -}