chore: flake maintenance
Some checks are pending
Flake check / Check flake (push) Waiting to run

This commit is contained in:
Leon Schwarzäugl 2025-09-23 17:34:19 +02:00
parent d0f432b717
commit ad2241586e
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
49 changed files with 3232 additions and 3893 deletions

File diff suppressed because it is too large Load diff

View file

@ -61,7 +61,8 @@ See the above repository for updates as well as full license text. */
transform: rotateX(89.9deg); transform: rotateX(89.9deg);
} }
#mainPopupSet:has(> [panelopen]:not(#ask-chat-shortcuts,#selection-shortcut-action-panel,#chat-shortcuts-options-panel,#tab-preview-panel)) ~ toolbox #urlbar[popover], #mainPopupSet:has(> [panelopen]:not(#ask-chat-shortcuts,#selection-shortcut-action-panel,#chat-shortcuts-options-panel,#tab-preview-panel)) ~ toolbox #urlbar[popover],
#navigator-toolbox:is(:hover,:focus-within,[movingtab]) #urlbar[popover], /* swarsel: removed :hover from below line */
#navigator-toolbox:is(:focus-within,[movingtab]) #urlbar[popover],
#urlbar-container > #urlbar[popover]:is([focused],[open]){ #urlbar-container > #urlbar[popover]:is([focused],[open]){
pointer-events: auto; pointer-events: auto;
opacity: 1; opacity: 1;
@ -70,7 +71,8 @@ See the above repository for updates as well as full license text. */
} }
#mainPopupSet:has(> [panelopen]:not(#ask-chat-shortcuts,#selection-shortcut-action-panel,#chat-shortcuts-options-panel,#tab-preview-panel)) ~ toolbox, #mainPopupSet:has(> [panelopen]:not(#ask-chat-shortcuts,#selection-shortcut-action-panel,#chat-shortcuts-options-panel,#tab-preview-panel)) ~ toolbox,
#navigator-toolbox:has(#urlbar:is([open],[focus-within])), #navigator-toolbox:has(#urlbar:is([open],[focus-within])),
#navigator-toolbox:is(:hover,:focus-within,[movingtab]){ /* swarsel: removed :hover from below line */
#navigator-toolbox:is(:focus-within,[movingtab]){
transition-delay: 33ms !important; transition-delay: 33ms !important;
transform: rotateX(0); transform: rotateX(0);
opacity: 1; opacity: 1;

View file

@ -1,4 +1,4 @@
{ lib, pkgs, config, rootDisk, ... }: { lib, pkgs, config, ... }:
let let
type = "btrfs"; type = "btrfs";
extraArgs = [ "-L" "nixos" "-f" ]; # force overwrite extraArgs = [ "-L" "nixos" "-f" ]; # force overwrite

View file

@ -4,11 +4,9 @@
nixConfig = { nixConfig = {
extra-substituters = [ extra-substituters = [
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://cache.ngi0.nixos.org/"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.ngi0.nixos.org-1:KqH5CBLNSyX184S9BKZJo1LxrxJ9ltnY2uAs5c/f1MA="
]; ];
}; };
inputs = { inputs = {

View file

@ -1,7 +1,6 @@
{ self, config, inputs, lib, minimal, ... }: { self, config, inputs, lib, minimal, ... }:
let let
primaryUser = config.swarselsystems.mainUser; primaryUser = config.swarselsystems.mainUser;
sharedOptions = { };
in in
{ {
@ -13,35 +12,28 @@ in
]; ];
swarselprofiles = { swarselsystems = {
reduced = lib.mkIf (!minimal) true; isLaptop = true;
btrfs = true; isNixos = true;
isBtrfs = true;
isLinux = true;
lowResolution = "1280x800";
highResolution = "1920x1080";
sharescreen = "eDP-1";
info = "Lenovo Ideapad 720S-13IKB";
firewall = lib.mkForce true;
wallpaper = self + /files/wallpaper/lenovowp.png;
hasBluetooth = true;
hasFingerprint = true;
isImpermanence = true;
isSecureBoot = false;
isCrypted = true;
isSwap = true;
rootDisk = "/dev/nvme0n1";
swapSize = "4G";
hostName = config.node.name;
}; };
swarselsystems = lib.recursiveUpdate
{
isLaptop = true;
isNixos = true;
isBtrfs = true;
isLinux = true;
lowResolution = "1280x800";
highResolution = "1920x1080";
sharescreen = "eDP-1";
info = "Lenovo Ideapad 720S-13IKB";
firewall = lib.mkForce true;
wallpaper = self + /files/wallpaper/lenovowp.png;
hasBluetooth = true;
hasFingerprint = true;
isImpermanence = true;
isSecureBoot = false;
isCrypted = true;
isSwap = true;
rootDisk = "/dev/nvme0n1";
swapSize = "4G";
hostName = config.node.name;
}
sharedOptions;
home-manager.users."${primaryUser}" = { home-manager.users."${primaryUser}" = {
# home.stateVersion = lib.mkForce "23.05"; # home.stateVersion = lib.mkForce "23.05";
swarselsystems = { swarselsystems = {
@ -57,4 +49,8 @@ in
}; };
}; };
}; };
} // lib.optionalAttrs (!minimal) {
swarselprofiles = {
personal = true;
};
} }

