This commit is contained in:
Chris Kruining 2026-03-25 06:45:43 +00:00
parent 59a1fbaf0f
commit ac3dac322d
78 changed files with 893 additions and 802 deletions

38
users/chris/mandos.nix Normal file
View file

@ -0,0 +1,38 @@
{...}: {
home-manager.users.chris = {osConfig, ...}: {
home.stateVersion = osConfig.system.stateVersion;
programs.git = {
settings.user = {
name = "Chris Kruining";
email = "chris@kruining.eu";
};
};
sneeuwvlok = {
defaults = {
shell = "zsh";
terminal = "ghostty";
browser = "zen";
editor = "zed";
};
shell = {
corePkgs.enable = true;
};
themes = {
enable = true;
theme = "everforest";
polarity = "dark";
};
application = {
bitwarden.enable = true;
teamspeak.enable = true;
steam.enable = true;
zen.enable = true;
};
};
};
}

61
users/chris/manwe.nix Normal file
View file

@ -0,0 +1,61 @@
{...}: {
home-manager.users.chris = {osConfig, ...}: {
home.stateVersion = osConfig.system.stateVersion;
programs.git = {
settings.user = {
name = "Chris Kruining";
email = "chris@kruining.eu";
};
};
sneeuwvlok = {
defaults = {
shell = "zsh";
terminal = "ghostty";
browser = "zen";
editor = "zed";
};
shell = {
corePkgs.enable = true;
};
themes = {
enable = true;
theme = "everforest";
polarity = "dark";
};
development = {
rust.enable = true;
javascript.enable = true;
dotnet.enable = true;
};
application = {
bitwarden.enable = true;
discord.enable = true;
ladybird.enable = true;
matrix.enable = true;
obs.enable = true;
onlyoffice.enable = true;
signal.enable = true;
steam.enable = true;
studio.enable = true;
teamspeak.enable = true;
thunderbird.enable = true;
zen.enable = true;
};
shell.zsh.enable = true;
terminal.ghostty.enable = true;
editor = {
zed.enable = true;
nvim.enable = true;
nano.enable = true;
};
};
};
}

51
users/chris/orome.nix Normal file
View file

@ -0,0 +1,51 @@
{...}: {
home-manager.users.chris = {osConfig, ...}: {
home.stateVersion = osConfig.system.stateVersion;
programs.git = {
settings.user = {
name = "Chris Kruining";
email = "chris@kruining.eu";
};
};
sneeuwvlok = {
defaults = {
shell = "zsh";
terminal = "ghostty";
browser = "zen";
editor = "zed";
};
shell = {
corePkgs.enable = true;
};
themes = {
enable = true;
theme = "everforest";
polarity = "dark";
};
development = {
javascript.enable = true;
dotnet.enable = true;
};
application = {
bitwarden.enable = true;
onlyoffice.enable = true;
signal.enable = true;
zen.enable = true;
};
shell.zsh.enable = true;
terminal.ghostty.enable = true;
editor = {
zed.enable = true;
nano.enable = true;
};
};
};
}

38
users/chris/tulkas.nix Normal file
View file

@ -0,0 +1,38 @@
{...}: {
home-manager.users.chris = {osConfig, ...}: {
home.stateVersion = osConfig.system.stateVersion;
programs.git = {
settings.user = {
name = "Chris Kruining";
email = "chris@kruining.eu";
};
};
sneeuwvlok = {
defaults = {
shell = "zsh";
terminal = "ghostty";
browser = "zen";
editor = "zed";
};
shell = {
corePkgs.enable = true;
};
themes = {
enable = true;
theme = "everforest";
polarity = "dark";
};
application = {
bitwarden.enable = true;
teamspeak.enable = true;
steam.enable = true;
zen.enable = true;
};
};
};
}

78
users/default.nix Normal file
View file

@ -0,0 +1,78 @@
{
config,
inputs,
lib,
mkPkgs,
sharedContext,
...
}: let
inherit (lib) mkOption types;
mkHomeUserModule = spec:
(import spec.path {}).home-manager.users.${spec.user};
in {
options.localUsers = {
homeEntries = mkOption {
type = types.attrsOf types.raw;
default = {};
};
homeSharedModules = mkOption {
type = types.listOf types.raw;
default = [];
};
};
config = {
localUsers.homeEntries = {
"chris@mandos" = {
machine = "mandos";
user = "chris";
path = ../users/chris/mandos.nix;
};
"chris@manwe" = {
machine = "manwe";
user = "chris";
path = ../users/chris/manwe.nix;
};
"chris@orome" = {
machine = "orome";
user = "chris";
path = ../users/chris/orome.nix;
};
"chris@tulkas" = {
machine = "tulkas";
user = "chris";
path = ../users/chris/tulkas.nix;
};
};
localUsers.homeSharedModules =
[
inputs.stylix.homeModules.stylix
inputs.plasma-manager.homeModules.plasma-manager
inputs.zen-browser.homeModules.default
]
++ [ ../modules/home ];
flake.homeConfigurations = lib.mapAttrs (_: spec:
inputs.home-manager.lib.homeManagerConfiguration {
pkgs = mkPkgs "x86_64-linux";
extraSpecialArgs =
sharedContext
// {
osConfig = config.flake.nixosConfigurations.${spec.machine}.config;
};
modules =
config.localUsers.homeSharedModules
++ [
{
home.username = spec.user;
home.homeDirectory = "/home/${spec.user}";
}
(mkHomeUserModule spec)
];
})
config.localUsers.homeEntries;
};
}