use regular paths for profiles and suites and stuff instead of the horrible mess of attrsets i was generating

This commit is contained in:
xunuwu 2025-05-10 08:20:39 +02:00
parent 530f517d22
commit b9d92a9dc4
10 changed files with 181 additions and 200 deletions

View file

@ -6,19 +6,18 @@
...
} @ inputs: let
mylib = import ./lib nixpkgs.lib;
systemProfiles = mylib.loadTree2 ./sys/profiles;
homeProfiles = mylib.loadTreeInf ./home/profiles;
homeSuites = mylib.loadBranch ./home/suites;
vars = builtins.mapAttrs (_: v: import v) (mylib.loadBranch ./vars);
systemProfiles = ./sys/profiles;
homeProfiles = ./home/profiles;
homeSuites = ./home/suites;
vars = import ./vars;
in
flake-parts.lib.mkFlake {inherit inputs;} {
systems = ["x86_64-linux"];
flake._mylib = mylib; # for debugging :3
flake._vars = vars; # for debugging :3
flake.nixosConfigurations = mylib.loadConfigurations ./sys/machines {
flake.nixosConfigurations = mylib.loadConfigurations ./sys/machines (hostname: {
inherit inputs self systemProfiles homeProfiles homeSuites vars;
};
hostVars = ./vars/${hostname};
});
perSystem = {pkgs, ...}: {
imports = [

View file

@ -4,20 +4,20 @@
pkgs,
...
}: {
imports = with homeProfiles; [
terminal.programs.xdg
terminal.programs.comma
imports = map (x: homeProfiles + x) [
/terminal/programs/xdg.nix
/terminal/programs/comma.nix
editors.nvim
terminal.emulator.foot
/editors/nvim.nix
/terminal/emulator/foot.nix
programs.desktop.default
programs.desktop.sway.default
/programs/desktop/default.nix
/programs/desktop/sway/default.nix
programs.media.mpv
/programs/media/mpv.nix
services.playerctl
services.polkit-agent
/services/playerctl.nix
/services/polkit-agent.nix
];
wayland.windowManager.sway.config.output."HDMI-A-1".scale = "2.0";

View file

@ -5,72 +5,70 @@
homeProfiles,
...
}: {
imports = with homeProfiles; [
./defaults.nix
./outputs.nix
imports =
[
./defaults.nix
./outputs.nix
]
++ (map (x: homeProfiles + x) [
/secrets
secrets.default
/default.nix
default
/terminal/shell/zsh.nix
/terminal/shell/fish.nix
terminal.shell.zsh
terminal.shell.fish
/terminal/programs/xdg.nix
/terminal/programs/direnv.nix
/terminal/programs/tmux.nix
/terminal/programs/comma.nix
/terminal/programs/irssi.nix
/terminal/programs/git.nix
/terminal/programs/github.nix
/terminal/programs/jujutsu.nix
terminal.programs.xdg
terminal.programs.direnv
terminal.programs.tmux
terminal.programs.comma
terminal.programs.irssi
terminal.programs.git
terminal.programs.github
terminal.programs.jujutsu
/editors/nvim.nix
# editors.emacs
editors.nvim
/programs/browsers/firefox/default.nix
/programs/browsers/tor.nix
/programs/browsers/chromium.nix
programs.browsers.firefox.default
programs.browsers.tor
programs.browsers.chromium
/terminal/emulator/foot.nix
# terminal.emulator.wezterm
terminal.emulator.foot
/themes/dark/default.nix
themes.dark.default
# desktop
/programs/desktop/default.nix
/programs/desktop/sway/default.nix
# desktop
programs.desktop.default
programs.desktop.sway.default
# development
/develop/common.nix
/develop/docs.nix
# development
develop.common
develop.docs
/develop/langs/haskell.nix
/develop/langs/go.nix
/develop/langs/rust.nix
/develop/langs/elixir.nix
/develop/langs/nix.nix
/develop/langs/zig.nix
/develop/langs/lua.nix
/develop/langs/c.nix
develop.langs.haskell
develop.langs.go
develop.langs.rust
develop.langs.elixir
# develop.langs.uiua
develop.langs.nix
develop.langs.zig
develop.langs.lua
develop.langs.c
# programs
/programs/misc/discord.nix
/programs/misc/obs.nix
# programs
programs.misc.discord
programs.misc.obs
/programs/music/beets.nix
/programs/music/cmus.nix
programs.music.beets
programs.music.cmus
/programs/media/mpv.nix
programs.media.mpv
# gaming
/programs/games/default.nix
# gaming
programs.games.default
services.playerctl
services.polkit-agent
# services.appusage
];
/services/playerctl.nix
/services/polkit-agent.nix
]);
wayland.windowManager.sway.extraConfig = ''
exec obs --startreplaybuffer --disable-shutdown-check --minimize-to-tray

View file

@ -1,29 +1,10 @@
l: let
b = builtins;
in rec {
loadBranch = branch:
l.mapAttrs' (leaf: _: {
name = l.removeSuffix ".nix" leaf;
value = /${branch}/${leaf};
}) (b.readDir /${branch});
loadTree2 = dir: (l.mapAttrs (branch: _: loadBranch /${dir}/${branch})) (b.readDir dir);
loadTreeInf = dir:
l.mapAttrs' (
name: value: {
name = l.removeSuffix ".nix" name;
value =
if value == "directory"
then loadTreeInf (dir + /${name})
else (dir + /${name});
}
) (b.readDir dir);
loadConfigurations = dir: specialArgs:
in {
loadConfigurations = dir: specialArgsFromHost:
(b.mapAttrs (name: _:
l.nixosSystem {
modules = [(dir + /${name})];
inherit specialArgs;
specialArgs = specialArgsFromHost name;
})) (b.readDir dir);
}

View file

@ -6,50 +6,50 @@
lib,
...
}: {
imports = with systemProfiles; [
inputs.hardware.nixosModules.common-cpu-intel
inputs.vpn-confinement.nixosModules.default
inputs.nix-minecraft.nixosModules.minecraft-servers
imports =
[
inputs.hardware.nixosModules.common-cpu-intel
inputs.vpn-confinement.nixosModules.default
inputs.nix-minecraft.nixosModules.minecraft-servers
./hardware.nix
./lab
./roblox-playtime.nix
./desktop.nix
./hardware.nix
./lab
./roblox-playtime.nix
./desktop.nix
secrets.default
secrets.hopper
{
home-manager = {
backupFileExtension = "hm-backup";
users.desktop.imports = [
(homeSuites + /hopper)
{home.stateVersion = "24.11";}
];
extraSpecialArgs = specialArgs;
};
}
]
++ (map (x: systemProfiles + x) [
/secrets/default.nix
/secrets/hopper/default.nix
programs.home-manager
/programs/home-manager.nix
core.security
core.locale
core.tools
core.ssh
core.deploy
/core/security.nix
/core/locale.nix
/core/tools.nix
/core/ssh.nix
/core/deploy.nix
hardware.graphics
hardware.steam-hardware
hardware.bluetooth
/hardware/graphics.nix
/hardware/steam-hardware.nix
/hardware/bluetooth.nix
nix.default # TODO slim this down
/nix/default.nix # TODO slim this down
network.tailscale
network.avahi
network.networkd
# services.syncthing # TODO make syncthing not rely on having "xun" user
{
home-manager = {
backupFileExtension = "hm-backup";
users.desktop.imports = [
homeSuites.hopper
{home.stateVersion = "24.11";}
];
extraSpecialArgs = specialArgs;
};
}
];
/network/tailscale.nix
/network/avahi.nix
/network/networkd.nix
]);
nixpkgs.config = {
allowUnfreePredicate = pkg:

View file

@ -3,7 +3,7 @@
vars,
...
}: let
inherit (vars.common) domain;
inherit (vars) domain;
in {
security.acme = {
acceptTerms = true;

View file

@ -4,7 +4,7 @@
inputs,
...
}: let
inherit (vars.common) domain;
inherit (vars) domain;
caddyPort = 8336;
bridge = config.vpnNamespaces."wg".bridgeAddress;
in {

View file

@ -3,7 +3,7 @@
vars,
...
}: let
inherit (vars.common) domain;
inherit (vars) domain;
bridge = config.vpnNamespaces."wg".bridgeAddress;
in {
services.homepage-dashboard = {

View file

@ -7,87 +7,90 @@
homeSuites,
...
}: {
imports = with systemProfiles; [
./hardware.nix
./hibernate-boot.nix
./samba-mount.nix
./wireguard.nix
./restic-server.nix
./autologin.nix
# imports = with systemProfiles; [
imports =
[
./hardware.nix
./hibernate-boot.nix
./samba-mount.nix
./wireguard.nix
./restic-server.nix
./autologin.nix
inputs.stylix.nixosModules.stylix
inputs.stylix.nixosModules.stylix
secrets.default
secrets.nixdesk
{
home-manager = {
backupFileExtension = "hm-backup";
users.xun.imports = [
(homeSuites + /nixdesk)
inputs.sops-nix.homeManagerModules.sops
{home.stateVersion = "23.11";}
];
extraSpecialArgs = specialArgs;
};
}
]
++ (map (x: systemProfiles + x) [
/secrets
/secrets/nixdesk
core.security
core.keyring
core.users
core.ssh
core.locale
nix.default
programs.zsh
programs.fish
core.tools
core.compat
core.boot
# core.docs
core.gvfs
/core/security.nix
/core/keyring.nix
/core/users.nix
/core/ssh.nix
/core/locale.nix
/nix
/programs/zsh.nix
/programs/fish.nix
/core/tools.nix
/core/compat.nix
/core/boot.nix
# core.docs
/core/gvfs.nix
nix.gc
/nix/gc.nix
hardware.graphics
hardware.steam-hardware
hardware.bluetooth
hardware.qmk
/hardware/graphics.nix
/hardware/steam-hardware.nix
/hardware/bluetooth.nix
/hardware/qmk.nix
network.networkd
network.avahi
network.localsend
network.tailscale
network.goldberg
/network/networkd.nix
/network/avahi.nix
/network/localsend.nix
/network/tailscale.nix
/network/goldberg.nix
desktop.sway
/desktop/sway.nix
programs.dconf
programs.fonts
programs.home-manager
# programs.qt
programs.adb
programs.openrgb
programs.tools
programs.thunar
programs.corectrl
/programs/dconf.nix
/programs/fonts.nix
/programs/home-manager.nix
# programs.qt
/programs/adb.nix
/programs/openrgb.nix
/programs/tools.nix
/programs/thunar.nix
/programs/corectrl.nix
services.default
services.pipewire
services.flatpak
/services
/services/pipewire.nix
/services/flatpak.nix
# services.syncthing
services.waydroid
services.virt-manager
services.sunshine
# network.wifi
# services.syncthing
/services/waydroid.nix
/services/virt-manager.nix
/services/sunshine.nix
# network.wifi
themes.dark
/themes/dark.nix
programs.gamemode
programs.gamescope
programs.steam
programs.RE
{
home-manager = {
backupFileExtension = "hm-backup";
users.xun.imports = [
homeSuites.nixdesk
inputs.sops-nix.homeManagerModules.sops
{home.stateVersion = "23.11";}
];
extraSpecialArgs = specialArgs;
};
}
];
/programs/gamemode.nix
/programs/gamescope.nix
/programs/steam.nix
/programs/RE
]);
networking.hostName = "nixdesk";