View file

@ -1,4 +1,4 @@
{ lib, pkgs, config, rootDisk, ... }: { lib, pkgs, config, ... }:
let let
type = "btrfs"; type = "btrfs";
extraArgs = [ "-L" "nixos" "-f" ]; # force overwrite extraArgs = [ "-L" "nixos" "-f" ]; # force overwrite

View file

@ -29,11 +29,6 @@ in
firewall.enable = true; firewall.enable = true;
}; };
swarselprofiles = {
chaostheatre = lib.mkIf (!minimal) true;
minimal = lib.mkIf minimal true;
btrfs = true;
};
swarselsystems = { swarselsystems = {
info = "~SwarselSystems~ demo host"; info = "~SwarselSystems~ demo host";
wallpaper = self + /files/wallpaper/lenovowp.png; wallpaper = self + /files/wallpaper/lenovowp.png;
@ -50,4 +45,9 @@ in
isNixos = true; isNixos = true;
}; };
} // lib.optionalAttrs (!minimal) {
swarselprofiles = {
chaostheatre = true;
minimal = true;
};
} }

View file

@ -25,10 +25,6 @@
enableAllFirmware = lib.mkForce false; enableAllFirmware = lib.mkForce false;
}; };
swarselprofiles = {
minimal = lib.mkIf minimal true;
server.syncserver = true;
};
swarselsystems = { swarselsystems = {
info = "VM.Standard.E2.1.Micro"; info = "VM.Standard.E2.1.Micro";
isImpermanence = true; isImpermanence = true;
@ -42,4 +38,13 @@
isNixos = true; isNixos = true;
}; };
} // lib.optionalAttrs (!minimal) {
swarselprofiles = {
server = true;
};
swarselmodules.server = {
forgejo = lib.mkDefault false;
ankisync = lib.mkDefault false;
};
} }

View file

@ -1,7 +1,6 @@
# NOTE: ... is needed because dikso passes diskoFile # NOTE: ... is needed because dikso passes diskoFile
{ lib { lib
, config , config
, rootDisk
, ... , ...
}: }:
let let

View file

@ -1,4 +1,4 @@
{ lib, config, ... }: { lib, config, minimal, ... }:
let let
inherit (config.repo.secrets.local.syncthing) dev1 dev2 dev3 loc1; inherit (config.repo.secrets.local.syncthing) dev1 dev2 dev3 loc1;
inherit (config.swarselsystems) sopsFile; inherit (config.swarselsystems) sopsFile;
@ -130,10 +130,6 @@ in
}; };
}; };
swarselprofiles = {
server.moonside = true;
};
swarselsystems = { swarselsystems = {
flakePath = "/root/.dotfiles"; flakePath = "/root/.dotfiles";
info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM"; info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM";
@ -150,4 +146,17 @@ in
serviceIP = "localhost"; serviceIP = "localhost";
}; };
}; };
} // lib.optionalAttrs (!minimal) {
swarselprofiles = {
server = true;
};
swarselmodules.server = {
oauth2-proxy = lib.mkDefault true;
croc = lib.mkDefault true;
microbin = lib.mkDefault true;
shlink = lib.mkDefault true;
slink = lib.mkDefault true;
syncthing = lib.mkDefault true;
};
} }

View file

@ -1,7 +1,6 @@
# NOTE: ... is needed because dikso passes diskoFile # NOTE: ... is needed because dikso passes diskoFile
{ lib { lib
, config , config
, rootDisk
, ... , ...
}: }:
let let

View file

@ -12,16 +12,14 @@ in
]; ];
swarselprofiles = { swarselmodules = {
personal = lib.mkIf (!minimal) true; optional = {
work = lib.mkIf (!minimal) true; amdcpu = true;
uni = lib.mkIf (!minimal) true; amdgpu = true;
framework = lib.mkIf (!minimal) true; hibernation = true;
amdcpu = true; };
amdgpu = true;
hibernation = true;
btrfs = true;
}; };
swarselsystems = { swarselsystems = {
lowResolution = "1280x800"; lowResolution = "1280x800";
highResolution = "2560x1600"; highResolution = "2560x1600";
@ -66,4 +64,12 @@ in
}; };
}; };
}; };
} // lib.optionalAttrs (!minimal) {
swarselprofiles = {
personal = true;
optionals = true;
work = true;
uni = true;
framework = true;
};
} }

View file

