feat: multiple user

This commit is contained in:
Keisuke Hirata 2026-02-28 19:42:36 +09:00
parent 2acc8a1e67
commit 35623910b0
8 changed files with 86 additions and 66 deletions

View File

@ -5,7 +5,11 @@ in
mkHost {
system = "x86_64-linux";
hostname = "Arcadia";
users = [
{
username = "hare";
systemModules = [ ./nixos.nix ];
homeModule = [ ./home-manager.nix ];
homeModule = [ ./hare ];
}
];
systemModules = [ ./nixos.nix ];
}

View File

@ -8,19 +8,19 @@
home.stateVersion = "25.05";
imports = [
inputs.nix-index-database.homeModules.nix-index
./display.nix
../../home-manager/tofi.nix
../../home-manager/hyprland
../../home-manager/fnott.nix
../../home-manager/wezterm
../../home-manager/fish
../../home-manager/vscode.nix
../../home-manager/direnv.nix
../../home-manager/firefox.nix
../../home-manager/obs-studio.nix
../../home-manager/zeditor.nix
../../home-manager/blender.nix
../../home-manager/voicevox.nix
../display.nix
../../../home-manager/tofi.nix
../../../home-manager/hyprland
../../../home-manager/fnott.nix
../../../home-manager/wezterm
../../../home-manager/fish
../../../home-manager/vscode.nix
../../../home-manager/direnv.nix
../../../home-manager/firefox.nix
../../../home-manager/obs-studio.nix
../../../home-manager/zeditor.nix
../../../home-manager/blender.nix
../../../home-manager/voicevox.nix
];
hare.hyprland = {
input.sensitivity = -1.0;

View File

@ -6,5 +6,5 @@ rec {
fungus = import ./fungus inputs;
};
nixos = builtins.mapAttrs (_: host: host.nixos) hosts;
home-manager = builtins.mapAttrs (_: host: host.home-manager) hosts;
home-manager = builtins.foldl' (a: b: a // b) { } (map (h: h.home-manager) (builtins.attrValues hosts));
}

View File

@ -5,7 +5,11 @@ in
mkHost {
system = "x86_64-linux";
hostname = "Fungus";
users = [
{
username = "hare";
systemModules = [ ./nixos.nix ];
homeModule = [ ./home-manager.nix ];
homeModule = [ ./hare ];
}
];
systemModules = [ ./nixos.nix ];
}

View File

@ -1,17 +1,16 @@
{ conifg, pkgs, ... }:
{ pkgs, ... }:
{
home.stateVersion = "25.05";
imports = [
../../home-manager/direnv.nix
../../home-manager/wezterm
../../home-manager/fish
];
home.packages = with pkgs; [
../../../home-manager/direnv.nix
../../../home-manager/wezterm
../../../home-manager/fish
];
home.packages = with pkgs; [ ];
programs.git = {
enable = true;
userName = "Hare";
userEmail = "kei.hiracchi.0928@gmail.com";
settings.user.name = "Hare";
settings.user.email = "kei.hiracchi.0928@gmail.com";
};
fonts = {

View File

@ -2,15 +2,22 @@ inputs:
{
system,
hostname,
username,
users,
systemModules,
homeModule,
}:
let
pkgs = import inputs.nixpkgs {
inherit system;
config.allowUnfree = true;
};
in
{
nixos = inputs.nixpkgs.lib.nixosSystem {
modules = systemModules ++ [
{
users.users.${username} = {
users.users = builtins.listToAttrs (map (u: {
name = u.username;
value = {
isNormalUser = true;
description = "";
extraGroups = [
@ -18,31 +25,33 @@ inputs:
"wheel"
];
};
}) users);
}
];
inherit system;
specialArgs = {
inherit inputs hostname username;
inherit inputs hostname;
username = (builtins.head users).username;
};
};
home-manager = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = import inputs.nixpkgs {
inherit system;
config.allowUnfree = true;
};
home-manager = builtins.listToAttrs (map (u: {
name = "${u.username}@${hostname}";
value = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs hostname username;
inherit inputs hostname;
username = u.username;
};
modules = [
{
home = {
inherit username;
homeDirectory = "/home/${username}";
username = u.username;
homeDirectory = "/home/${u.username}";
};
programs.home-manager.enable = true;
}
(import ../system/home-manager)
]
++ homeModule;
] ++ u.homeModule;
};
}) users);
}

View File

@ -5,7 +5,11 @@ in
mkHost {
system = "x86_64-linux";
hostname = "x1carbon";
users = [
{
username = "hare";
systemModules = [ ./nixos.nix ];
homeModule = [ ./home-manager.nix ];
homeModule = [ ./hare ];
}
];
systemModules = [ ./nixos.nix ];
}

View File

@ -7,16 +7,16 @@
{
home.stateVersion = "25.05";
imports = [
../../home-manager/hyprland
../../home-manager/tofi.nix
../../home-manager/fnott.nix
../../home-manager/direnv.nix
../../home-manager/obs-studio.nix
../../home-manager/wezterm
../../home-manager/fish
../../../home-manager/hyprland
../../../home-manager/tofi.nix
../../../home-manager/fnott.nix
../../../home-manager/direnv.nix
../../../home-manager/obs-studio.nix
../../../home-manager/wezterm
../../../home-manager/fish
];
hare.hyprland = {
style = import ../../home-manager/hyprland/styles/thin.nix { inherit lib; };
style = import ../../../home-manager/hyprland/styles/thin.nix { inherit lib; };
input.sensitivity = -0.6;
wallpaperCommand = "swww img /usr/share/wallpaper/";
};