wip: migrate client modules

This commit is contained in:
Leon Schwarzäugl 2026-04-02 19:25:58 +02:00
parent f6d2ff1544
commit 7ce27d5d2f
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
245 changed files with 20254 additions and 188 deletions

View file

@ -0,0 +1,7 @@
{ lib, ... }:
let
profileNames = lib.swarselsystems.readNix "profiles-clone/home";
in
{
imports = lib.swarselsystems.mkImports profileNames "profiles-clone/home";
}

View file

@ -0,0 +1,30 @@
{ lib, config, ... }:
{
options.swarselprofiles.dgxspark = lib.mkEnableOption "is this a dgx spark host";
config = lib.mkIf config.swarselprofiles.dgxspark {
swarselmodules = {
atuin = lib.mkDefault true;
bash = lib.mkDefault true;
blueman-applet = lib.mkDefault true;
direnv = lib.mkDefault true;
eza = lib.mkDefault true;
firefox = lib.mkDefault true;
fuzzel = lib.mkDefault true;
general = lib.mkDefault true;
git = lib.mkDefault true;
gpgagent = lib.mkDefault true;
kitty = lib.mkDefault true;
nix-index = lib.mkDefault true;
nixgl = lib.mkDefault true;
nix-your-shell = lib.mkDefault true;
nm-applet = lib.mkDefault true;
sops = lib.mkDefault true;
starship = lib.mkDefault true;
stylix = lib.mkDefault true;
tmux = lib.mkDefault true;
zellij = lib.mkDefault true;
zsh = lib.mkDefault true;
};
};
}

View file

@ -0,0 +1,18 @@
{ lib, config, ... }:
{
options.swarselprofiles.hotel = lib.mkEnableOption "is this a hotel host";
config = lib.mkIf config.swarselprofiles.hotel {
swarselprofiles.personal = true;
swarselmodules = {
yubikey = lib.mkForce false;
ssh = lib.mkForce false;
env = lib.mkForce false;
git = lib.mkForce false;
mail = lib.mkForce false;
emacs = lib.mkForce false;
obsidian = lib.mkForce false;
gammastep = lib.mkForce false;
};
};
}

View file

@ -0,0 +1,13 @@
{ lib, config, ... }:
{
options.swarselprofiles.server.local = lib.mkEnableOption "is this a local server";
config = lib.mkIf config.swarselprofiles.server.local {
swarselmodules = {
general = lib.mkDefault true;
server = {
dotfiles = lib.mkDefault true;
};
};
};
}

View file

@ -0,0 +1,14 @@
{ lib, config, ... }:
{
options.swarselprofiles.minimal = lib.mkEnableOption "is this a personal host";
config = lib.mkIf config.swarselprofiles.minimal {
swarselmodules = {
general = lib.mkDefault true;
sops = lib.mkDefault true;
kitty = lib.mkDefault true;
zsh = lib.mkDefault true;
git = lib.mkDefault true;
};
};
}

View file

@ -0,0 +1,71 @@
{ lib, config, ... }:
{
options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host";
config = lib.mkIf config.swarselprofiles.personal {
swarselmodules = {
anki = lib.mkDefault true;
anki-tray = lib.mkDefault true;
attic-store-push = lib.mkDefault true;
atuin = lib.mkDefault true;
autotiling = lib.mkDefault false; # niri
batsignal = lib.mkDefault false; # niri
blueman-applet = lib.mkDefault true;
desktop = lib.mkDefault true;
direnv = lib.mkDefault true;
element-desktop = lib.mkDefault true;
element-tray = lib.mkDefault true;
emacs = lib.mkDefault true;
env = lib.mkDefault true;
eza = lib.mkDefault true;
firefox = lib.mkDefault true;
firezone-tray = lib.mkDefault true;
fuzzel = lib.mkDefault true;
gammastep = lib.mkDefault false; # niri
general = lib.mkDefault true;
git = lib.mkDefault true;
gnome-keyring = lib.mkDefault true;
gpgagent = lib.mkDefault true;
hexchat = lib.mkDefault true;
kanshi = lib.mkDefault false; # niri
kdeconnect = lib.mkDefault true;
kitty = lib.mkDefault true;
khal = lib.mkDefault true;
mail = lib.mkDefault true;
mako = lib.mkDefault false; # niri
nix-index = lib.mkDefault true;
nixgl = lib.mkDefault true;
nix-your-shell = lib.mkDefault true;
nm-applet = lib.mkDefault true;
obs-studio = lib.mkDefault true;
obsidian = lib.mkDefault true;
obsidian-tray = lib.mkDefault true;
opkssh = lib.mkDefault true;
ownpackages = lib.mkDefault true;
packages = lib.mkDefault true;
passwordstore = lib.mkDefault true;
programs = lib.mkDefault true;
sops = lib.mkDefault false;
spicetify = lib.mkDefault true;
spotify-player = lib.mkDefault true;
ssh = lib.mkDefault true;
starship = lib.mkDefault true;
stylix = lib.mkDefault true;
sway = lib.mkDefault false; # niri
swayidle = lib.mkDefault true;
swaylock = lib.mkDefault false; # niri
swayosd = lib.mkDefault true;
symlink = lib.mkDefault true;
tmux = lib.mkDefault true;
vesktop = lib.mkDefault true;
vesktop-tray = lib.mkDefault true;
shikane = lib.mkDefault true;
syncthing-tray = lib.mkDefault true;
waybar = lib.mkDefault true;
yubikey = lib.mkDefault false;
yubikeytouch = lib.mkDefault true;
zellij = lib.mkDefault true;
zsh = lib.mkDefault true;
};
};
}

View file

