feat(nixos): add multi-arch support and refactor system configs

- add aarch64-linux to supported systems (flake + pkgs)
- refactor host definitions into tty/desktop/laptop configurations
- introduce sharedModules to reduce duplication
- split system modules into base, gui, and laptop groups
- add headless (tty) configuration

feat(fish): add Ctrl+Delete and Alt+Delete bindings
- Ctrl+Delete → kill-word
- Alt+Delete → kill-token

chore(hosts): remove explicit hostname from aesthetic

chore(services): remove forced disable of speechd
This commit is contained in:
2026-04-14 18:47:19 +02:00
parent cd1d6de848
commit 89022e0d50
9 changed files with 3552 additions and 44 deletions
+34 -22
View File
@@ -2,32 +2,44 @@
self,
inputs,
...
}: {
flake.nixosConfigurations = let
# shorten paths
inherit (inputs.nixpkgs.lib) nixosSystem;
mod = "${self}/system";
home = "${self}/home";
}: let
# shorten paths
inherit (inputs.nixpkgs.lib) nixosSystem;
mod = "${self}/system";
home = "${self}/home";
# get the basic config to build on top of
inherit (import "${self}/system") desktop laptop;
# get the basic config to build on top of
inherit (import "${self}/system") tty desktop laptop;
# get these into the module system
specialArgs = {inherit inputs self;};
in {
aesthetic = nixosSystem {
# get these into the module system
specialArgs = {inherit inputs self;};
# shared modules for all configurations
sharedModules = [
./aesthetic
"${mod}/services/gnome-services.nix"
"${mod}/core/limine.nix"
"${home}"
inputs.agenix.nixosModules.default
];
in {
flake.nixosConfigurations = {
# TTY: desktop headless (no GUI)
tty = nixosSystem {
inherit specialArgs;
modules =
desktop
++ laptop
++ [
./aesthetic
"${mod}/services/gnome-services.nix"
"${mod}/core/limine.nix"
"${home}"
modules = tty ++ sharedModules;
};
inputs.agenix.nixosModules.default
];
# Desktop: desktop with GUI
desktop = nixosSystem {
inherit specialArgs;
modules = desktop ++ sharedModules;
};
# Laptop: laptop with GUI + battery + bluetooth
laptop = nixosSystem {
inherit specialArgs;
modules = laptop ++ sharedModules;
};
};
}