From 8353554315564b89dfe27d5130080ed04a0a65ad Mon Sep 17 00:00:00 2001 From: Linnnus Date: Sat, 21 Dec 2024 15:47:33 +0100 Subject: Move to a profile-based configuration where common This patch makes it so common configuration is now located in shared/ and each host basically just becomes a bunch of import statements. The exception here is host-specific configuration like the `*.linus.onl` that live inside `hosts/ahmed/`. Specifically I have: - moved common configuration `shared/{nixos,home-manager,nix-darwin}`. - moved `hosts/common.nix` to `shared/nixos/common-{nix,shell}-settings.nix`. - split `hosts/muhammed/{dev-utils,neovim}` into per-language configuration. This patch was done in preparation for the arrival of a new host, which will need to share a lot of configuration with Muhammed. --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index a077538..8774c82 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,6 @@ Most files also contain a little comment at the top, explaining what it does. * `/hosts/ahmed/`: Mediocre home-server which runs most of my self-hosted services. * `/hosts/muhammed/`: My personal laptop used for development. * `/hosts/fatima/`: NAS - * `/hosts/common.nix`: Common configuration options shared by all hosts. - Every `configuration.nix` imports this file. It contains basic stuff like - making `zsh` the default shell. -* `/home/`: Contains the part of my [home-manager] configuration that is common - to all hosts. This includes basic stuff like `zsh` plugins. It is matched by - `/hosts//home` which contains host-specific home-manager configuration. * `/modules/`: Contains reusable modules that are configurable using [NixOS's module system][mod-sys] and are exported for other consumers via `flake.nix`. * `/modules/nixos/`: Every subdirectory in this directory contains a NixOS @@ -33,9 +27,11 @@ Most files also contain a little comment at the top, explaining what it does. versions and fix bugs used in the repo. These are exported as `outputs.overlays.modifications` in `flake.nix`. * `/pkgs/`: Contains Nix packages which I haven't upstreamed into `nixpkgs` for - some reason. `/pkgs/default.nix` lists out every package. These are also + some reason. `/overlays/additions.nix` lists out every package. These are also exported in `flake.nix`. An overlay that adds all new packages is also available as `outputs.overlays.additions`. +* `/shared/`: This can somewhat be thought of like `nixos/modules/profiles` in + nixpkgs; bits of configuration which are imported to be used. * `/secrets`: All files which can't be added to the world-readable Nix-store are managed by [agenix]. * `/secrets/secrets.nix`: The only Nix file which isn't (indirectly) imported -- cgit v1.2.3