@ -1,4 +1,4 @@
{ self, lib, minimal, ... }: { self, lib, ... }:
{ {
imports = [ imports = [
@ -12,8 +12,7 @@
}; };
swarselprofiles = { swarselprofiles = {
toto = lib.mkIf (!minimal) true; minimal = lib.mkForce true;
btrfs = true;
}; };
swarselsystems = { swarselsystems = {

View file

@ -2,7 +2,6 @@
{ lib { lib
, pkgs , pkgs
, config , config
, rootDisk
, ... , ...
}: }:
let let

View file

@ -1,4 +1,4 @@
{ config, ... }: { lib, config, minimal, ... }:
{ {
imports = [ imports = [
@ -20,11 +20,6 @@
firewall.allowedTCPPorts = [ 80 443 ]; firewall.allowedTCPPorts = [ 80 443 ];
}; };
swarselprofiles = {
server.local = true;
};
swarselsystems = { swarselsystems = {
info = "ASRock J4105-ITX, 32GB RAM"; info = "ASRock J4105-ITX, 32GB RAM";
isImpermanence = false; isImpermanence = false;
@ -35,4 +30,41 @@
isNixos = true; isNixos = true;
}; };
} // lib.optionalAttrs (!minimal) {
swarselprofiles = {
server = true;
};
swarselmodules.server = {
nfs = lib.mkDefault true;
nginx = lib.mkDefault true;
kavita = lib.mkDefault true;
restic = lib.mkDefault true;
jellyfin = lib.mkDefault true;
navidrome = lib.mkDefault true;
spotifyd = lib.mkDefault true;
mpd = lib.mkDefault true;
postgresql = lib.mkDefault true;
matrix = lib.mkDefault true;
nextcloud = lib.mkDefault true;
immich = lib.mkDefault true;
paperless = lib.mkDefault true;
transmission = lib.mkDefault true;
syncthing = lib.mkDefault true;
grafana = lib.mkDefault true;
emacs = lib.mkDefault true;
freshrss = lib.mkDefault true;
jenkins = lib.mkDefault false;
kanidm = lib.mkDefault true;
firefly-iii = lib.mkDefault true;
koillection = lib.mkDefault true;
radicale = lib.mkDefault true;
atuin = lib.mkDefault true;
forgejo = lib.mkDefault true;
ankisync = lib.mkDefault true;
# snipeit = lib.mkDefault false;
homebox = lib.mkDefault true;
};
} }

3054
index.html

File diff suppressed because it is too large Load diff

View file

@ -29,6 +29,7 @@
swarsel-instantiate swarsel-instantiate
swarselzellij swarselzellij
sshrm sshrm
endme
rustdesk-vbc rustdesk-vbc
]; ];

View file

@ -2,7 +2,7 @@
let let
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address3 address4 allMailAddresses; inherit (nixosConfig.repo.secrets.common.mail) address1 address2 address3 address4 allMailAddresses;
inherit (nixosConfig.repo.secrets.common.calendar) source1 source1-name source2 source2-name source3 source3-name; inherit (nixosConfig.repo.secrets.common.calendar) source1 source1-name source2 source2-name source3 source3-name;
inherit (nixosConfig.repo.secrets.common) fullName; inherit (nixosConfig.repo.secrets.common) fullName openrouterApi;
inherit (config.swarselsystems) isPublic homeDir; inherit (config.swarselsystems) isPublic homeDir;
DISPLAY = ":0"; DISPLAY = ":0";
@ -30,6 +30,7 @@ in
SWARSEL_FULLNAME = fullName; SWARSEL_FULLNAME = fullName;
SWARSEL_MAIL_ALL = allMailAddresses; SWARSEL_MAIL_ALL = allMailAddresses;
GITHUB_NOTIFICATION_TOKEN_PATH = nixosConfig.sops.secrets.github-notifications-token.path; GITHUB_NOTIFICATION_TOKEN_PATH = nixosConfig.sops.secrets.github-notifications-token.path;
OPENROUTER_API_KEY = openrouterApi;
}; };
}; };
} }

View file

@ -1,7 +1,6 @@
{ lib, config, nixosConfig ? null, ... }: { lib, config, nixosConfig ? null, ... }:
let let
# mirrorAttrs = lib.mapAttrs (_: v: lib.mkDefault v) nixosConfig.swarselsystems; # mirrorAttrs = lib.mapAttrs (_: v: lib.mkDefault v) nixosConfig.swarselsystems;
inherit (lib) mkDefault mapAttrs filterAttrs;
mkDefaultCommonAttrs = base: defaults: mkDefaultCommonAttrs = base: defaults:
lib.mapAttrs (_: v: lib.mkDefault v) lib.mapAttrs (_: v: lib.mkDefault v)
(lib.filterAttrs (k: _: base ? ${k}) defaults); (lib.filterAttrs (k: _: base ? ${k}) defaults);