@ -0,0 +1,7 @@
{ lib, ... }:
let
profileNames = lib.swarselsystems.readNix "profiles-clone/nixos";
in
{
imports = lib.swarselsystems.mkImports profileNames "profiles-clone/nixos";
}

View file

@ -0,0 +1,12 @@
{ lib, config, ... }:
{
options.swarselprofiles.hotel = lib.mkEnableOption "is this a hotel host";
config = lib.mkIf config.swarselprofiles.hotel {
swarselprofiles.personal = true;
swarselmodules = {
yubikey = false;
};
};
}

View file

@ -0,0 +1,29 @@
{ lib, config, ... }:
{
options.swarselprofiles.server = lib.mkEnableOption "is this a server";
config = lib.mkIf config.swarselprofiles.server {
swarselmodules = {
general = lib.mkDefault true;
lanzaboote = lib.mkDefault true;
home-manager = lib.mkDefault true;
xserver = lib.mkDefault true;
time = lib.mkDefault true;
impermanence = lib.mkDefault true;
btrfs = lib.mkDefault true;
sops = lib.mkDefault true;
boot = lib.mkDefault true;
nftables = lib.mkDefault true;
server = {
general = lib.mkDefault true;
ids = lib.mkDefault true;
network = lib.mkDefault true;
diskEncryption = lib.mkDefault true;
packages = lib.mkDefault true;
ssh = lib.mkDefault true;
attic-setup = lib.mkDefault true;
dns-hostrecord = lib.mkDefault true;
};
};
};
}

View file

@ -0,0 +1,29 @@
{ lib, config, ... }:
{
options.swarselprofiles.microvm = lib.mkEnableOption "is this a server";
config = lib.mkIf config.swarselprofiles.microvm {
swarselsystems = {
isLinux = true;
isNixos = true;
};
swarselmodules = {
general = lib.mkDefault true;
xserver = lib.mkDefault true;
time = lib.mkDefault true;
impermanence = lib.mkDefault true;
btrfs = lib.mkDefault true;
sops = lib.mkDefault true;
nftables = lib.mkDefault true;
server = {
general = lib.mkDefault true;
ids = lib.mkDefault true;
packages = lib.mkDefault true;
ssh = lib.mkDefault true;
wireguard = lib.mkDefault true;
dns-home = lib.mkDefault true;
opkssh = true;
};
};
};
}

View file

@ -0,0 +1,29 @@
{ lib, config, ... }:
{
options.swarselprofiles.minimal = lib.mkEnableOption "declare this a minimal host";
config = lib.mkIf config.swarselprofiles.minimal {
swarselmodules = {
general = lib.mkDefault true;
home-manager = lib.mkDefault true;
xserver = lib.mkDefault true;
lanzaboote = lib.mkDefault true;
time = lib.mkDefault true;
impermanence = lib.mkDefault true;
security = lib.mkDefault true;
sops = lib.mkDefault true;
zsh = lib.mkDefault true;
yubikey = lib.mkDefault true;
autologin = lib.mkDefault true;
boot = lib.mkDefault true;
btrfs = lib.mkDefault true;
nftables = lib.mkDefault true;
server = {
ssh = lib.mkDefault true;
diskEncryption = lib.mkDefault true;
};
};
};
}

View file

@ -0,0 +1,63 @@
{ lib, config, ... }:
{
options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host";
config = lib.mkIf config.swarselprofiles.personal {
swarselmodules = {
# keyd = lib.mkDefault true;
appimage = lib.mkDefault true;
autologin = lib.mkDefault true;
blueman = lib.mkDefault true;
boot = lib.mkDefault true;
btrfs = lib.mkDefault true;
distrobox = lib.mkDefault true;
env = lib.mkDefault true;
firezone-client = lib.mkDefault true;
general = lib.mkDefault true;
gnome-keyring = lib.mkDefault true;
gvfs = lib.mkDefault true;
hardware = lib.mkDefault true;
home-manager = lib.mkDefault true;
impermanence = lib.mkDefault true;
interceptionTools = lib.mkDefault true;
keyboards = lib.mkDefault true;
lanzaboote = lib.mkDefault true;
ledger = lib.mkDefault true;
lid = lib.mkDefault true;
login = lib.mkDefault true;
lowBattery = lib.mkDefault false;
nautilus = lib.mkDefault true;
network = lib.mkDefault true;
networkDevices = lib.mkDefault true;
nftables = lib.mkDefault true;
nix-ld = lib.mkDefault true;
nvd = lib.mkDefault true;
packages = lib.mkDefault true;
pipewire = lib.mkDefault true;
ppd = lib.mkDefault true;
programs = lib.mkDefault true;
pulseaudio = lib.mkDefault true;
remotebuild = lib.mkDefault true;
security = lib.mkDefault true;
sops = lib.mkDefault true;
stylix = lib.mkDefault true;
sway = lib.mkDefault false; # niri
swayosd = lib.mkDefault false; # niri
syncthing = lib.mkDefault true;
systemdTimeout = lib.mkDefault true;
time = lib.mkDefault true;
uwsm = lib.mkDefault true;
xdg-portal = lib.mkDefault true;
xserver = lib.mkDefault true;
yubikey = lib.mkDefault true;
zsh = lib.mkDefault true;
};
home-manager.users."${config.swarselsystems.mainUser}" = {
swarselprofiles = {
personal = lib.mkDefault true;
};
};
};
}

View file

@ -0,0 +1,14 @@
{ lib, config, ... }:
{
options.swarselprofiles.router = lib.mkEnableOption "enable the router profile";
config = lib.mkIf config.swarselprofiles.router {
swarselmodules = {
nftables = lib.mkDefault true;
server = {
router = lib.mkDefault true;
kea = lib.mkDefault true;
};
};
};
}