From 18cba8e35f80ee4094b59b322560096224307b8a Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 28 Feb 2026 21:26:07 +0900 Subject: [PATCH] feat: user nixos --- README.md | 2 +- hosts/arcadia/default.nix | 3 +- .../hare/{default.nix => home-manager.nix} | 0 hosts/arcadia/hare/nixos.nix | 14 +++++++ hosts/arcadia/nixos.nix | 20 +--------- hosts/fungus/default.nix | 3 +- .../hare/{default.nix => home-manager.nix} | 0 hosts/fungus/hare/nixos.nix | 11 ++++++ hosts/fungus/nixos.nix | 17 +-------- hosts/mkHost.nix | 37 +++++++++++-------- hosts/x1carbon/default.nix | 3 +- .../hare/{default.nix => home-manager.nix} | 0 hosts/x1carbon/hare/nixos.nix | 11 ++++++ hosts/x1carbon/nixos.nix | 16 +------- 14 files changed, 67 insertions(+), 70 deletions(-) rename hosts/arcadia/hare/{default.nix => home-manager.nix} (100%) create mode 100644 hosts/arcadia/hare/nixos.nix rename hosts/fungus/hare/{default.nix => home-manager.nix} (100%) create mode 100644 hosts/fungus/hare/nixos.nix rename hosts/x1carbon/hare/{default.nix => home-manager.nix} (100%) create mode 100644 hosts/x1carbon/hare/nixos.nix diff --git a/README.md b/README.md index 243febb..c39ae72 100644 --- a/README.md +++ b/README.md @@ -3,5 +3,5 @@ ``` sudo nixos-rebuild switch --flake .# -nix run .#home-manager -- switch --flake .# +nix run .#home-manager -- switch --flake .#@ ``` diff --git a/hosts/arcadia/default.nix b/hosts/arcadia/default.nix index 3a96f57..dc271d6 100644 --- a/hosts/arcadia/default.nix +++ b/hosts/arcadia/default.nix @@ -8,7 +8,8 @@ mkHost { users = [ { username = "hare"; - homeModule = [ ./hare ]; + homeModule = [ ./hare/home-manager.nix ]; + userNixos = ./hare/nixos.nix; } ]; systemModules = [ ./nixos.nix ]; diff --git a/hosts/arcadia/hare/default.nix b/hosts/arcadia/hare/home-manager.nix similarity index 100% rename from hosts/arcadia/hare/default.nix rename to hosts/arcadia/hare/home-manager.nix diff --git a/hosts/arcadia/hare/nixos.nix b/hosts/arcadia/hare/nixos.nix new file mode 100644 index 0000000..6cf7c57 --- /dev/null +++ b/hosts/arcadia/hare/nixos.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: +{ + extraGroups = [ + "adbusers" + "docker" + ]; + shell = pkgs.fish; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfql/a6ZtxOPgBhFzOfgTO6HGcy0Se9mgMLmOa40vMF" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIW2Yrqwi4YjIrdI8mygX5pTHDPmrUgbmpZ4WxoTqORi keihi@Vostro-LapTop" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICi8Cciepfs1ikPdfyHjc9qJX5z2QLFF9jBszsyEvCMA nix-on-droid@localhost" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID8Eo/QDJtXqluvjNx5ZpeIt0c/yf/Mgr7dKhNWAICZX hare@x1carbon" + ]; +} diff --git a/hosts/arcadia/nixos.nix b/hosts/arcadia/nixos.nix index bfbf60e..583a497 100644 --- a/hosts/arcadia/nixos.nix +++ b/hosts/arcadia/nixos.nix @@ -1,8 +1,4 @@ -{ - pkgs, - username, - ... -}: +{ pkgs, ... }: let config.boot.kernelPackages = pkgs.linuxPackages_latest; in @@ -55,19 +51,6 @@ in ]; environment.sessionVariables.NIXOS_OZONE_WL = "1"; - users.users.${username} = { - extraGroups = [ - "adbusers" - "docker" - ]; - shell = pkgs.fish; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfql/a6ZtxOPgBhFzOfgTO6HGcy0Se9mgMLmOa40vMF" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIW2Yrqwi4YjIrdI8mygX5pTHDPmrUgbmpZ4WxoTqORi keihi@Vostro-LapTop" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICi8Cciepfs1ikPdfyHjc9qJX5z2QLFF9jBszsyEvCMA nix-on-droid@localhost" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID8Eo/QDJtXqluvjNx5ZpeIt0c/yf/Mgr7dKhNWAICZX hare@x1carbon" - ]; - }; programs.nix-ld.enable = true; services.openssh.enable = true; @@ -122,5 +105,4 @@ in boot.loader.efi.canTouchEfiVariables = true; boot.initrd.kernelModules = [ "amdgpu" ]; - } diff --git a/hosts/fungus/default.nix b/hosts/fungus/default.nix index 8457138..e426a10 100644 --- a/hosts/fungus/default.nix +++ b/hosts/fungus/default.nix @@ -8,7 +8,8 @@ mkHost { users = [ { username = "hare"; - homeModule = [ ./hare ]; + homeModule = [ ./hare/home-manager.nix ]; + userNixos = ./hare/nixos.nix; } ]; systemModules = [ ./nixos.nix ]; diff --git a/hosts/fungus/hare/default.nix b/hosts/fungus/hare/home-manager.nix similarity index 100% rename from hosts/fungus/hare/default.nix rename to hosts/fungus/hare/home-manager.nix diff --git a/hosts/fungus/hare/nixos.nix b/hosts/fungus/hare/nixos.nix new file mode 100644 index 0000000..39bce37 --- /dev/null +++ b/hosts/fungus/hare/nixos.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: +{ + extraGroups = [ + "docker" + ]; + shell = pkgs.fish; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBd45JtvgM44KUqhp3Xl2Wtt6rmxU13c/84YLyGKigkG hare@nixos" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZTkjrLwH+jsSHF/LI23+WPQ9rff9vWBH1VaxSjNADIIKDY7vGkWWRUCImt8QTzied3mNFv+EyZ8igiJdm5tEO1KkrWUqTZk5Ut79LTQftB23SDNC8XzuHKxwaKHdwZIP065biRFUqNYHu8h0EHKbQ3Djj6cZYBcEL1JOc0wtm4jmuW6Fp3rCn/ZCo0g3Kg7SfY4cpf4fJTB97bIjPJzG7JSSOuTkJcDQzFrySUPOpgrt5+iSqKJ/tQtfxLHcNq8AMrh1fH6sUzaJLmMs/7V9LTbsbILTY4YQj5FF07dBqEJBwvZ9sRTPPzl/HSdVmp9OlCZnryPbjTKJmK1Nxx+tOZfh4IY3mWWnEegvDNCYwKJu+d+zeqDaSUMx0kpAnK9PLSI0By8FtboRVvSFSce6FouiUhEzJyKXAr3E1JCgQXdLcTTb66rbBcauuqhuieKDGPpz45EbFi83uHNeDodi5b75h5r1Nn+oJmzagwUAoyw4gCCbiYwTAe3GA79LK7kE= hare@hr-r620" + ]; +} diff --git a/hosts/fungus/nixos.nix b/hosts/fungus/nixos.nix index 51effa5..460eb96 100644 --- a/hosts/fungus/nixos.nix +++ b/hosts/fungus/nixos.nix @@ -1,9 +1,4 @@ -{ - config, - pkgs, - username, - ... -}: +{ pkgs, ... }: { system.stateVersion = "25.05"; @@ -24,16 +19,6 @@ boot.loader.grub.useOSProber = true; boot.loader.efi.canTouchEfiVariables = true; - users.users.${username} = { - extraGroups = [ - "docker" - ]; - shell = pkgs.fish; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBd45JtvgM44KUqhp3Xl2Wtt6rmxU13c/84YLyGKigkG hare@nixos" - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZTkjrLwH+jsSHF/LI23+WPQ9rff9vWBH1VaxSjNADIIKDY7vGkWWRUCImt8QTzied3mNFv+EyZ8igiJdm5tEO1KkrWUqTZk5Ut79LTQftB23SDNC8XzuHKxwaKHdwZIP065biRFUqNYHu8h0EHKbQ3Djj6cZYBcEL1JOc0wtm4jmuW6Fp3rCn/ZCo0g3Kg7SfY4cpf4fJTB97bIjPJzG7JSSOuTkJcDQzFrySUPOpgrt5+iSqKJ/tQtfxLHcNq8AMrh1fH6sUzaJLmMs/7V9LTbsbILTY4YQj5FF07dBqEJBwvZ9sRTPPzl/HSdVmp9OlCZnryPbjTKJmK1Nxx+tOZfh4IY3mWWnEegvDNCYwKJu+d+zeqDaSUMx0kpAnK9PLSI0By8FtboRVvSFSce6FouiUhEzJyKXAr3E1JCgQXdLcTTb66rbBcauuqhuieKDGPpz45EbFi83uHNeDodi5b75h5r1Nn+oJmzagwUAoyw4gCCbiYwTAe3GA79LK7kE= hare@hr-r620" - ]; - }; programs.nix-ld.enable = true; services.openssh.enable = true; diff --git a/hosts/mkHost.nix b/hosts/mkHost.nix index 5a7a314..9c9047a 100644 --- a/hosts/mkHost.nix +++ b/hosts/mkHost.nix @@ -13,25 +13,30 @@ let in { nixos = inputs.nixpkgs.lib.nixosSystem { - modules = systemModules ++ [ - { - users.users = builtins.listToAttrs (map (u: { - name = u.username; - value = { - isNormalUser = true; - description = ""; - extraGroups = [ - "networkmanager" - "wheel" - ]; - }; - }) users); - } - ]; + modules = + systemModules + ++ (map (u: { pkgs, ... }: { + users.users.${u.username} = import u.userNixos { inherit pkgs; }; + }) (builtins.filter (u: u ? userNixos) users)) + ++ [ + { + users.users = builtins.listToAttrs (map (u: { + name = u.username; + value = { + isNormalUser = true; + description = ""; + extraGroups = [ + "networkmanager" + "wheel" + ]; + }; + }) users); + } + ]; inherit system; specialArgs = { inherit inputs hostname; - username = (builtins.head users).username; + users = map (u: u.username) users; }; }; home-manager = builtins.listToAttrs (map (u: { diff --git a/hosts/x1carbon/default.nix b/hosts/x1carbon/default.nix index 5f3249f..408cc54 100644 --- a/hosts/x1carbon/default.nix +++ b/hosts/x1carbon/default.nix @@ -8,7 +8,8 @@ mkHost { users = [ { username = "hare"; - homeModule = [ ./hare ]; + homeModule = [ ./hare/home-manager.nix ]; + userNixos = ./hare/nixos.nix; } ]; systemModules = [ ./nixos.nix ]; diff --git a/hosts/x1carbon/hare/default.nix b/hosts/x1carbon/hare/home-manager.nix similarity index 100% rename from hosts/x1carbon/hare/default.nix rename to hosts/x1carbon/hare/home-manager.nix diff --git a/hosts/x1carbon/hare/nixos.nix b/hosts/x1carbon/hare/nixos.nix new file mode 100644 index 0000000..ee983de --- /dev/null +++ b/hosts/x1carbon/hare/nixos.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: +{ + extraGroups = [ + "docker" + ]; + shell = pkgs.fish; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfql/a6ZtxOPgBhFzOfgTO6HGcy0Se9mgMLmOa40vMF" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIW2Yrqwi4YjIrdI8mygX5pTHDPmrUgbmpZ4WxoTqORi keihi@Vostro-LapTop" + ]; +} diff --git a/hosts/x1carbon/nixos.nix b/hosts/x1carbon/nixos.nix index 7013324..d052e55 100644 --- a/hosts/x1carbon/nixos.nix +++ b/hosts/x1carbon/nixos.nix @@ -1,8 +1,4 @@ -{ - pkgs, - username, - ... -}: +{ pkgs, ... }: let config.boot.kernelPackages = pkgs.linuxPackages_latest; in @@ -36,16 +32,6 @@ in ]; environment.sessionVariables.NIXOS_OZONE_WL = "1"; - users.users.${username} = { - extraGroups = [ - "docker" - ]; - shell = pkgs.fish; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIfql/a6ZtxOPgBhFzOfgTO6HGcy0Se9mgMLmOa40vMF" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIW2Yrqwi4YjIrdI8mygX5pTHDPmrUgbmpZ4WxoTqORi keihi@Vostro-LapTop" - ]; - }; programs.nix-ld.enable = true; programs.light.enable = true;