View file

@ -18,6 +18,8 @@ in
stable.prometheus.cli stable.prometheus.cli
tigervnc tigervnc
openstackclient openstackclient
vscode
]; ];
systemd.user.sessionVariables = { systemd.user.sessionVariables = {

View file

@ -3,7 +3,6 @@ let
certsSopsFile = self + /secrets/certs/secrets.yaml; certsSopsFile = self + /secrets/certs/secrets.yaml;
clientSopsFile = self + /secrets/${config.node.name}/secrets.yaml; clientSopsFile = self + /secrets/${config.node.name}/secrets.yaml;
inherit (config.swarselsystems) mainUser;
inherit (config.repo.secrets.common.network) wlan1 wlan2 mobile1 vpn1-location vpn1-cipher vpn1-address eduroam-anon; inherit (config.repo.secrets.common.network) wlan1 wlan2 mobile1 vpn1-location vpn1-cipher vpn1-address eduroam-anon;
iwd = config.networking.networkmanager.wifi.backend == "iwd"; iwd = config.networking.networkmanager.wifi.backend == "iwd";

View file

@ -47,6 +47,7 @@
libdbusmenu-gtk2 libdbusmenu-gtk2
libdrm libdrm
libelf libelf
libgbm
libgcrypt libgcrypt
libglvnd libglvnd
libidn libidn

View file

@ -1,4 +1,4 @@
{ self, inputs, config, lib, outputs, globals, options, nodes, minimal, configName, ... }: { self, inputs, config, lib, outputs, globals, nodes, minimal, configName, ... }:
{ {
options.swarselmodules.home-manager = lib.mkEnableOption "home-manager"; options.swarselmodules.home-manager = lib.mkEnableOption "home-manager";
config = lib.mkIf config.swarselmodules.home-manager { config = lib.mkIf config.swarselmodules.home-manager {

View file

@ -1,4 +1,4 @@
{ self, lib, config, ... }: { lib, config, ... }:
{ {
options.swarselsystems.info = lib.mkOption { options.swarselsystems.info = lib.mkOption {
type = lib.types.str; type = lib.types.str;

View file

@ -1,9 +1,9 @@
{ lib, config, ... }: { lib, config, ... }:
{ {
options.swarselmodules.optional.btrfs = lib.mkEnableOption "optional btrfs settings"; options.swarselmodules.btrfs = lib.mkEnableOption "optional btrfs settings";
config = lib.mkIf config.swarselmodules.optional.btrfs { config = lib.mkIf config.swarselmodules.btrfs {
boot = { boot = {
supportedFilesystems = [ "btrfs" ]; supportedFilesystems = lib.mkIf config.swarselsystems.isBtrfs [ "btrfs" ];
}; };
}; };
} }

View file

@ -1,4 +1,4 @@
{ self, lib, pkgs, config, globals, ... }: { lib, pkgs, config, globals, ... }:
let let
servicePort = 7745; servicePort = 7745;
serviceName = "homebox"; serviceName = "homebox";

View file

@ -33,6 +33,10 @@
minimal = lib.mkIf minimal (lib.mkDefault true); minimal = lib.mkIf minimal (lib.mkDefault true);
}; };
swarselmodules.server = {
ssh = lib.mkIf (!minimal) (lib.mkDefault true);
};
swarselsystems = { swarselsystems = {
mainUser = lib.mkDefault "swarsel"; mainUser = lib.mkDefault "swarsel";
}; };

View file

@ -4,7 +4,7 @@ let
inherit (outputs) lib; inherit (outputs) lib;
in in
{ {
flake = { config, ... }: flake = _:
{ {
overlays = { overlays = {
default = final: prev: default = final: prev:

9
pkgs/endme/default.nix Normal file
View file

@ -0,0 +1,9 @@
{ name, writeShellApplication, ... }:
writeShellApplication {
inherit name;
text = ''
set -euo pipefail
systemctl --user stop graphical-session.target
systemctl --user stop graphical-session-pre.target
'';
}

View file

@ -3,7 +3,7 @@ let
base = pkgs.appimageTools.defaultFhsEnvArgs; base = pkgs.appimageTools.defaultFhsEnvArgs;
in in
pkgs.buildFHSEnv (base // { pkgs.buildFHSEnv (base // {
name = "fhs"; inherit name;
targetPkgs = pkgs: (base.targetPkgs pkgs) ++ [ pkgs.pkg-config ]; targetPkgs = pkgs: (base.targetPkgs pkgs) ++ [ pkgs.pkg-config ];
profile = "export FHS=1"; profile = "export FHS=1";
runScript = "zsh"; runScript = "zsh";

View file

@ -1,6 +0,0 @@
{ self, name, writeShellApplication, sway }:
writeShellApplication {
inherit name;
runtimeInputs = [ sway ];
text = builtins.readFile "${self}/files/scripts/${name}.sh";
}

View file

@ -3,41 +3,41 @@
options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host";
config = lib.mkIf config.swarselprofiles.chaostheatre { config = lib.mkIf config.swarselprofiles.chaostheatre {
swarselmodules = { swarselmodules = {
packages = lib.mkDefault true; packages = lib.mkForce true;
ownpackages = lib.mkDefault true; ownpackages = lib.mkForce true;
general = lib.mkDefault true; general = lib.mkForce true;
nixgl = lib.mkDefault true; nixgl = lib.mkForce true;
sops = lib.mkDefault true; sops = lib.mkForce true;
yubikey = lib.mkDefault false; yubikey = lib.mkForce false;
ssh = lib.mkDefault true; ssh = lib.mkForce true;
stylix = lib.mkDefault true; stylix = lib.mkForce true;
desktop = lib.mkDefault true; desktop = lib.mkForce true;
symlink = lib.mkDefault true; symlink = lib.mkForce true;
env = lib.mkDefault false; env = lib.mkForce false;
programs = lib.mkDefault true; programs = lib.mkForce true;
nix-index = lib.mkDefault true; nix-index = lib.mkForce true;
direnv = lib.mkDefault true; direnv = lib.mkForce true;
eza = lib.mkDefault true; eza = lib.mkForce true;
git = lib.mkDefault false; git = lib.mkForce false;
fuzzel = lib.mkDefault true; fuzzel = lib.mkForce true;
starship = lib.mkDefault true; starship = lib.mkForce true;
kitty = lib.mkDefault true; kitty = lib.mkForce true;
zsh = lib.mkDefault true; zsh = lib.mkForce true;
zellij = lib.mkDefault true; zellij = lib.mkForce true;
tmux = lib.mkDefault true; tmux = lib.mkForce true;
mail = lib.mkDefault false; mail = lib.mkForce false;
emacs = lib.mkDefault true; emacs = lib.mkForce true;
waybar = lib.mkDefault true; waybar = lib.mkForce true;
firefox = lib.mkDefault true; firefox = lib.mkForce true;
gnome-keyring = lib.mkDefault true; gnome-keyring = lib.mkForce true;
kdeconnect = lib.mkDefault true; kdeconnect = lib.mkForce true;
mako = lib.mkDefault true; mako = lib.mkForce true;
swayosd = lib.mkDefault true; swayosd = lib.mkForce true;
yubikeytouch = lib.mkDefault true; yubikeytouch = lib.mkForce true;
sway = lib.mkDefault true; sway = lib.mkForce true;
kanshi = lib.mkDefault true; kanshi = lib.mkForce true;
gpgagent = lib.mkDefault true; gpgagent = lib.mkForce true;
gammastep = lib.mkDefault false; gammastep = lib.mkForce false;
}; };
}; };

View file

@ -0,0 +1,13 @@
{ lib, config, ... }:
{
options.swarselprofiles.optionals = lib.mkEnableOption "is this a host with optionals";
config = lib.mkIf config.swarselprofiles.optionals {
swarselmodules = {
optional = {
gaming = lib.mkDefault true;
uni = lib.mkDefault true;
};
};
};
}

View file

@ -43,10 +43,6 @@
gammastep = lib.mkDefault true; gammastep = lib.mkDefault true;
spicetify = lib.mkDefault true; spicetify = lib.mkDefault true;
optional = {
gaming = lib.mkDefault true;
uni = lib.mkDefault true;
};
}; };
}; };

View file

@ -1,47 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.reduced = lib.mkEnableOption "is this a reduced personal host";
config = lib.mkIf config.swarselprofiles.reduced {
swarselmodules = {
packages = lib.mkDefault true;
ownpackages = lib.mkDefault true;
general = lib.mkDefault true;
nixgl = lib.mkDefault true;
sops = lib.mkDefault true;
yubikey = lib.mkDefault true;
ssh = lib.mkDefault true;
stylix = lib.mkDefault true;
desktop = lib.mkDefault true;
symlink = lib.mkDefault true;
env = lib.mkDefault true;
programs = lib.mkDefault true;
nix-index = lib.mkDefault true;
passwordstore = lib.mkDefault true;
direnv = lib.mkDefault true;
eza = lib.mkDefault true;
atuin = lib.mkDefault true;
git = lib.mkDefault true;
fuzzel = lib.mkDefault true;
starship = lib.mkDefault true;
kitty = lib.mkDefault true;
zsh = lib.mkDefault true;
zellij = lib.mkDefault true;
tmux = lib.mkDefault true;
mail = lib.mkDefault true;
emacs = lib.mkDefault true;
waybar = lib.mkDefault true;
firefox = lib.mkDefault true;
gnome-keyring = lib.mkDefault true;
kdeconnect = lib.mkDefault true;
mako = lib.mkDefault true;
swayosd = lib.mkDefault true;
yubikeytouch = lib.mkDefault true;
sway = lib.mkDefault true;
kanshi = lib.mkDefault false;
gpgagent = lib.mkDefault true;
gammastep = lib.mkDefault true;
};
};
}

View file

@ -1,13 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.amdcpu = lib.mkEnableOption "is this a host with amd cpu";
config = lib.mkIf config.swarselprofiles.amdcpu {
swarselmodules = {
optional = {
amdcpu = lib.mkDefault true;
};
};
};
}

View file

@ -1,13 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.amdgpu = lib.mkEnableOption "is this a host with amd gpu";
config = lib.mkIf config.swarselprofiles.amdgpu {
swarselmodules = {
optional = {
amdgpu = lib.mkDefault true;
};
};
};
}

View file

@ -1,13 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.btrfs = lib.mkEnableOption "is this a host using btrfs";
config = lib.mkIf config.swarselprofiles.btrfs {
swarselmodules = {
optional = {
btrfs = lib.mkDefault true;
};
};
};
}

View file

@ -3,46 +3,46 @@
options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host";
config = lib.mkIf config.swarselprofiles.chaostheatre { config = lib.mkIf config.swarselprofiles.chaostheatre {
swarselmodules = { swarselmodules = {
packages = lib.mkDefault true; packages = lib.mkForce true;
general = lib.mkDefault true; general = lib.mkForce true;
home-manager = lib.mkDefault true; home-manager = lib.mkForce true;
xserver = lib.mkDefault true; xserver = lib.mkForce true;
users = lib.mkDefault true; users = lib.mkForce true;
sops = lib.mkDefault true; sops = lib.mkForce true;
env = lib.mkDefault true; env = lib.mkForce true;
security = lib.mkDefault true; security = lib.mkForce true;
systemdTimeout = lib.mkDefault true; systemdTimeout = lib.mkForce true;
hardware = lib.mkDefault true; hardware = lib.mkForce true;
pulseaudio = lib.mkDefault true; pulseaudio = lib.mkForce true;
pipewire = lib.mkDefault true; pipewire = lib.mkForce true;
network = lib.mkDefault true; network = lib.mkForce true;
time = lib.mkDefault true; time = lib.mkForce true;
stylix = lib.mkDefault true; stylix = lib.mkForce true;
programs = lib.mkDefault true; programs = lib.mkForce true;
zsh = lib.mkDefault true; zsh = lib.mkForce true;
syncthing = lib.mkDefault true; syncthing = lib.mkForce true;
blueman = lib.mkDefault true; blueman = lib.mkForce true;
networkDevices = lib.mkDefault true; networkDevices = lib.mkForce true;
gvfs = lib.mkDefault true; gvfs = lib.mkForce true;
interceptionTools = lib.mkDefault true; interceptionTools = lib.mkForce true;
swayosd = lib.mkDefault true; swayosd = lib.mkForce true;
ppd = lib.mkDefault true; ppd = lib.mkForce true;
yubikey = lib.mkDefault false; yubikey = lib.mkForce false;
ledger = lib.mkDefault true; ledger = lib.mkForce true;
keyboards = lib.mkDefault true; keyboards = lib.mkForce true;
login = lib.mkDefault true; login = lib.mkForce true;
nix-ld = lib.mkDefault true; nix-ld = lib.mkForce true;
impermanence = lib.mkDefault true; impermanence = lib.mkForce true;
nvd = lib.mkDefault true; nvd = lib.mkForce true;
gnome-keyring = lib.mkDefault true; gnome-keyring = lib.mkForce true;
sway = lib.mkDefault true; sway = lib.mkForce true;
xdg-portal = lib.mkDefault true; xdg-portal = lib.mkForce true;
distrobox = lib.mkDefault true; distrobox = lib.mkForce true;
appimage = lib.mkDefault true; appimage = lib.mkForce true;
lid = lib.mkDefault true; lid = lib.mkForce true;
lowBattery = lib.mkDefault true; lowBattery = lib.mkForce true;
lanzaboote = lib.mkDefault true; lanzaboote = lib.mkForce true;
autologin = lib.mkDefault true; autologin = lib.mkForce true;
}; };
}; };

View file

@ -1,13 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.hibernation = lib.mkEnableOption "is this a host using hibernation";
config = lib.mkIf config.swarselprofiles.hibernation {
swarselmodules = {
optional = {
hibernation = lib.mkDefault true;
};
};
};
}

View file

@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
{ {
options.swarselprofiles.server.local = lib.mkEnableOption "is this a local server"; options.swarselprofiles.server = lib.mkEnableOption "is this a server";
config = lib.mkIf config.swarselprofiles.server.local { config = lib.mkIf config.swarselprofiles.server {
swarselmodules = { swarselmodules = {
general = lib.mkDefault true; general = lib.mkDefault true;
pii = lib.mkDefault true; pii = lib.mkDefault true;
@ -9,40 +9,15 @@
xserver = lib.mkDefault true; xserver = lib.mkDefault true;
time = lib.mkDefault true; time = lib.mkDefault true;
users = lib.mkDefault true; users = lib.mkDefault true;
impermanence = lib.mkDefault true;
btrfs = lib.mkDefault true;
sops = lib.mkDefault true; sops = lib.mkDefault true;
boot = lib.mkDefault true; boot = lib.mkDefault true;
server = { server = {
general = lib.mkDefault true; general = lib.mkDefault true;
packages = lib.mkDefault true; packages = lib.mkDefault true;
nfs = lib.mkDefault true;
nginx = lib.mkDefault true;
ssh = lib.mkDefault true; ssh = lib.mkDefault true;
kavita = lib.mkDefault true; nginx = lib.mkDefault true;
restic = lib.mkDefault true;
jellyfin = lib.mkDefault true;
navidrome = lib.mkDefault true;
spotifyd = lib.mkDefault true;
mpd = lib.mkDefault true;
postgresql = lib.mkDefault true;
matrix = lib.mkDefault true;
nextcloud = lib.mkDefault true;
immich = lib.mkDefault true;
paperless = lib.mkDefault true;
transmission = lib.mkDefault true;
syncthing = lib.mkDefault true;
grafana = lib.mkDefault true;
emacs = lib.mkDefault true;
freshrss = lib.mkDefault true;
jenkins = lib.mkDefault false;
kanidm = lib.mkDefault true;
firefly-iii = lib.mkDefault true;
koillection = lib.mkDefault true;
radicale = lib.mkDefault true;
atuin = lib.mkDefault true;
forgejo = lib.mkDefault true;
ankisync = lib.mkDefault true;
# snipeit = lib.mkDefault false;
homebox = lib.mkDefault true;
}; };
}; };
}; };

View file

@ -17,6 +17,7 @@
yubikey = lib.mkDefault true; yubikey = lib.mkDefault true;
autologin = lib.mkDefault true; autologin = lib.mkDefault true;
boot = lib.mkDefault true; boot = lib.mkDefault true;
btrfs = lib.mkDefault true;
server = { server = {
ssh = lib.mkDefault true; ssh = lib.mkDefault true;

View file

@ -1,30 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.server.moonside = lib.mkEnableOption "is this a moonside server";
config = lib.mkIf config.swarselprofiles.server.moonside {
swarselmodules = {
general = lib.mkDefault true;
pii = lib.mkDefault true;
home-manager = lib.mkDefault true;
xserver = lib.mkDefault true;
time = lib.mkDefault true;
users = lib.mkDefault true;
impermanence = lib.mkDefault true;
sops = lib.mkDefault true;
boot = lib.mkDefault true;
server = {
general = lib.mkDefault true;
packages = lib.mkDefault true;
nginx = lib.mkDefault true;
ssh = lib.mkDefault true;
oauth2-proxy = lib.mkDefault true;
croc = lib.mkDefault true;
microbin = lib.mkDefault true;
shlink = lib.mkDefault true;
slink = lib.mkDefault true;
syncthing = lib.mkDefault true;
};
};
};
}

View file

@ -0,0 +1,20 @@
{ lib, config, ... }:
{
options.swarselprofiles.optionals = lib.mkEnableOption "is this a host with optionals";
config = lib.mkIf config.swarselprofiles.optionals {
swarselmodules = {
optional = {
gaming = lib.mkDefault true;
virtualbox = lib.mkDefault true;
nswitch-rcm = lib.mkDefault true;
};
};
home-manager.users."${config.swarselsystems.mainUser}" = {
swarselprofiles = {
optionals = lib.mkDefault true;
};
};
};
}

View file

@ -48,16 +48,8 @@
lanzaboote = lib.mkDefault true; lanzaboote = lib.mkDefault true;
autologin = lib.mkDefault true; autologin = lib.mkDefault true;
boot = lib.mkDefault true; boot = lib.mkDefault true;
btrfs = lib.mkDefault true;
optional = {
gaming = lib.mkDefault true;
virtualbox = lib.mkDefault true;
nswitch-rcm = lib.mkDefault true;
};
server = {
ssh = lib.mkDefault true;
};
}; };
home-manager.users."${config.swarselsystems.mainUser}" = { home-manager.users."${config.swarselsystems.mainUser}" = {
swarselprofiles = { swarselprofiles = {

View file

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

View file

@ -1,26 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.server.syncserver = lib.mkEnableOption "is this a oci syncserver server";
config = lib.mkIf config.swarselprofiles.server.syncserver {
swarselmodules = {
general = lib.mkDefault true;
nix-ld = lib.mkDefault true;
pii = lib.mkDefault true;
home-manager = lib.mkDefault true;
xserver = lib.mkDefault true;
time = lib.mkDefault true;
users = lib.mkDefault true;
sops = lib.mkDefault true;
boot = lib.mkDefault true;
server = {
general = lib.mkDefault true;
packages = lib.mkDefault true;
nginx = lib.mkDefault true;
ssh = lib.mkDefault true;
forgejo = lib.mkDefault false;
ankisync = lib.mkDefault false;
};
};
};
}

View file

@ -1,23 +0,0 @@
{ lib, config, ... }:
{
options.swarselprofiles.toto = lib.mkEnableOption "is this a toto (setup) host";
config = lib.mkIf config.swarselprofiles.toto {
swarselmodules = {
general = lib.mkDefault true;
packages = lib.mkDefault true;
home-manager = lib.mkDefault true;
xserver = lib.mkDefault true;
users = lib.mkDefault true;
sops = lib.mkDefault true;
impermanence = lib.mkDefault true;
lanzaboote = lib.mkDefault true;
autologin = lib.mkDefault true;
pii = lib.mkDefault true;
server = {
ssh = lib.mkDefault true;
};
};
};
}

View file

@ -1,5 +1,5 @@
{ {
"data": "ENC[AES256_GCM,data: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,iv:eb1zUo51IoJiJ5J7pjj6louhaYE7GfXJmRs8k4chOaE=,tag:FWggP4Q281dGvr8UiJATNw==,type:str]", "data": "ENC[AES256_GCM,data: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,iv:K7mxQXKb0Vfw9dPNcxjjfsn5fu+WQrT45hGI+ziA3Xo=,tag:d3VeFUg9W7VuVZamCcx7iA==,type:str]",
"sops": { "sops": {
"age": [ "age": [
{ {
@ -27,8 +27,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtU240VjVRZmJ5TGsrclJF\nRXRLbTRCZURtR0Z3d2E2eDNNeGRDODlXVEY4CllTeVFYbDJQWlRSS1RFLzAxSnlM\nZi9NU1c3cWo3YWRLcUJ2U2ZFWFBBVEEKLS0tIGtmZU9qSWdBT3RDeStaaFFDSWtk\ndkUzZXJwZUl4LzVxYXdidmxXRnNnclUKyAMZqCKSY/RQvTR4bbjLaPnGKwdBcHXc\nvtiVSrLdIdzMa6id/J07TJH5UesUmcp0wjU41MDa4aMBLy+cXhuBHA==\n-----END AGE ENCRYPTED FILE-----\n" "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtU240VjVRZmJ5TGsrclJF\nRXRLbTRCZURtR0Z3d2E2eDNNeGRDODlXVEY4CllTeVFYbDJQWlRSS1RFLzAxSnlM\nZi9NU1c3cWo3YWRLcUJ2U2ZFWFBBVEEKLS0tIGtmZU9qSWdBT3RDeStaaFFDSWtk\ndkUzZXJwZUl4LzVxYXdidmxXRnNnclUKyAMZqCKSY/RQvTR4bbjLaPnGKwdBcHXc\nvtiVSrLdIdzMa6id/J07TJH5UesUmcp0wjU41MDa4aMBLy+cXhuBHA==\n-----END AGE ENCRYPTED FILE-----\n"
} }
], ],
"lastmodified": "2025-08-24T23:07:08Z", "lastmodified": "2025-09-18T10:05:03Z",
"mac": "ENC[AES256_GCM,data:VWywPi7fUajNGqQOBahxe3tJFMZu+jD0eNMXmGZDAmnpev/2Cpsr1QC4SZ9q/jEbT4NNXPjjSa9Aeh6jBZ4jgsrKklkOQ8uu8NF1k37A94dydF+3paDlJBDPWBEOAy5jp04j5TMxmykQF70W5su8MzoBLZwLkOzDfEXw6bGZaMo=,iv:/4vM52F25gHIYxr1xqUM6u9JMsJJ7Yisah+xMCBJ8Rg=,tag:HlLsTGk7hS6tDfgSjEtC+Q==,type:str]", "mac": "ENC[AES256_GCM,data:8FpGfB2vgSaZ+eddMkLakPXjfx5TbfYrzgjWj3vKJUlGoE6KMRbFnsvWVs9Vku6ia6YKV7qzA6GLpFM36b25CE2uV78BD4VThtahl8ffAGR87HzUdR6hXrDfOluWWGcKgGDlKJ1zSiez0aMdAhbCyKC+phFQl0QnyirsKD3CeVw=,iv:d66S50SmO4yiI48eGxJIPZg3WtosaNYKq+kQ/SFyuD0=,tag:NAVPR0mU0NUP6T6mJdCbkg==,type:str]",
"pgp": [ "pgp": [
{ {
"created_at": "2025-06-13T20:13:06Z", "created_at": "2025-06-13T20:13:06Z",