chore(modules): add auto-import default.nix files
This commit is contained in:
@@ -8,31 +8,6 @@
|
||||
{
|
||||
imports = [
|
||||
../../modules
|
||||
../../modules/3d
|
||||
../../modules/ai-tools
|
||||
../../modules/anki
|
||||
../../modules/audio
|
||||
../../modules/browser
|
||||
../../modules/cloud
|
||||
../../modules/comms
|
||||
../../modules/desktop/niri
|
||||
../../modules/devenv
|
||||
../../modules/direnv
|
||||
../../modules/git
|
||||
../../modules/k8s/k9s.nix
|
||||
../../modules/keepassxc
|
||||
../../modules/music
|
||||
../../modules/nvim
|
||||
../../modules/pandoc
|
||||
../../modules/photography
|
||||
../../modules/secrets
|
||||
../../modules/shell
|
||||
../../modules/ssh
|
||||
../../modules/taskwarrior
|
||||
../../modules/terminal
|
||||
../../modules/torrenting
|
||||
../../modules/yubikey
|
||||
../../modules/zk
|
||||
];
|
||||
|
||||
home = {
|
||||
|
||||
@@ -7,29 +7,6 @@
|
||||
{
|
||||
imports = [
|
||||
../../modules
|
||||
../../modules/3d
|
||||
../../modules/ai-tools
|
||||
../../modules/anki
|
||||
../../modules/audio
|
||||
../../modules/browser
|
||||
../../modules/cloud
|
||||
../../modules/comms
|
||||
../../modules/desktop/niri
|
||||
../../modules/devenv
|
||||
../../modules/direnv
|
||||
../../modules/git
|
||||
../../modules/k8s/k9s.nix
|
||||
../../modules/keepassxc
|
||||
../../modules/music
|
||||
../../modules/nfc
|
||||
../../modules/nvim
|
||||
../../modules/pandoc
|
||||
../../modules/secrets
|
||||
../../modules/shell
|
||||
../../modules/ssh
|
||||
../../modules/taskwarrior
|
||||
../../modules/terminal
|
||||
../../modules/yubikey
|
||||
];
|
||||
|
||||
home = {
|
||||
@@ -48,34 +25,33 @@
|
||||
claude-code.enable = true;
|
||||
opencode.enable = true;
|
||||
};
|
||||
desktop.niri.enable = true;
|
||||
anki.enable = true;
|
||||
audio.enable = true;
|
||||
browser.enable = true;
|
||||
browser.primary = "librewolf";
|
||||
cloud.hetzner.enable = true;
|
||||
comms.signal.enable = true;
|
||||
desktop.niri.enable = true;
|
||||
devenv.enable = true;
|
||||
direnv.enable = true;
|
||||
git.enable = true;
|
||||
git.github.enable = true;
|
||||
k8s.k9s.enable = true;
|
||||
keepassxc.enable = true;
|
||||
music.enable = true;
|
||||
my.yubikey.enable = true;
|
||||
nfc.enable = true;
|
||||
nvim.enable = true;
|
||||
pandoc.enable = true;
|
||||
secrets.enable = true;
|
||||
shell = {
|
||||
enable = true;
|
||||
bash.aliases.lang-js = true;
|
||||
bash.addBinToPath = true;
|
||||
};
|
||||
anki.enable = true;
|
||||
k8s.k9s.enable = true;
|
||||
secrets.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
secrets.enable = true;
|
||||
my.yubikey.enable = true;
|
||||
audio.enable = true;
|
||||
ssh.enable = true;
|
||||
music.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
terminal.enable = true;
|
||||
devenv.enable = true;
|
||||
keepassxc.enable = true;
|
||||
direnv.enable = true;
|
||||
nvim.enable = true;
|
||||
nfc.enable = true;
|
||||
pandoc.enable = true;
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
|
||||
@@ -9,35 +9,6 @@
|
||||
imports = [
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
../../modules
|
||||
../../modules/ai-tools
|
||||
../../modules/anki
|
||||
../../modules/browser
|
||||
../../modules/bruno
|
||||
../../modules/cloud
|
||||
../../modules/comms
|
||||
../../modules/database
|
||||
../../modules/dconf
|
||||
../../modules/desktop/niri
|
||||
../../modules/devenv
|
||||
../../modules/direnv
|
||||
../../modules/docker
|
||||
../../modules/git
|
||||
../../modules/go
|
||||
../../modules/infra
|
||||
../../modules/k8s
|
||||
../../modules/k8s/k9s.nix
|
||||
../../modules/keepassxc
|
||||
../../modules/music
|
||||
../../modules/nodejs
|
||||
../../modules/nvim
|
||||
../../modules/pandoc
|
||||
../../modules/secrets
|
||||
../../modules/shell
|
||||
../../modules/stylix
|
||||
../../modules/taskwarrior
|
||||
../../modules/ticketing
|
||||
../../modules/terminal
|
||||
../../modules/vscode
|
||||
];
|
||||
|
||||
sops.age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
|
||||
@@ -63,50 +34,50 @@
|
||||
defaultWrapper = "mesa";
|
||||
};
|
||||
|
||||
desktop.niri.enable = true;
|
||||
browser = {
|
||||
enable = true;
|
||||
primary = "firefox";
|
||||
secondary = "chromium";
|
||||
};
|
||||
devenv.enable = true;
|
||||
music.enable = true;
|
||||
terminal.enable = true;
|
||||
keepassxc.enable = true;
|
||||
direnv.enable = true;
|
||||
nvim.enable = true;
|
||||
my.dconf.enable = true;
|
||||
pandoc.enable = true;
|
||||
cloud.azure.enable = true;
|
||||
comms.signal.enable = true;
|
||||
comms.teams.enable = true;
|
||||
ai-tools = {
|
||||
claude-code.enable = true;
|
||||
tirith.enable = true;
|
||||
opencode.enable = true;
|
||||
};
|
||||
anki.enable = true;
|
||||
browser = {
|
||||
enable = true;
|
||||
primary = "firefox";
|
||||
secondary = "chromium";
|
||||
};
|
||||
bruno.enable = true;
|
||||
cloud.azure.enable = true;
|
||||
comms.signal.enable = true;
|
||||
comms.teams.enable = true;
|
||||
database = {
|
||||
mssql.enable = true;
|
||||
postgresql.enable = true;
|
||||
redis.enable = true;
|
||||
};
|
||||
anki.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
k8s.enable = true;
|
||||
shell.enable = true;
|
||||
my.stylix.enable = true;
|
||||
desktop.niri.enable = true;
|
||||
devenv.enable = true;
|
||||
direnv.enable = true;
|
||||
docker.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
github.enable = true;
|
||||
gitlab.enable = true;
|
||||
};
|
||||
go.enable = true;
|
||||
k8s.enable = true;
|
||||
keepassxc.enable = true;
|
||||
music.enable = true;
|
||||
my.dconf.enable = true;
|
||||
my.stylix.enable = true;
|
||||
nvim.enable = true;
|
||||
pandoc.enable = true;
|
||||
shell.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
terminal.enable = true;
|
||||
infra.enable = true;
|
||||
nodejs.enable = true;
|
||||
secrets.enable = true;
|
||||
secrets.vault.enable = true;
|
||||
bruno.enable = true;
|
||||
docker.enable = true;
|
||||
infra.enable = true;
|
||||
go.enable = true;
|
||||
nodejs.enable = true;
|
||||
ticketing.enable = true;
|
||||
vscode.enable = true;
|
||||
|
||||
|
||||
@@ -5,26 +5,14 @@
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
moduleDirs = lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./.);
|
||||
dirHasEnableOption =
|
||||
name:
|
||||
let
|
||||
nixFiles = lib.filterAttrs (n: v: v == "regular" && lib.hasSuffix ".nix" n) (
|
||||
builtins.readDir ./${name}
|
||||
);
|
||||
in
|
||||
!(builtins.pathExists ./${name}/default.nix)
|
||||
|| lib.any (f: lib.hasInfix "mkEnableOption" (builtins.readFile ./${name}/${f})) (
|
||||
builtins.attrNames nixFiles
|
||||
);
|
||||
withoutEnableOption = builtins.attrNames (
|
||||
lib.filterAttrs (name: _: !dirHasEnableOption name) moduleDirs
|
||||
);
|
||||
in
|
||||
lib.throwIf (withoutEnableOption != [ ])
|
||||
"home modules missing enable option: ${lib.concatStringsSep ", " withoutEnableOption}"
|
||||
{
|
||||
imports =
|
||||
let
|
||||
dirs = lib.attrNames (lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./.));
|
||||
hasDef = name: builtins.pathExists ./${name}/default.nix;
|
||||
in
|
||||
map (name: ./${name}) (builtins.filter hasDef dirs);
|
||||
|
||||
options = {
|
||||
host.username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
|
||||
@@ -17,51 +17,57 @@ in
|
||||
inputs.nixos-hardware.nixosModules.common-cpu-intel
|
||||
inputs.nixos-hardware.nixosModules.common-pc
|
||||
inputs.nixos-hardware.nixosModules.common-pc-ssd
|
||||
../../modules/common
|
||||
../../modules/boot/bootloader.nix
|
||||
../../modules
|
||||
(import ../../modules/disko/zfs-encrypted-root.nix {
|
||||
inherit lib config;
|
||||
device = "/dev/nvme1n1";
|
||||
})
|
||||
../../modules/ai-tools
|
||||
../../modules/anki
|
||||
../../modules/audio
|
||||
../../modules/backups
|
||||
../../modules/bluetooth
|
||||
../../modules/desktops/niri
|
||||
../../modules/docker
|
||||
../../modules/firewall
|
||||
../../modules/fonts
|
||||
../../modules/gaming
|
||||
../../modules/git
|
||||
../../modules/hcloud
|
||||
../../modules/keyboard
|
||||
../../modules/localization
|
||||
../../modules/networking
|
||||
../../modules/nvidia
|
||||
../../modules/secrets
|
||||
../../modules/ssh
|
||||
../../modules/storage
|
||||
../../modules/stylix
|
||||
../../modules/syncthing
|
||||
../../modules/tailscale
|
||||
../../modules/taskwarrior
|
||||
../../modules/users
|
||||
../../modules/wol
|
||||
../../modules/yubikey
|
||||
];
|
||||
|
||||
home-manager.users.${config.host.username} = import ../../home/hosts/${config.host.name};
|
||||
|
||||
secrets.nixSigningKey.enable = true;
|
||||
|
||||
restic-backup.enable = true;
|
||||
tailscale.enable = true;
|
||||
"ai-tools".enable = true;
|
||||
anki.enable = true;
|
||||
audio.enable = true;
|
||||
bluetooth.enable = true;
|
||||
bootloader.enable = true;
|
||||
desktop.niri.enable = true;
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 22 ];
|
||||
};
|
||||
gaming.enable = true;
|
||||
git.enable = true;
|
||||
keyboard.enable = true;
|
||||
localization.enable = true;
|
||||
my = {
|
||||
fonts.enable = true;
|
||||
stylix.enable = true;
|
||||
users.enable = true;
|
||||
yubikey = {
|
||||
enable = true;
|
||||
pam.enable = false;
|
||||
};
|
||||
};
|
||||
desktop.ly.enable = true;
|
||||
|
||||
docker.enable = true;
|
||||
|
||||
hcloud.enable = true;
|
||||
networking.enable = true;
|
||||
nvidia.enable = true;
|
||||
restic-backup.enable = true;
|
||||
secrets = {
|
||||
enable = true;
|
||||
nixSigningKey.enable = true;
|
||||
};
|
||||
ssh.enable = true;
|
||||
storage.enable = true;
|
||||
syncthing.enable = true;
|
||||
tailscale.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
wol = {
|
||||
enable = true;
|
||||
interfaces.eno1 = { inherit (wolInterfaces.eno1) macAddress; };
|
||||
};
|
||||
|
||||
disko.devices = {
|
||||
disk.data = {
|
||||
@@ -91,25 +97,10 @@ in
|
||||
inputs.colmena.packages.${pkgs.stdenv.hostPlatform.system}.colmena
|
||||
];
|
||||
|
||||
my.yubikey = {
|
||||
enable = true;
|
||||
pam.enable = false;
|
||||
};
|
||||
|
||||
services.locate = {
|
||||
enable = true;
|
||||
package = pkgs.plocate;
|
||||
};
|
||||
|
||||
networking.hostId = "80eef97e";
|
||||
|
||||
wol = {
|
||||
enable = true;
|
||||
interfaces.eno1 = { inherit (wolInterfaces.eno1) macAddress; };
|
||||
};
|
||||
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 22 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
wolInterfaces = import ../andromache/wol-interfaces.nix;
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
inputs.disko.nixosModules.disko
|
||||
@@ -16,47 +14,50 @@ in
|
||||
inputs.nixos-hardware.nixosModules.common-pc
|
||||
inputs.nixos-hardware.nixosModules.common-pc-ssd
|
||||
# inputs.nixos-hardware.nixosModules.lenovo-thinkpad-e14-intel-gen7 (not available yet?)
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
../../modules/common
|
||||
../../modules/boot/bootloader.nix
|
||||
../../modules
|
||||
(import ../../modules/disko/zfs-encrypted-root.nix {
|
||||
inherit lib config;
|
||||
device = "/dev/nvme0n1";
|
||||
})
|
||||
../../modules/ai-tools
|
||||
../../modules/anki
|
||||
../../modules/audio
|
||||
../../modules/backups
|
||||
../../modules/bluetooth
|
||||
../../modules/desktops/niri
|
||||
../../modules/docker
|
||||
../../modules/firewall
|
||||
../../modules/fonts
|
||||
../../modules/git
|
||||
../../modules/keyboard
|
||||
../../modules/localization
|
||||
../../modules/networking
|
||||
../../modules/nfc
|
||||
../../modules/secrets
|
||||
../../modules/ssh
|
||||
../../modules/storage
|
||||
../../modules/stylix
|
||||
../../modules/tailscale
|
||||
../../modules/taskwarrior
|
||||
../../modules/users
|
||||
../../modules/yubikey
|
||||
];
|
||||
|
||||
home-manager.users.${config.host.username} = import ../../home/hosts/${config.host.name};
|
||||
|
||||
secrets.nixSigningKey.enable = true;
|
||||
"ai-tools".enable = true;
|
||||
anki.enable = true;
|
||||
audio.enable = true;
|
||||
bluetooth.enable = true;
|
||||
bootloader.enable = true;
|
||||
desktop.niri.enable = true;
|
||||
git.enable = true;
|
||||
keyboard.enable = true;
|
||||
localization.enable = true;
|
||||
my = {
|
||||
fonts.enable = true;
|
||||
stylix.enable = true;
|
||||
users.enable = true;
|
||||
yubikey = {
|
||||
enable = true;
|
||||
pam.enable = false;
|
||||
};
|
||||
};
|
||||
networking.enable = true;
|
||||
secrets.enable = true;
|
||||
ssh.enable = true;
|
||||
storage.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
|
||||
secrets.nixSigningKey.enable = true;
|
||||
restic-backup.enable = true;
|
||||
tailscale.enable = true;
|
||||
desktop.ly.enable = true;
|
||||
docker.enable = true;
|
||||
nfc.enable = true;
|
||||
desktop.ly.enable = true;
|
||||
audio.automation.enable = true;
|
||||
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 22 ];
|
||||
};
|
||||
|
||||
hardware = {
|
||||
cpu.intel.updateMicrocode = true;
|
||||
@@ -90,18 +91,8 @@ in
|
||||
hostId = "80eef97e";
|
||||
};
|
||||
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 22 ];
|
||||
};
|
||||
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
|
||||
my.yubikey = {
|
||||
enable = true;
|
||||
pam.enable = false;
|
||||
};
|
||||
|
||||
services = {
|
||||
fwupd.enable = true;
|
||||
locate = {
|
||||
|
||||
@@ -7,10 +7,11 @@
|
||||
imports = [
|
||||
./hard.nix
|
||||
./host.nix
|
||||
../../modules/common
|
||||
../../modules/ssh
|
||||
../../modules
|
||||
];
|
||||
|
||||
ssh.enable = true;
|
||||
|
||||
boot = {
|
||||
kernelParams = [
|
||||
"console=ttyS1,115200n8"
|
||||
|
||||
@@ -7,12 +7,10 @@
|
||||
imports = [
|
||||
./hard.nix
|
||||
./host.nix
|
||||
../../modules/common
|
||||
../../modules/ssh
|
||||
../../modules/tailscale
|
||||
# ../../modules/uptime-kuma
|
||||
../../modules
|
||||
];
|
||||
|
||||
ssh.enable = true;
|
||||
tailscale.enable = true;
|
||||
|
||||
boot.loader = {
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
inputs.disko.nixosModules.disko
|
||||
./hard.nix
|
||||
./host.nix
|
||||
../../modules/common
|
||||
../../modules/ssh
|
||||
../../modules/docker
|
||||
../../modules
|
||||
];
|
||||
|
||||
networking.hostName = config.host.name;
|
||||
ssh.enable = true;
|
||||
docker.enable = true;
|
||||
|
||||
networking.hostName = config.host.name;
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
fsType = "ext4";
|
||||
|
||||
@@ -9,27 +9,30 @@
|
||||
./hard.nix
|
||||
./host.nix
|
||||
./disk.nix
|
||||
../../modules/common
|
||||
../../modules/anki
|
||||
../../modules/audio
|
||||
../../modules/boot/bootloader.nix
|
||||
../../modules/fonts
|
||||
../../modules/git
|
||||
../../modules/keyboard
|
||||
../../modules/localization
|
||||
../../modules/networking
|
||||
../../modules/ai-tools
|
||||
../../modules/ssh
|
||||
../../modules/storage
|
||||
../../modules/stylix
|
||||
../../modules/secrets
|
||||
../../modules/taskwarrior
|
||||
../../modules/users
|
||||
../../modules/x
|
||||
../../modules
|
||||
];
|
||||
|
||||
home-manager.users.${config.host.username} = import ../../home/hosts/vm;
|
||||
|
||||
"ai-tools".enable = true;
|
||||
anki.enable = true;
|
||||
audio.enable = true;
|
||||
bootloader.enable = true;
|
||||
desktop.x.enable = true;
|
||||
git.enable = true;
|
||||
keyboard.enable = true;
|
||||
localization.enable = true;
|
||||
my = {
|
||||
fonts.enable = true;
|
||||
stylix.enable = true;
|
||||
users.enable = true;
|
||||
};
|
||||
networking.enable = true;
|
||||
secrets.enable = true;
|
||||
ssh.enable = true;
|
||||
storage.enable = true;
|
||||
taskwarrior.enable = true;
|
||||
|
||||
disko = {
|
||||
devices.disk.main = {
|
||||
device = "/dev/vda";
|
||||
|
||||
10
modules/default.nix
Normal file
10
modules/default.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
let
|
||||
dirs = lib.attrNames (lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./.));
|
||||
hasDef = name: builtins.pathExists ./${name}/default.nix;
|
||||
in
|
||||
map (name: ./${name}) (builtins.filter hasDef dirs);
|
||||
}
|
||||
8
modules/desktops/default.nix
Normal file
8
modules/desktops/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./gnome
|
||||
./niri
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user