use regular paths for profiles and suites and stuff instead of the horrible mess of attrsets i was generating
This commit is contained in:
parent
530f517d22
commit
b9d92a9dc4
10 changed files with 181 additions and 200 deletions
15
flake.nix
15
flake.nix
|
@ -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 = [
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars,
|
||||
...
|
||||
}: let
|
||||
inherit (vars.common) domain;
|
||||
inherit (vars) domain;
|
||||
in {
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (vars.common) domain;
|
||||
inherit (vars) domain;
|
||||
caddyPort = 8336;
|
||||
bridge = config.vpnNamespaces."wg".bridgeAddress;
|
||||
in {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
vars,
|
||||
...
|
||||
}: let
|
||||
inherit (vars.common) domain;
|
||||
inherit (vars) domain;
|
||||
bridge = config.vpnNamespaces."wg".bridgeAddress;
|
||||
in {
|
||||
services.homepage-dashboard = {
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue