From cceae6c63cef187c9544b58990c6049016eb90fe Mon Sep 17 00:00:00 2001 From: oddlama Date: Sat, 25 May 2024 17:56:30 +0200 Subject: [PATCH] refactor: split "real" modules and "config" modules --- README.md | 14 +++---- STRUCTURE.md | 26 ++++++------ {modules/config => config}/boot.nix | 0 config/default.nix | 42 +++++++++++++++++++ {modules/optional => config}/dev/default.nix | 0 .../optional => config}/dev/documentation.nix | 0 {modules/optional => config}/dev/embedded.nix | 0 {modules/optional => config}/dev/yubikey.nix | 0 .../optional => config}/graphical/default.nix | 0 .../optional => config}/graphical/fonts.nix | 0 .../optional => config}/graphical/steam.nix | 0 .../optional => config}/graphical/wayland.nix | 0 .../optional => config}/graphical/xserver.nix | 0 .../hardware/bluetooth.nix | 0 .../hardware/hetzner-cloud.nix | 0 .../optional => config}/hardware/intel.nix | 0 .../optional => config}/hardware/nvidia.nix | 0 .../hardware/odroid-n2plus.nix | 1 - .../optional => config}/hardware/physical.nix | 0 {modules/config => config}/home-manager.nix | 0 {modules/config => config}/impermanence.nix | 0 {modules/config => config}/inputrc.nix | 0 {modules/config => config}/issue.nix | 0 {modules/config => config}/net.nix | 0 {modules/config => config}/nftables.nix | 0 {modules/config => config}/nix.nix | 0 {modules => config}/optional/initrd-ssh.nix | 0 {modules => config}/optional/laptop.nix | 0 {modules => config}/optional/sound.nix | 0 {modules => config}/optional/zfs.nix | 0 {modules/config => config}/resolved.nix | 0 {modules/config => config}/secrets.nix | 2 +- {modules/config => config}/ssh.nix | 0 {modules/config => config}/system.nix | 0 {modules/config => config}/topology.nix | 0 {modules/config => config}/users.nix | 0 hosts/envoy/default.nix | 9 ++-- hosts/kroma/default.nix | 21 +++++----- hosts/nom/default.nix | 20 +++++---- hosts/sentinel/default.nix | 9 ++-- hosts/sire/default.nix | 12 +++--- hosts/ward/default.nix | 12 +++--- hosts/zackbiene/default.nix | 10 ++--- modules/default.nix | 34 +-------------- users/config/default.nix | 13 ++++++ users/{modules => }/config/htop.nix | 0 users/{modules => }/config/impermanence.nix | 0 users/{modules => }/config/neovim.nix | 0 users/{modules => }/config/shell/default.nix | 0 .../config/shell/nushell/config.nu | 0 .../config/shell/nushell/default.nix | 0 .../{modules => }/config/shell/nushell/env.nu | 0 .../config/shell/starship-module.nix | 0 users/{modules => }/config/shell/starship.nix | 0 .../config/shell/zsh/default.nix | 0 users/{modules => }/config/shell/zsh/zshrc | 0 users/{modules => }/config/utils.nix | 0 users/modules/default.nix | 10 +---- users/myuser/default.nix | 2 +- users/root/default.nix | 2 +- 60 files changed, 126 insertions(+), 113 deletions(-) rename {modules/config => config}/boot.nix (100%) create mode 100644 config/default.nix rename {modules/optional => config}/dev/default.nix (100%) rename {modules/optional => config}/dev/documentation.nix (100%) rename {modules/optional => config}/dev/embedded.nix (100%) rename {modules/optional => config}/dev/yubikey.nix (100%) rename {modules/optional => config}/graphical/default.nix (100%) rename {modules/optional => config}/graphical/fonts.nix (100%) rename {modules/optional => config}/graphical/steam.nix (100%) rename {modules/optional => config}/graphical/wayland.nix (100%) rename {modules/optional => config}/graphical/xserver.nix (100%) rename {modules/optional => config}/hardware/bluetooth.nix (100%) rename {modules/optional => config}/hardware/hetzner-cloud.nix (100%) rename {modules/optional => config}/hardware/intel.nix (100%) rename {modules/optional => config}/hardware/nvidia.nix (100%) rename {modules/optional => config}/hardware/odroid-n2plus.nix (96%) rename {modules/optional => config}/hardware/physical.nix (100%) rename {modules/config => config}/home-manager.nix (100%) rename {modules/config => config}/impermanence.nix (100%) rename {modules/config => config}/inputrc.nix (100%) rename {modules/config => config}/issue.nix (100%) rename {modules/config => config}/net.nix (100%) rename {modules/config => config}/nftables.nix (100%) rename {modules/config => config}/nix.nix (100%) rename {modules => config}/optional/initrd-ssh.nix (100%) rename {modules => config}/optional/laptop.nix (100%) rename {modules => config}/optional/sound.nix (100%) rename {modules => config}/optional/zfs.nix (100%) rename {modules/config => config}/resolved.nix (100%) rename {modules/config => config}/secrets.nix (97%) rename {modules/config => config}/ssh.nix (100%) rename {modules/config => config}/system.nix (100%) rename {modules/config => config}/topology.nix (100%) rename {modules/config => config}/users.nix (100%) create mode 100644 users/config/default.nix rename users/{modules => }/config/htop.nix (100%) rename users/{modules => }/config/impermanence.nix (100%) rename users/{modules => }/config/neovim.nix (100%) rename users/{modules => }/config/shell/default.nix (100%) rename users/{modules => }/config/shell/nushell/config.nu (100%) rename users/{modules => }/config/shell/nushell/default.nix (100%) rename users/{modules => }/config/shell/nushell/env.nu (100%) rename users/{modules => }/config/shell/starship-module.nix (100%) rename users/{modules => }/config/shell/starship.nix (100%) rename users/{modules => }/config/shell/zsh/default.nix (100%) rename users/{modules => }/config/shell/zsh/zshrc (100%) rename users/{modules => }/config/utils.nix (100%) diff --git a/README.md b/README.md index d5db34b..a561706 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,12 @@ that most people would have. The configurations are sorted into three categories | ~~~~~~~~~~~~ | Program | Source | Description ---|---|---|--- -🐚 Shell | ZSH & Starship | [Link](./users/modules/config/shell) | ZSH configuration with FZF, starship prompt, sqlite history and histdb-skim for fancy CtrlR +🐚 Shell | ZSH & Starship | [Link](./users/config/shell) | ZSH configuration with FZF, starship prompt, sqlite history and histdb-skim for fancy CtrlR 🖥️ Terminal | Kitty | [Link](./users/myuser/graphical/kitty.nix) | Terminal configuration with nerdfonts and history CtrlShiftH to view scrollback buffer in neovim 🪟 WM | i3 | [Link](./users/myuser/graphical/i3.nix) | Tiling window manager, heavily customized to my personal preferences 🌐 Browser | Firefox | [Link](./users/myuser/graphical/firefox.nix) | Firefox with many privacy settings and betterfox 🖊️ Editor | Neovim | [Link](./users/myuser/neovim) | Extensive neovim configuration, made with nixvim -📜 Manpager | Neovim | [Link](./users/modules/config/manpager.nix) | Isolated neovim as manpager via nixvim +📜 Manpager | Neovim | [Link](./users/config/manpager.nix) | Isolated neovim as manpager via nixvim 📷 Screenshots | Flameshot | [Link](./users/myuser/graphical/flameshot.nix) | Screenshot tool with custom [QR code detection](./pkgs/scripts/screenshot-area-scan-qr.nix) and [OCR to clipboard](./pkgs/scripts/screenshot-area.nix) 🗨️ Notifications | wired-notify | [Link](./users/myuser/graphical/wired-notify.nix) | Notification daemon with a very customized layout and color scheme 🎮 Gaming | Steam & Bottles | [Link](./users/myuser/graphical/games) | Setup for gaming @@ -74,7 +74,7 @@ that most people would have. The configurations are sorted into three categories | ~~~~~~~~~~~~ | 💎 | Source | Description ---|---|---|--- -🗑️ Impermanence | – | [Link](./modules/config/impermanence.nix) | Only persist what is necessary. ZFS rollback on boot. Most configuration is will be next to the respective service / program configuration. +🗑️ Impermanence | – | [Link](./config/impermanence.nix) | Only persist what is necessary. ZFS rollback on boot. Most configuration is will be next to the respective service / program configuration. - reverse proxy with wireguard tunnel - restic @@ -89,7 +89,7 @@ that most people would have. The configurations are sorted into three categories ## Structure If you are interested in parts of my configuration, -you probably want to examine the contents of `users/`, `modules/` and `hosts/`. +you probably want to examine the contents of `users/`, `config/`, `modules/` and `hosts/`. Also, a lot of interesting modules have been moved to [nixos-extra-modules](https://github.com/oddlama/nixos-extra-modules), a separate repository specifically for reusable stuff. The full structure of this flake is described in [STRUCTURE.md](./STRUCTURE.md), but here's a quick breakdown of the what you will find where. @@ -98,9 +98,9 @@ but here's a quick breakdown of the what you will find where. |---|---| `hosts/` | top-level configuration for `` `lib/` | library functions overlayed on top of `nixpkgs.lib` -`modules/config/` | global configuration for all hosts -`modules/optional/` | optional configuration included by hosts -`modules/*` | classical reusable configuration modules +`config/` | global configuration for all hosts +`config/optional/` | optional configuration included by hosts +`modules/` | classical reusable configuration modules `nix/` | library functions and flake plumbing `pkgs/` | Custom packages and scripts `secrets/` | Global secrets and age identities diff --git a/STRUCTURE.md b/STRUCTURE.md index 946358e..2019372 100644 --- a/STRUCTURE.md +++ b/STRUCTURE.md @@ -1,15 +1,20 @@ ## Structure -If you are interested in parts of my configuration, you probably want to examine the contents of `users/`, `modules/` and `hosts/`. +If you are interested in parts of my configuration, you probably want to examine the contents of `users/`, `config/`, `modules/` and `hosts/`. Make sure to utilize the github search if you know what you need! +- `config/` contains common configuration that I use on all of my host + and which is applied by default. + - `config/optional/` contains optional configuration that is only needed for some hosts, + and which should be included explicitly by hosts that require it. + - `hosts/` contains the top-level configuration for ``. Follow the imports from there to see what it entails. By convention I place secrets related to this host in the `secrets/` subfolder, but any host could technically use them. Especialy important files in this folder are: - `host.pub` This host's public key (retrieved after initial setup). Used to rekey secrets so the host can access them at runtime. - - `local.nix.age` Repository-wide local secrets. Decrypted on import, see `modules/repo/secrets.nix` for more information. + - `local.nix.age` Repository-wide local secrets. Decrypted on import, see `modules/secrets.nix` for more information. Some hosts define guests that run as containerized or virtualized guests. Their configuration is usually just a single file stored in `guests/.nix`. Their secrets are usually stored in a subfolder of the host's secrets folder. @@ -17,18 +22,11 @@ Make sure to utilize the github search if you know what you need! - `lib/` contains extra library functions that are needed throughout the config. - `modules/` contains modularized configuration. If you are interested in reusable parts of - my configuration, this is probably the folder you are looking for. Unless stated otherwise, - all of these will be regular reusable modules like those you would find in `nixpkgs/nixos/modules`, - and the tree of all relevant modules is included via `modules/default.nix`. - - `modules/config/` contains configuration that is I use across all my host and is applied by default. - These just add configuration unconditionally and don't expose any further options. - - `modules/optional/` contains configuration that is only needed sometimes, and which should - be included explicitly by hosts that require it. - - `modules/*` contains regular modules and meta-modules that simplify the option interface of existing options. - I use this for stuff that I don't need on all my hosts and that may require different settings - for each host while sharing a common basis. - Some of these are "meta" in the sense that they depend on their own definitions on multiple hosts (wireguard). - These are probably as opinionated as stuff in `modules/config/` but may be a little more general. + my configuration, this is probably the folder you are looking for. These will be regular + reusable modules like those you would find in `nixpkgs/nixos/modules`. + + Some of these simplify the option interface of existing options, others add new funtionality + to existing modules. - `nix/` library functions and flake plumbing - `generate-installer-package.nix` Helper package that that will be available in our iso images. This provides the `install-system` command that will do a full install including partitioning. diff --git a/modules/config/boot.nix b/config/boot.nix similarity index 100% rename from modules/config/boot.nix rename to config/boot.nix diff --git a/config/default.nix b/config/default.nix new file mode 100644 index 0000000..3f63bf3 --- /dev/null +++ b/config/default.nix @@ -0,0 +1,42 @@ +{inputs, ...}: { + disabledModules = [ + "services/security/kanidm.nix" + "services/networking/netbird.nix" + ]; + + imports = [ + inputs.agenix-rekey.nixosModules.default + inputs.agenix.nixosModules.default + inputs.disko.nixosModules.disko + inputs.elewrap.nixosModules.default + inputs.home-manager.nixosModules.default + inputs.impermanence.nixosModules.impermanence + inputs.nix-topology.nixosModules.default + inputs.nixos-extra-modules.nixosModules.default + inputs.nixos-nftables-firewall.nixosModules.default + + ../modules + + ../users/root + + ./boot.nix + ./home-manager.nix + ./impermanence.nix + ./inputrc.nix + ./issue.nix + ./net.nix + ./nftables.nix + ./nix.nix + ./resolved.nix + ./secrets.nix + ./ssh.nix + ./system.nix + ./topology.nix + ./users.nix + ]; + + nixpkgs.overlays = [ + inputs.nixvim.overlays.default + inputs.wired-notify.overlays.default + ]; +} diff --git a/modules/optional/dev/default.nix b/config/dev/default.nix similarity index 100% rename from modules/optional/dev/default.nix rename to config/dev/default.nix diff --git a/modules/optional/dev/documentation.nix b/config/dev/documentation.nix similarity index 100% rename from modules/optional/dev/documentation.nix rename to config/dev/documentation.nix diff --git a/modules/optional/dev/embedded.nix b/config/dev/embedded.nix similarity index 100% rename from modules/optional/dev/embedded.nix rename to config/dev/embedded.nix diff --git a/modules/optional/dev/yubikey.nix b/config/dev/yubikey.nix similarity index 100% rename from modules/optional/dev/yubikey.nix rename to config/dev/yubikey.nix diff --git a/modules/optional/graphical/default.nix b/config/graphical/default.nix similarity index 100% rename from modules/optional/graphical/default.nix rename to config/graphical/default.nix diff --git a/modules/optional/graphical/fonts.nix b/config/graphical/fonts.nix similarity index 100% rename from modules/optional/graphical/fonts.nix rename to config/graphical/fonts.nix diff --git a/modules/optional/graphical/steam.nix b/config/graphical/steam.nix similarity index 100% rename from modules/optional/graphical/steam.nix rename to config/graphical/steam.nix diff --git a/modules/optional/graphical/wayland.nix b/config/graphical/wayland.nix similarity index 100% rename from modules/optional/graphical/wayland.nix rename to config/graphical/wayland.nix diff --git a/modules/optional/graphical/xserver.nix b/config/graphical/xserver.nix similarity index 100% rename from modules/optional/graphical/xserver.nix rename to config/graphical/xserver.nix diff --git a/modules/optional/hardware/bluetooth.nix b/config/hardware/bluetooth.nix similarity index 100% rename from modules/optional/hardware/bluetooth.nix rename to config/hardware/bluetooth.nix diff --git a/modules/optional/hardware/hetzner-cloud.nix b/config/hardware/hetzner-cloud.nix similarity index 100% rename from modules/optional/hardware/hetzner-cloud.nix rename to config/hardware/hetzner-cloud.nix diff --git a/modules/optional/hardware/intel.nix b/config/hardware/intel.nix similarity index 100% rename from modules/optional/hardware/intel.nix rename to config/hardware/intel.nix diff --git a/modules/optional/hardware/nvidia.nix b/config/hardware/nvidia.nix similarity index 100% rename from modules/optional/hardware/nvidia.nix rename to config/hardware/nvidia.nix diff --git a/modules/optional/hardware/odroid-n2plus.nix b/config/hardware/odroid-n2plus.nix similarity index 96% rename from modules/optional/hardware/odroid-n2plus.nix rename to config/hardware/odroid-n2plus.nix index d5a9de9..962a941 100644 --- a/modules/optional/hardware/odroid-n2plus.nix +++ b/config/hardware/odroid-n2plus.nix @@ -1,7 +1,6 @@ {inputs, ...}: { imports = [ inputs.nixos-hardware.nixosModules.common-pc-ssd - ./physical.nix ]; boot.initrd.availableKernelModules = [ diff --git a/modules/optional/hardware/physical.nix b/config/hardware/physical.nix similarity index 100% rename from modules/optional/hardware/physical.nix rename to config/hardware/physical.nix diff --git a/modules/config/home-manager.nix b/config/home-manager.nix similarity index 100% rename from modules/config/home-manager.nix rename to config/home-manager.nix diff --git a/modules/config/impermanence.nix b/config/impermanence.nix similarity index 100% rename from modules/config/impermanence.nix rename to config/impermanence.nix diff --git a/modules/config/inputrc.nix b/config/inputrc.nix similarity index 100% rename from modules/config/inputrc.nix rename to config/inputrc.nix diff --git a/modules/config/issue.nix b/config/issue.nix similarity index 100% rename from modules/config/issue.nix rename to config/issue.nix diff --git a/modules/config/net.nix b/config/net.nix similarity index 100% rename from modules/config/net.nix rename to config/net.nix diff --git a/modules/config/nftables.nix b/config/nftables.nix similarity index 100% rename from modules/config/nftables.nix rename to config/nftables.nix diff --git a/modules/config/nix.nix b/config/nix.nix similarity index 100% rename from modules/config/nix.nix rename to config/nix.nix diff --git a/modules/optional/initrd-ssh.nix b/config/optional/initrd-ssh.nix similarity index 100% rename from modules/optional/initrd-ssh.nix rename to config/optional/initrd-ssh.nix diff --git a/modules/optional/laptop.nix b/config/optional/laptop.nix similarity index 100% rename from modules/optional/laptop.nix rename to config/optional/laptop.nix diff --git a/modules/optional/sound.nix b/config/optional/sound.nix similarity index 100% rename from modules/optional/sound.nix rename to config/optional/sound.nix diff --git a/modules/optional/zfs.nix b/config/optional/zfs.nix similarity index 100% rename from modules/optional/zfs.nix rename to config/optional/zfs.nix diff --git a/modules/config/resolved.nix b/config/resolved.nix similarity index 100% rename from modules/config/resolved.nix rename to config/resolved.nix diff --git a/modules/config/secrets.nix b/config/secrets.nix similarity index 97% rename from modules/config/secrets.nix rename to config/secrets.nix index 5a80611..6afbbd3 100644 --- a/modules/config/secrets.nix +++ b/config/secrets.nix @@ -9,7 +9,7 @@ local = config.node.secretsDir + "/local.nix.age"; in { - global = ../../secrets/global.nix.age; + global = ../secrets/global.nix.age; } // lib.optionalAttrs (lib.pathExists local) {inherit local;}; diff --git a/modules/config/ssh.nix b/config/ssh.nix similarity index 100% rename from modules/config/ssh.nix rename to config/ssh.nix diff --git a/modules/config/system.nix b/config/system.nix similarity index 100% rename from modules/config/system.nix rename to config/system.nix diff --git a/modules/config/topology.nix b/config/topology.nix similarity index 100% rename from modules/config/topology.nix rename to config/topology.nix diff --git a/modules/config/users.nix b/config/users.nix similarity index 100% rename from modules/config/users.nix rename to config/users.nix diff --git a/hosts/envoy/default.nix b/hosts/envoy/default.nix index 756d34f..ca50fcb 100644 --- a/hosts/envoy/default.nix +++ b/hosts/envoy/default.nix @@ -1,10 +1,9 @@ {nodes, ...}: { imports = [ - ../../modules/optional/hardware/hetzner-cloud.nix - - ../../modules - ../../modules/optional/initrd-ssh.nix - ../../modules/optional/zfs.nix + ../../config + ../../config/hardware/hetzner-cloud.nix + ../../config/optional/initrd-ssh.nix + ../../config/optional/zfs.nix ./acme.nix ./fs.nix diff --git a/hosts/kroma/default.nix b/hosts/kroma/default.nix index 0db6658..8b1bce0 100644 --- a/hosts/kroma/default.nix +++ b/hosts/kroma/default.nix @@ -13,17 +13,18 @@ inputs.nixos-hardware.nixosModules.common-pc-hdd inputs.nixos-hardware.nixosModules.common-pc-ssd - ../../modules/optional/hardware/physical.nix - ../../modules/optional/hardware/nvidia.nix - ../../modules/optional/hardware/bluetooth.nix + ../../config - ../../modules - ../../modules/optional/initrd-ssh.nix - ../../modules/optional/dev - ../../modules/optional/graphical - ../../modules/optional/laptop.nix - ../../modules/optional/sound.nix - ../../modules/optional/zfs.nix + ../../config/hardware/physical.nix + ../../config/hardware/nvidia.nix + ../../config/hardware/bluetooth.nix + + ../../config/dev + ../../config/graphical + ../../config/optional/initrd-ssh.nix + ../../config/optional/laptop.nix + ../../config/optional/sound.nix + ../../config/optional/zfs.nix ../../users/myuser diff --git a/hosts/nom/default.nix b/hosts/nom/default.nix index b137a5c..9b8e37b 100644 --- a/hosts/nom/default.nix +++ b/hosts/nom/default.nix @@ -8,16 +8,18 @@ inputs.nixos-hardware.nixosModules.common-gpu-intel inputs.nixos-hardware.nixosModules.common-pc-laptop inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd - ../../modules/optional/hardware/intel.nix - ../../modules/optional/hardware/physical.nix - ../../modules - ../../modules/optional/initrd-ssh.nix - ../../modules/optional/dev - ../../modules/optional/graphical - ../../modules/optional/laptop.nix - ../../modules/optional/sound.nix - ../../modules/optional/zfs.nix + ../../config + + ../../config/hardware/intel.nix + ../../config/hardware/physical.nix + + ../../config/dev + ../../config/graphical + ../../config/optional/initrd-ssh.nix + ../../config/optional/laptop.nix + ../../config/optional/sound.nix + ../../config/optional/zfs.nix ../../users/myuser diff --git a/hosts/sentinel/default.nix b/hosts/sentinel/default.nix index ab86487..b7d4fd7 100644 --- a/hosts/sentinel/default.nix +++ b/hosts/sentinel/default.nix @@ -4,11 +4,10 @@ ... }: { imports = [ - ../../modules/optional/hardware/hetzner-cloud.nix - - ../../modules - ../../modules/optional/initrd-ssh.nix - ../../modules/optional/zfs.nix + ../../config + ../../config/hardware/hetzner-cloud.nix + ../../config/optional/initrd-ssh.nix + ../../config/optional/zfs.nix ./acme.nix ./coturn.nix diff --git a/hosts/sire/default.nix b/hosts/sire/default.nix index 192d909..431d1e3 100644 --- a/hosts/sire/default.nix +++ b/hosts/sire/default.nix @@ -9,12 +9,12 @@ imports = [ inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-pc-ssd - ../../modules/optional/hardware/intel.nix - ../../modules/optional/hardware/physical.nix - ../../modules - ../../modules/optional/initrd-ssh.nix - ../../modules/optional/zfs.nix + ../../config + ../../config/hardware/intel.nix + ../../config/hardware/physical.nix + ../../config/optional/initrd-ssh.nix + ../../config/optional/zfs.nix ./fs.nix ./net.nix @@ -72,7 +72,7 @@ dataset = "bunker/paperless"; }; modules = [ - ../../modules + ../../config ./guests/common.nix ./guests/${guestName}.nix { diff --git a/hosts/ward/default.nix b/hosts/ward/default.nix index f7ee0f3..b4e77b0 100644 --- a/hosts/ward/default.nix +++ b/hosts/ward/default.nix @@ -9,12 +9,12 @@ imports = [ inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-pc-ssd - ../../modules/optional/hardware/intel.nix - ../../modules/optional/hardware/physical.nix - ../../modules - ../../modules/optional/initrd-ssh.nix - ../../modules/optional/zfs.nix + ../../config + ../../config/hardware/intel.nix + ../../config/hardware/physical.nix + ../../config/optional/initrd-ssh.nix + ../../config/optional/zfs.nix ./fs.nix ./net.nix @@ -59,7 +59,7 @@ dataset = "safe/guests/${guestName}"; }; modules = [ - ../../modules + ../../config ./guests/common.nix ./guests/${guestName}.nix { diff --git a/hosts/zackbiene/default.nix b/hosts/zackbiene/default.nix index 47c04f8..a26a573 100644 --- a/hosts/zackbiene/default.nix +++ b/hosts/zackbiene/default.nix @@ -8,11 +8,11 @@ wardWebProxyCfg = nodes.ward-web-proxy.config; in { imports = [ - ../../modules/optional/hardware/odroid-n2plus.nix - - ../../modules - ../../modules/optional/initrd-ssh.nix - ../../modules/optional/zfs.nix + ../../config + ../../config/hardware/odroid-n2plus.nix + ../../config/hardware/physical.nix + ../../config/optional/initrd-ssh.nix + ../../config/optional/zfs.nix #./esphome.nix ./fs.nix diff --git a/modules/default.nix b/modules/default.nix index 9e62cf3..d5e4270 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,37 +1,10 @@ -{inputs, ...}: { +{ disabledModules = [ "services/security/kanidm.nix" "services/networking/netbird.nix" ]; imports = [ - inputs.agenix-rekey.nixosModules.default - inputs.agenix.nixosModules.default - inputs.disko.nixosModules.disko - inputs.elewrap.nixosModules.default - inputs.home-manager.nixosModules.default - inputs.impermanence.nixosModules.impermanence - inputs.nix-topology.nixosModules.default - inputs.nixos-extra-modules.nixosModules.default - inputs.nixos-nftables-firewall.nixosModules.default - - ../users/root - - ./config/boot.nix - ./config/home-manager.nix - ./config/impermanence.nix - ./config/inputrc.nix - ./config/issue.nix - ./config/net.nix - ./config/nftables.nix - ./config/nix.nix - ./config/resolved.nix - ./config/secrets.nix - ./config/ssh.nix - ./config/system.nix - ./config/topology.nix - ./config/users.nix - ./acme-wildcard.nix ./backups.nix ./deterministic-ids.nix @@ -45,9 +18,4 @@ ./secrets.nix ./telegraf.nix ]; - - nixpkgs.overlays = [ - inputs.nixvim.overlays.default - inputs.wired-notify.overlays.default - ]; } diff --git a/users/config/default.nix b/users/config/default.nix new file mode 100644 index 0000000..9e0ae00 --- /dev/null +++ b/users/config/default.nix @@ -0,0 +1,13 @@ +{ + imports = [ + ../modules + + ./htop.nix + ./impermanence.nix + ./neovim.nix + ./shell + ./utils.nix + ]; + + xdg.configFile."nixpkgs/config.nix".text = "{ allowUnfree = true; }"; +} diff --git a/users/modules/config/htop.nix b/users/config/htop.nix similarity index 100% rename from users/modules/config/htop.nix rename to users/config/htop.nix diff --git a/users/modules/config/impermanence.nix b/users/config/impermanence.nix similarity index 100% rename from users/modules/config/impermanence.nix rename to users/config/impermanence.nix diff --git a/users/modules/config/neovim.nix b/users/config/neovim.nix similarity index 100% rename from users/modules/config/neovim.nix rename to users/config/neovim.nix diff --git a/users/modules/config/shell/default.nix b/users/config/shell/default.nix similarity index 100% rename from users/modules/config/shell/default.nix rename to users/config/shell/default.nix diff --git a/users/modules/config/shell/nushell/config.nu b/users/config/shell/nushell/config.nu similarity index 100% rename from users/modules/config/shell/nushell/config.nu rename to users/config/shell/nushell/config.nu diff --git a/users/modules/config/shell/nushell/default.nix b/users/config/shell/nushell/default.nix similarity index 100% rename from users/modules/config/shell/nushell/default.nix rename to users/config/shell/nushell/default.nix diff --git a/users/modules/config/shell/nushell/env.nu b/users/config/shell/nushell/env.nu similarity index 100% rename from users/modules/config/shell/nushell/env.nu rename to users/config/shell/nushell/env.nu diff --git a/users/modules/config/shell/starship-module.nix b/users/config/shell/starship-module.nix similarity index 100% rename from users/modules/config/shell/starship-module.nix rename to users/config/shell/starship-module.nix diff --git a/users/modules/config/shell/starship.nix b/users/config/shell/starship.nix similarity index 100% rename from users/modules/config/shell/starship.nix rename to users/config/shell/starship.nix diff --git a/users/modules/config/shell/zsh/default.nix b/users/config/shell/zsh/default.nix similarity index 100% rename from users/modules/config/shell/zsh/default.nix rename to users/config/shell/zsh/default.nix diff --git a/users/modules/config/shell/zsh/zshrc b/users/config/shell/zsh/zshrc similarity index 100% rename from users/modules/config/shell/zsh/zshrc rename to users/config/shell/zsh/zshrc diff --git a/users/modules/config/utils.nix b/users/config/utils.nix similarity index 100% rename from users/modules/config/utils.nix rename to users/config/utils.nix diff --git a/users/modules/default.nix b/users/modules/default.nix index 324ab24..e454792 100644 --- a/users/modules/default.nix +++ b/users/modules/default.nix @@ -1,14 +1,6 @@ -{...}: { +{ imports = [ ./uid.nix ./secrets.nix - - ./config/htop.nix - ./config/impermanence.nix - ./config/neovim.nix - ./config/shell - ./config/utils.nix ]; - - xdg.configFile."nixpkgs/config.nix".text = "{ allowUnfree = true; }"; } diff --git a/users/myuser/default.nix b/users/myuser/default.nix index 1409256..94b57d9 100644 --- a/users/myuser/default.nix +++ b/users/myuser/default.nix @@ -30,7 +30,7 @@ in home-manager.users.${myuser} = { imports = [ - ../modules + ../config ./dev ./graphical ./neovim diff --git a/users/root/default.nix b/users/root/default.nix index b7d2d40..7210b29 100644 --- a/users/root/default.nix +++ b/users/root/default.nix @@ -15,7 +15,7 @@ home-manager.users.root = { imports = [ - ../modules + ../config ]; home = {