my system configurations ^-^
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #8 from 42willow/refactor/home-manager-darwin

Refactor/home manager darwin

authored by

willow and committed by
GitHub
182f0e09 8634102c

+134 -98
-1
hosts/anemone/default.nix
··· 14 14 inputs.nixos-hardware.nixosModules.raspberry-pi-3 15 15 (modulesPath + "/installer/scan/not-detected.nix") 16 16 (modulesPath + "/installer/sd-card/sd-image-aarch64.nix") 17 - "${self}/user" 18 17 "${self}/modules/nixos" 19 18 ]; 20 19
-1
hosts/earthy/default.nix
··· 8 8 in { 9 9 imports = [ 10 10 ./hardware-configuration.nix 11 - "${self}/user" 12 11 "${self}/modules/nixos" 13 12 ]; 14 13
+12 -1
hosts/starling/default.nix
··· 1 1 { 2 2 lib, 3 - pkgs, 4 3 inputs, 5 4 config, 6 5 ... 7 6 }: let 8 7 inherit (inputs) self; 8 + 9 + cfg = config.settings; 9 10 in { 10 11 imports = [ 11 12 "${self}/modules/darwin" ··· 14 15 networking = { 15 16 computerName = "starling"; 16 17 hostName = "starling"; 18 + }; 19 + 20 + settings = { 21 + system = { 22 + user = { 23 + name = builtins.getEnv "SUDO_USER"; 24 + group = "staff"; 25 + home = "/Users/${cfg.system.user.name}"; 26 + }; 27 + }; 17 28 }; 18 29 19 30 nixpkgs.hostPlatform = lib.mkDefault "aarch64-darwin";
+6 -2
modules/darwin/default.nix
··· 1 - { 1 + {config, ...}: let 2 + inherit (config.settings.system) user; 3 + in { 2 4 imports = [./homebrew.nix ../shared]; 3 5 6 + users.users.${user.name}.home = user.home; 7 + 4 8 system = { 5 9 stateVersion = 6; 6 10 7 - primaryUser = builtins.getEnv "SUDO_USER"; # not declarative, needs to be built with impure 11 + primaryUser = user.name; 8 12 9 13 # defaults = { 10 14 # };
+25 -5
modules/nixos/default.nix
··· 1 1 { 2 + self, 3 + pkgs, 4 + config, 5 + ... 6 + }: let 7 + inherit (config.settings.system) user; 8 + 9 + keys = [ 10 + "${self}/keys/anemone.pub" 11 + "${self}/keys/earthy.pub" 12 + "${self}/keys/willow.pub" 13 + ]; 14 + in { 2 15 imports = [ 3 16 ./desktop 4 - ./options 17 + ./home 5 18 ./programs 6 19 ./services 20 + ./system 7 21 ./themes 8 22 9 - ./network.nix 10 - ./nix.nix 11 - ./vm.nix 12 - 13 23 ../shared 14 24 ]; 25 + 26 + users.users.${user.name} = { 27 + isNormalUser = true; 28 + extraGroups = ["networkmanager" "wheel" "dialout"]; 29 + home = user.home; 30 + shell = pkgs.zsh; 31 + initialHashedPassword = ""; 32 + openssh.authorizedKeys.keyFiles = keys; 33 + }; 34 + users.users.root.openssh.authorizedKeys.keyFiles = keys; 15 35 }
+14
modules/nixos/home/default.nix
··· 1 + {config, ...}: let 2 + inherit (config.settings.system) user; 3 + in { 4 + home-manager.users.${user.name} = { 5 + imports = [ 6 + ./desktop 7 + ./programs 8 + ./scripts 9 + ./services 10 + ./system 11 + ./themes 12 + ]; 13 + }; 14 + }
modules/nixos/network.nix modules/nixos/system/network.nix
modules/nixos/nix.nix modules/nixos/system/nix.nix
modules/nixos/options/README.md modules/shared/options/README.md
+16 -4
modules/nixos/options/default.nix modules/shared/options/default.nix
··· 116 116 }; 117 117 }; 118 118 system = { 119 - mainUser = mkOption { 120 - type = types.str; 121 - description = "The username of the main user for your system"; 122 - default = "willow"; 119 + user = { 120 + name = mkOption { 121 + type = types.str; 122 + description = "The username of the main user for your system"; 123 + default = "willow"; 124 + }; 125 + home = mkOption { 126 + type = types.path; 127 + description = "The home directory of the main user for your system"; 128 + default = "/home/${cfg.system.user.name}"; 129 + }; 130 + group = mkOption { 131 + type = types.str; 132 + description = "The group of the main user for your system"; 133 + default = "users"; 134 + }; 123 135 }; 124 136 hostName = mkOption { 125 137 type = types.str;
+7
modules/nixos/system/default.nix
··· 1 + { 2 + imports = [ 3 + ./network.nix 4 + ./nix.nix 5 + ./vm.nix 6 + ]; 7 + }
modules/nixos/vm.nix modules/nixos/system/vm.nix
+2
modules/shared/default.nix
··· 1 1 { 2 2 imports = [ 3 + ./home 3 4 ./nix 5 + ./options 4 6 ]; 5 7 }
+19
modules/shared/home/default.nix
··· 1 + { 2 + inputs, 3 + config, 4 + ... 5 + }: let 6 + inherit (config.settings.system) user; 7 + in { 8 + home-manager = { 9 + useGlobalPkgs = true; 10 + useUserPackages = true; 11 + backupFileExtension = "bak"; 12 + 13 + extraSpecialArgs = { 14 + inherit inputs; 15 + }; 16 + 17 + users.${user.name} = import ./home.nix; 18 + }; 19 + }
+15
modules/shared/home/home.nix
··· 1 + {osConfig, ...}: let 2 + inherit (osConfig.settings.system) user; 3 + in { 4 + imports = [ 5 + ./programs 6 + ]; 7 + 8 + programs.home-manager.enable = true; 9 + 10 + home = { 11 + username = user.name; 12 + homeDirectory = user.home; 13 + stateVersion = "24.05"; 14 + }; 15 + }
+5
modules/shared/home/programs/cli/default.nix
··· 1 + { 2 + imports = [ 3 + ./git.nix 4 + ]; 5 + }
+5
modules/shared/home/programs/default.nix
··· 1 + { 2 + imports = [ 3 + ./cli 4 + ]; 5 + }
+4 -21
modules/shared/nix/age.nix
··· 5 5 ... 6 6 }: let 7 7 inherit (inputs) self; 8 + inherit (config.settings.system) user; 8 9 9 - mainUser = 10 - if config ? settings && config.settings ? system && config.settings.system ? mainUser 11 - then config.settings.system.mainUser 12 - else null; 13 - 14 - userGroup = 15 - if mainUser != null 16 - then config.users.users.${mainUser}.group 17 - else null; 18 - sshDir = 19 - if mainUser != null 20 - then config.users.users.${mainUser}.home + "/.ssh" 21 - else null; 10 + sshDir = user.home + "/.ssh"; 22 11 23 12 # https://github.com/isabelroses/dotfiles/blob/0827bb1893b8072b65c66a6919f8abbe6df9a55a/modules/flake/lib/secrets.nix 24 13 mkSecret = { ··· 27 16 ... 28 17 }: { 29 18 file = "${self}/secrets/${file}.age"; 30 - owner = 31 - if mainUser != null 32 - then mainUser 33 - else "root"; 34 - group = 35 - if userGroup != null 36 - then userGroup 37 - else "root"; 19 + owner = user.name; 20 + group = user.group; 38 21 inherit mode; 39 22 }; 40 23 in {
+4 -8
modules/shared/nix/default.nix
··· 1 - { 2 - pkgs, 3 - lib, 4 - ... 5 - }: let 6 - primaryUser = builtins.getEnv "SUDO_USER"; 1 + {config, ...}: let 2 + inherit (config.settings.system) user; 7 3 in { 8 4 imports = [ 9 5 ./age.nix ··· 13 9 experimental-features = ["nix-command" "flakes"]; 14 10 warn-dirty = false; 15 11 keep-going = true; 16 - allowed-users = ["willow" primaryUser]; 17 - trusted-users = ["root" "willow" primaryUser]; 12 + allowed-users = [user.name]; 13 + trusted-users = ["root" user.name]; 18 14 19 15 # cachix 20 16 extra-substituters = ["https://nix-community.cachix.org"];
-35
user/default.nix
··· 1 - { 2 - inputs, 3 - pkgs, 4 - ... 5 - }: let 6 - inherit (inputs) self; 7 - keys = [ 8 - "${self}/keys/anemone.pub" 9 - "${self}/keys/earthy.pub" 10 - "${self}/keys/willow.pub" 11 - ]; 12 - in { 13 - config = { 14 - home-manager = { 15 - useGlobalPkgs = true; 16 - useUserPackages = true; 17 - 18 - extraSpecialArgs = { 19 - inherit inputs; 20 - }; 21 - 22 - users.willow = import ./home.nix; 23 - }; 24 - 25 - users.users.willow = { 26 - isNormalUser = true; 27 - extraGroups = ["networkmanager" "wheel" "dialout"]; 28 - home = "/home/willow"; 29 - shell = pkgs.zsh; 30 - initialHashedPassword = ""; 31 - openssh.authorizedKeys.keyFiles = keys; 32 - }; 33 - users.users.root.openssh.authorizedKeys.keyFiles = keys; 34 - }; 35 - }
user/desktop/bspwm/default.nix modules/nixos/home/desktop/bspwm/default.nix
user/desktop/default.nix modules/nixos/home/desktop/default.nix
user/desktop/hyprland/autostart.nix modules/nixos/home/desktop/hyprland/autostart.nix
user/desktop/hyprland/binds.nix modules/nixos/home/desktop/hyprland/binds.nix
user/desktop/hyprland/default.nix modules/nixos/home/desktop/hyprland/default.nix
user/desktop/hyprland/env.nix modules/nixos/home/desktop/hyprland/env.nix
user/desktop/hyprland/hypridle.nix modules/nixos/home/desktop/hyprland/hypridle.nix
user/desktop/hyprland/hyprlock.nix modules/nixos/home/desktop/hyprland/hyprlock.nix
user/desktop/hyprland/hyprpaper.nix modules/nixos/home/desktop/hyprland/hyprpaper.nix
user/desktop/hyprland/rules.nix modules/nixos/home/desktop/hyprland/rules.nix
user/desktop/hyprland/settings.nix modules/nixos/home/desktop/hyprland/settings.nix
user/desktop/niri/binds.nix modules/nixos/home/desktop/niri/binds.nix
user/desktop/niri/default.nix modules/nixos/home/desktop/niri/default.nix
-19
user/home.nix
··· 1 - {osConfig, ...}: let 2 - inherit (osConfig.settings.system) mainUser; 3 - in { 4 - imports = [ 5 - ./desktop 6 - ./programs 7 - ./scripts 8 - ./services 9 - ./system 10 - ./themes 11 - ]; 12 - programs.home-manager.enable = true; 13 - 14 - home = { 15 - username = "willow"; 16 - homeDirectory = osConfig.users.users.${mainUser}.home; 17 - stateVersion = "24.05"; 18 - }; 19 - }
user/programs/cli/beets.nix modules/nixos/home/programs/cli/beets.nix
user/programs/cli/bun.nix modules/nixos/home/programs/cli/bun.nix
-1
user/programs/cli/default.nix modules/nixos/home/programs/cli/default.nix
··· 14 14 ./direnv.nix # dev 15 15 ./eza.nix # core 16 16 ./fzf.nix # tools 17 - ./git.nix # core 18 17 ./hyfetch.nix # tools 19 18 ./nushell.nix # core 20 19 ./ripgrep.nix # tools
user/programs/cli/direnv.nix modules/nixos/home/programs/cli/direnv.nix
user/programs/cli/eza.nix modules/nixos/home/programs/cli/eza.nix
user/programs/cli/fzf.nix modules/nixos/home/programs/cli/fzf.nix
user/programs/cli/git.nix modules/shared/home/programs/cli/git.nix
user/programs/cli/hyfetch.nix modules/nixos/home/programs/cli/hyfetch.nix
user/programs/cli/nushell.nix modules/nixos/home/programs/cli/nushell.nix
user/programs/cli/ripgrep.nix modules/nixos/home/programs/cli/ripgrep.nix
user/programs/cli/starship.nix modules/nixos/home/programs/cli/starship.nix
user/programs/cli/zoxide.nix modules/nixos/home/programs/cli/zoxide.nix
user/programs/cli/zsh.nix modules/nixos/home/programs/cli/zsh.nix
user/programs/default.nix modules/nixos/home/programs/default.nix
user/programs/gui/browsers/chromium.nix modules/nixos/home/programs/gui/browsers/chromium.nix
user/programs/gui/browsers/default.nix modules/nixos/home/programs/gui/browsers/default.nix
user/programs/gui/browsers/firefox/containers.nix modules/nixos/home/programs/gui/browsers/firefox/containers.nix
user/programs/gui/browsers/firefox/default.nix modules/nixos/home/programs/gui/browsers/firefox/default.nix
user/programs/gui/browsers/firefox/engines.nix modules/nixos/home/programs/gui/browsers/firefox/engines.nix
user/programs/gui/browsers/firefox/policies.nix modules/nixos/home/programs/gui/browsers/firefox/policies.nix
user/programs/gui/browsers/floorp.nix modules/nixos/home/programs/gui/browsers/floorp.nix
user/programs/gui/default.nix modules/nixos/home/programs/gui/default.nix
user/programs/gui/lightburn.nix modules/nixos/home/programs/gui/lightburn.nix
user/programs/gui/obs-studio.nix modules/nixos/home/programs/gui/obs-studio.nix
user/programs/gui/quickshell.nix modules/nixos/home/programs/gui/quickshell.nix
user/programs/gui/spicetify.nix modules/nixos/home/programs/gui/spicetify.nix
user/programs/gui/terminals/alacritty.nix modules/nixos/home/programs/gui/terminals/alacritty.nix
user/programs/gui/terminals/default.nix modules/nixos/home/programs/gui/terminals/default.nix
user/programs/gui/terminals/ghostty.nix modules/nixos/home/programs/gui/terminals/ghostty.nix
user/programs/gui/terminals/kitty.nix modules/nixos/home/programs/gui/terminals/kitty.nix
user/programs/gui/thunderbird.nix modules/nixos/home/programs/gui/thunderbird.nix
user/programs/gui/tofi.nix modules/nixos/home/programs/gui/tofi.nix
user/programs/gui/waybar/default.nix modules/nixos/home/programs/gui/waybar/default.nix
user/programs/gui/waybar/style.css modules/nixos/home/programs/gui/waybar/style.css
user/programs/gui/zathura.nix modules/nixos/home/programs/gui/zathura.nix
user/programs/gui/zed/default.nix modules/nixos/home/programs/gui/zed/default.nix
user/programs/gui/zed/keymap.json modules/nixos/home/programs/gui/zed/keymap.json
user/programs/gui/zed/settings.json modules/nixos/home/programs/gui/zed/settings.json
user/programs/tui/bat.nix modules/nixos/home/programs/tui/bat.nix
user/programs/tui/btop.nix modules/nixos/home/programs/tui/btop.nix
user/programs/tui/default.nix modules/nixos/home/programs/tui/default.nix
user/programs/tui/gitui.nix modules/nixos/home/programs/tui/gitui.nix
user/programs/tui/helix.nix modules/nixos/home/programs/tui/helix.nix
user/programs/tui/lazygit.nix modules/nixos/home/programs/tui/lazygit.nix
user/programs/tui/ncmpcpp.nix modules/nixos/home/programs/tui/ncmpcpp.nix
user/programs/tui/yazi.nix modules/nixos/home/programs/tui/yazi.nix
user/scripts/default.nix modules/nixos/home/scripts/default.nix
user/scripts/spotdl.nix modules/nixos/home/scripts/spotdl.nix
user/services/default.nix modules/nixos/home/services/default.nix
user/services/gammastep.nix modules/nixos/home/services/gammastep.nix
user/services/mpd.nix modules/nixos/home/services/mpd.nix
user/system/default.nix modules/nixos/home/system/default.nix
user/system/env.nix modules/nixos/home/system/env.nix
user/system/xdg.nix modules/nixos/home/system/xdg.nix
user/themes/catppuccin.nix modules/nixos/home/themes/catppuccin.nix
user/themes/default.nix modules/nixos/home/themes/default.nix
user/themes/gtk.nix modules/nixos/home/themes/gtk.nix
user/themes/qt.nix modules/nixos/home/themes/qt.nix
user/themes/stylix.nix modules/nixos/home/themes/stylix.nix