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
|
} @ inputs: let
|
||||||
mylib = import ./lib nixpkgs.lib;
|
mylib = import ./lib nixpkgs.lib;
|
||||||
systemProfiles = mylib.loadTree2 ./sys/profiles;
|
systemProfiles = ./sys/profiles;
|
||||||
homeProfiles = mylib.loadTreeInf ./home/profiles;
|
homeProfiles = ./home/profiles;
|
||||||
homeSuites = mylib.loadBranch ./home/suites;
|
homeSuites = ./home/suites;
|
||||||
vars = builtins.mapAttrs (_: v: import v) (mylib.loadBranch ./vars);
|
vars = import ./vars;
|
||||||
in
|
in
|
||||||
flake-parts.lib.mkFlake {inherit inputs;} {
|
flake-parts.lib.mkFlake {inherit inputs;} {
|
||||||
systems = ["x86_64-linux"];
|
systems = ["x86_64-linux"];
|
||||||
|
|
||||||
flake._mylib = mylib; # for debugging :3
|
flake.nixosConfigurations = mylib.loadConfigurations ./sys/machines (hostname: {
|
||||||
flake._vars = vars; # for debugging :3
|
|
||||||
flake.nixosConfigurations = mylib.loadConfigurations ./sys/machines {
|
|
||||||
inherit inputs self systemProfiles homeProfiles homeSuites vars;
|
inherit inputs self systemProfiles homeProfiles homeSuites vars;
|
||||||
};
|
hostVars = ./vars/${hostname};
|
||||||
|
});
|
||||||
|
|
||||||
perSystem = {pkgs, ...}: {
|
perSystem = {pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
|
|
@ -4,20 +4,20 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = with homeProfiles; [
|
imports = map (x: homeProfiles + x) [
|
||||||
terminal.programs.xdg
|
/terminal/programs/xdg.nix
|
||||||
terminal.programs.comma
|
/terminal/programs/comma.nix
|
||||||
|
|
||||||
editors.nvim
|
/editors/nvim.nix
|
||||||
terminal.emulator.foot
|
/terminal/emulator/foot.nix
|
||||||
|
|
||||||
programs.desktop.default
|
/programs/desktop/default.nix
|
||||||
programs.desktop.sway.default
|
/programs/desktop/sway/default.nix
|
||||||
|
|
||||||
programs.media.mpv
|
/programs/media/mpv.nix
|
||||||
|
|
||||||
services.playerctl
|
/services/playerctl.nix
|
||||||
services.polkit-agent
|
/services/polkit-agent.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
wayland.windowManager.sway.config.output."HDMI-A-1".scale = "2.0";
|
wayland.windowManager.sway.config.output."HDMI-A-1".scale = "2.0";
|
||||||
|
|
|
@ -5,72 +5,70 @@
|
||||||
homeProfiles,
|
homeProfiles,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = with homeProfiles; [
|
imports =
|
||||||
./defaults.nix
|
[
|
||||||
./outputs.nix
|
./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/programs/xdg.nix
|
||||||
terminal.shell.fish
|
/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
|
/editors/nvim.nix
|
||||||
terminal.programs.direnv
|
|
||||||
terminal.programs.tmux
|
|
||||||
terminal.programs.comma
|
|
||||||
terminal.programs.irssi
|
|
||||||
terminal.programs.git
|
|
||||||
terminal.programs.github
|
|
||||||
terminal.programs.jujutsu
|
|
||||||
|
|
||||||
# editors.emacs
|
/programs/browsers/firefox/default.nix
|
||||||
editors.nvim
|
/programs/browsers/tor.nix
|
||||||
|
/programs/browsers/chromium.nix
|
||||||
|
|
||||||
programs.browsers.firefox.default
|
/terminal/emulator/foot.nix
|
||||||
programs.browsers.tor
|
|
||||||
programs.browsers.chromium
|
|
||||||
|
|
||||||
# terminal.emulator.wezterm
|
/themes/dark/default.nix
|
||||||
terminal.emulator.foot
|
|
||||||
|
|
||||||
themes.dark.default
|
# desktop
|
||||||
|
/programs/desktop/default.nix
|
||||||
|
/programs/desktop/sway/default.nix
|
||||||
|
|
||||||
# desktop
|
# development
|
||||||
programs.desktop.default
|
/develop/common.nix
|
||||||
programs.desktop.sway.default
|
/develop/docs.nix
|
||||||
|
|
||||||
# development
|
/develop/langs/haskell.nix
|
||||||
develop.common
|
/develop/langs/go.nix
|
||||||
develop.docs
|
/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
|
# programs
|
||||||
develop.langs.go
|
/programs/misc/discord.nix
|
||||||
develop.langs.rust
|
/programs/misc/obs.nix
|
||||||
develop.langs.elixir
|
|
||||||
# develop.langs.uiua
|
|
||||||
develop.langs.nix
|
|
||||||
develop.langs.zig
|
|
||||||
develop.langs.lua
|
|
||||||
develop.langs.c
|
|
||||||
|
|
||||||
# programs
|
/programs/music/beets.nix
|
||||||
programs.misc.discord
|
/programs/music/cmus.nix
|
||||||
programs.misc.obs
|
|
||||||
|
|
||||||
programs.music.beets
|
/programs/media/mpv.nix
|
||||||
programs.music.cmus
|
|
||||||
|
|
||||||
programs.media.mpv
|
# gaming
|
||||||
|
/programs/games/default.nix
|
||||||
|
|
||||||
# gaming
|
/services/playerctl.nix
|
||||||
programs.games.default
|
/services/polkit-agent.nix
|
||||||
|
]);
|
||||||
services.playerctl
|
|
||||||
services.polkit-agent
|
|
||||||
# services.appusage
|
|
||||||
];
|
|
||||||
|
|
||||||
wayland.windowManager.sway.extraConfig = ''
|
wayland.windowManager.sway.extraConfig = ''
|
||||||
exec obs --startreplaybuffer --disable-shutdown-check --minimize-to-tray
|
exec obs --startreplaybuffer --disable-shutdown-check --minimize-to-tray
|
||||||
|
|
|
@ -1,29 +1,10 @@
|
||||||
l: let
|
l: let
|
||||||
b = builtins;
|
b = builtins;
|
||||||
in rec {
|
in {
|
||||||
loadBranch = branch:
|
loadConfigurations = dir: specialArgsFromHost:
|
||||||
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:
|
|
||||||
(b.mapAttrs (name: _:
|
(b.mapAttrs (name: _:
|
||||||
l.nixosSystem {
|
l.nixosSystem {
|
||||||
modules = [(dir + /${name})];
|
modules = [(dir + /${name})];
|
||||||
inherit specialArgs;
|
specialArgs = specialArgsFromHost name;
|
||||||
})) (b.readDir dir);
|
})) (b.readDir dir);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,50 +6,50 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = with systemProfiles; [
|
imports =
|
||||||
inputs.hardware.nixosModules.common-cpu-intel
|
[
|
||||||
inputs.vpn-confinement.nixosModules.default
|
inputs.hardware.nixosModules.common-cpu-intel
|
||||||
inputs.nix-minecraft.nixosModules.minecraft-servers
|
inputs.vpn-confinement.nixosModules.default
|
||||||
|
inputs.nix-minecraft.nixosModules.minecraft-servers
|
||||||
|
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./lab
|
./lab
|
||||||
./roblox-playtime.nix
|
./roblox-playtime.nix
|
||||||
./desktop.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/security.nix
|
||||||
core.locale
|
/core/locale.nix
|
||||||
core.tools
|
/core/tools.nix
|
||||||
core.ssh
|
/core/ssh.nix
|
||||||
core.deploy
|
/core/deploy.nix
|
||||||
|
|
||||||
hardware.graphics
|
/hardware/graphics.nix
|
||||||
hardware.steam-hardware
|
/hardware/steam-hardware.nix
|
||||||
hardware.bluetooth
|
/hardware/bluetooth.nix
|
||||||
|
|
||||||
nix.default # TODO slim this down
|
/nix/default.nix # TODO slim this down
|
||||||
|
|
||||||
network.tailscale
|
/network/tailscale.nix
|
||||||
network.avahi
|
/network/avahi.nix
|
||||||
network.networkd
|
/network/networkd.nix
|
||||||
|
]);
|
||||||
# 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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfreePredicate = pkg:
|
allowUnfreePredicate = pkg:
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
vars,
|
vars,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (vars.common) domain;
|
inherit (vars) domain;
|
||||||
in {
|
in {
|
||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (vars.common) domain;
|
inherit (vars) domain;
|
||||||
caddyPort = 8336;
|
caddyPort = 8336;
|
||||||
bridge = config.vpnNamespaces."wg".bridgeAddress;
|
bridge = config.vpnNamespaces."wg".bridgeAddress;
|
||||||
in {
|
in {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
vars,
|
vars,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (vars.common) domain;
|
inherit (vars) domain;
|
||||||
bridge = config.vpnNamespaces."wg".bridgeAddress;
|
bridge = config.vpnNamespaces."wg".bridgeAddress;
|
||||||
in {
|
in {
|
||||||
services.homepage-dashboard = {
|
services.homepage-dashboard = {
|
||||||
|
|
|
@ -7,87 +7,90 @@
|
||||||
homeSuites,
|
homeSuites,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = with systemProfiles; [
|
# imports = with systemProfiles; [
|
||||||
./hardware.nix
|
imports =
|
||||||
./hibernate-boot.nix
|
[
|
||||||
./samba-mount.nix
|
./hardware.nix
|
||||||
./wireguard.nix
|
./hibernate-boot.nix
|
||||||
./restic-server.nix
|
./samba-mount.nix
|
||||||
./autologin.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/security.nix
|
||||||
core.keyring
|
/core/keyring.nix
|
||||||
core.users
|
/core/users.nix
|
||||||
core.ssh
|
/core/ssh.nix
|
||||||
core.locale
|
/core/locale.nix
|
||||||
nix.default
|
/nix
|
||||||
programs.zsh
|
/programs/zsh.nix
|
||||||
programs.fish
|
/programs/fish.nix
|
||||||
core.tools
|
/core/tools.nix
|
||||||
core.compat
|
/core/compat.nix
|
||||||
core.boot
|
/core/boot.nix
|
||||||
# core.docs
|
# core.docs
|
||||||
core.gvfs
|
/core/gvfs.nix
|
||||||
|
|
||||||
nix.gc
|
/nix/gc.nix
|
||||||
|
|
||||||
hardware.graphics
|
/hardware/graphics.nix
|
||||||
hardware.steam-hardware
|
/hardware/steam-hardware.nix
|
||||||
hardware.bluetooth
|
/hardware/bluetooth.nix
|
||||||
hardware.qmk
|
/hardware/qmk.nix
|
||||||
|
|
||||||
network.networkd
|
/network/networkd.nix
|
||||||
network.avahi
|
/network/avahi.nix
|
||||||
network.localsend
|
/network/localsend.nix
|
||||||
network.tailscale
|
/network/tailscale.nix
|
||||||
network.goldberg
|
/network/goldberg.nix
|
||||||
|
|
||||||
desktop.sway
|
/desktop/sway.nix
|
||||||
|
|
||||||
programs.dconf
|
/programs/dconf.nix
|
||||||
programs.fonts
|
/programs/fonts.nix
|
||||||
programs.home-manager
|
/programs/home-manager.nix
|
||||||
# programs.qt
|
# programs.qt
|
||||||
programs.adb
|
/programs/adb.nix
|
||||||
programs.openrgb
|
/programs/openrgb.nix
|
||||||
programs.tools
|
/programs/tools.nix
|
||||||
programs.thunar
|
/programs/thunar.nix
|
||||||
programs.corectrl
|
/programs/corectrl.nix
|
||||||
|
|
||||||
services.default
|
/services
|
||||||
services.pipewire
|
/services/pipewire.nix
|
||||||
services.flatpak
|
/services/flatpak.nix
|
||||||
|
|
||||||
# services.syncthing
|
# services.syncthing
|
||||||
services.waydroid
|
/services/waydroid.nix
|
||||||
services.virt-manager
|
/services/virt-manager.nix
|
||||||
services.sunshine
|
/services/sunshine.nix
|
||||||
# network.wifi
|
# network.wifi
|
||||||
|
|
||||||
themes.dark
|
/themes/dark.nix
|
||||||
|
|
||||||
programs.gamemode
|
/programs/gamemode.nix
|
||||||
programs.gamescope
|
/programs/gamescope.nix
|
||||||
programs.steam
|
/programs/steam.nix
|
||||||
programs.RE
|
/programs/RE
|
||||||
|
]);
|
||||||
{
|
|
||||||
home-manager = {
|
|
||||||
backupFileExtension = "hm-backup";
|
|
||||||
users.xun.imports = [
|
|
||||||
homeSuites.nixdesk
|
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
|
||||||
{home.stateVersion = "23.11";}
|
|
||||||
];
|
|
||||||
extraSpecialArgs = specialArgs;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
networking.hostName = "nixdesk";
|
networking.hostName = "nixdesk";
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue