feat: update nix config module

This commit is contained in:
Leon Schwarzäugl 2025-06-11 02:30:20 +02:00
parent a11c7854d1
commit 6b33a182d8
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
11 changed files with 167 additions and 239 deletions

View file

@ -3983,8 +3983,6 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
users = lib.mkDefault true; users = lib.mkDefault true;
env = lib.mkDefault true; env = lib.mkDefault true;
security = lib.mkDefault true; security = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
systemdTimeout = lib.mkDefault true; systemdTimeout = lib.mkDefault true;
hardware = lib.mkDefault true; hardware = lib.mkDefault true;
pulseaudio = lib.mkDefault true; pulseaudio = lib.mkDefault true;
@ -4052,8 +4050,6 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
users = lib.mkDefault true; users = lib.mkDefault true;
env = lib.mkDefault true; env = lib.mkDefault true;
security = lib.mkDefault true; security = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
systemdTimeout = lib.mkDefault true; systemdTimeout = lib.mkDefault true;
hardware = lib.mkDefault true; hardware = lib.mkDefault true;
pulseaudio = lib.mkDefault true; pulseaudio = lib.mkDefault true;
@ -4256,8 +4252,6 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
home-manager = lib.mkDefault true; home-manager = lib.mkDefault true;
home-managerExtra = lib.mkDefault true; home-managerExtra = lib.mkDefault true;
xserver = lib.mkDefault true; xserver = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
time = lib.mkDefault true; time = lib.mkDefault true;
users = lib.mkDefault true; users = lib.mkDefault true;
server = { server = {
@ -4306,8 +4300,6 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a
home-manager = lib.mkDefault true; home-manager = lib.mkDefault true;
home-managerExtra = lib.mkDefault true; home-managerExtra = lib.mkDefault true;
xserver = lib.mkDefault true; xserver = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
time = lib.mkDefault true; time = lib.mkDefault true;
users = lib.mkDefault true; users = lib.mkDefault true;
server = { server = {
@ -4919,7 +4911,7 @@ A breakdown of the flags being set:
- nix.nixPath: Basically the same as =nix.registry=, but for the legacy nix commands - nix.nixPath: Basically the same as =nix.registry=, but for the legacy nix commands
#+begin_src nix :tangle modules/nixos/common/settings.nix #+begin_src nix :tangle modules/nixos/common/settings.nix
{ lib, config, outputs, inputs, ... }: { lib, pkgs, config, outputs, inputs, ... }:
{ {
options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings"; options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings";
config = lib.mkIf config.swarselsystems.modules.general { config = lib.mkIf config.swarselsystems.modules.general {
@ -4930,6 +4922,11 @@ A breakdown of the flags being set:
}; };
}; };
environment.etc."nixos/configuration.nix".source = pkgs.writeText "configuration.nix" ''
assert builtins.trace "This location is not used. The config is found in ${config.swarselsystems.flakePath}!" false;
{ }
'';
nix = nix =
let let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs; flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
@ -4956,11 +4953,24 @@ A breakdown of the flags being set:
max-jobs = 1; max-jobs = 1;
use-cgroups = lib.mkIf config.swarselsystems.isLinux true; use-cgroups = lib.mkIf config.swarselsystems.isLinux true;
}; };
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 10d";
};
optimise = {
automatic = true;
dates = "weekly";
};
channel.enable = false; channel.enable = false;
registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs; registry = rec {
nixpkgs.flake = inputs.nixpkgs;
p = nixpkgs;
};
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
}; };
services.dbus.implementation = "broker";
system.stateVersion = lib.mkDefault "23.05"; system.stateVersion = lib.mkDefault "23.05";
}; };
} }
@ -5222,49 +5232,6 @@ Needed for control over system-wide privileges etc. Also I make sure that the ro
} }
#+end_src #+end_src
**** Enable automatic garbage collection
:PROPERTIES:
:CUSTOM_ID: h:9a3b7f1f-d0c3-417e-a262-c920fb25f3ee
:END:
The nix store fills up over time, until =/boot/efi= is filled. This snippet cleans it automatically on a weekly basis.
#+begin_src nix :tangle modules/nixos/common/gc.nix
{ lib, config, ... }:
{
options.swarselsystems.modules.gc = lib.mkEnableOption "garbage collection config";
config = lib.mkIf config.swarselsystems.modules.gc {
nix.gc = {
automatic = true;
randomizedDelaySec = "14m";
dates = "weekly";
options = "--delete-older-than 10d";
};
};
}
#+end_src
**** Enable automatic store optimisation
:PROPERTIES:
:CUSTOM_ID: h:97a2b9f7-c835-4db8-a0e9-e923bab69ee8
:END:
This enables hardlinking identical files in the nix store, to save on disk space. I have read this incurs a significant I/O overhead, I need to keep an eye on this.
#+begin_src nix :tangle modules/nixos/common/store.nix
{ lib, config, ... }:
{
options.swarselsystems.modules.storeOptimize = lib.mkEnableOption "store optimization config";
config = lib.mkIf config.swarselsystems.modules.storeOptimize {
nix.optimise = {
automatic = true;
dates = [ "weekly" ];
};
};
}
#+end_src
**** Reduce systemd timeouts **** Reduce systemd timeouts
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:12858442-c129-4aa1-9c9c-a0916e36b302 :CUSTOM_ID: h:12858442-c129-4aa1-9c9c-a0916e36b302
@ -6709,8 +6676,6 @@ Also, the system state version is set here. No need to touch it.
"${modulesPath}/nixos/common/home-manager.nix" "${modulesPath}/nixos/common/home-manager.nix"
"${modulesPath}/nixos/common/home-manager-extra.nix" "${modulesPath}/nixos/common/home-manager-extra.nix"
"${modulesPath}/nixos/common/xserver.nix" "${modulesPath}/nixos/common/xserver.nix"
"${modulesPath}/nixos/common/gc.nix"
"${modulesPath}/nixos/common/store.nix"
"${modulesPath}/nixos/common/time.nix" "${modulesPath}/nixos/common/time.nix"
"${modulesPath}/nixos/common/users.nix" "${modulesPath}/nixos/common/users.nix"
"${modulesPath}/nixos/common/nix-ld.nix" "${modulesPath}/nixos/common/nix-ld.nix"

View file

@ -46,7 +46,7 @@ in
sharedOptions; sharedOptions;
home-manager.users."${primaryUser}" = { home-manager.users."${primaryUser}" = {
home.stateVersion = lib.mkForce "23.05"; # home.stateVersion = lib.mkForce "23.05";
swarselsystems = lib.recursiveUpdate swarselsystems = lib.recursiveUpdate
{ {
isLaptop = true; isLaptop = true;

View file

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2025-06-11 Mi 02:13 --> <!-- 2025-06-11 Mi 02:27 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>SwarselSystems: NixOS + Emacs Configuration</title> <title>SwarselSystems: NixOS + Emacs Configuration</title>
@ -263,9 +263,9 @@
<li><a href="#h:7056b9a0-f38b-4bca-b2ba-ab34e2d73493">3.1.4.3. Home-manager only (default non-NixOS)</a></li> <li><a href="#h:7056b9a0-f38b-4bca-b2ba-ab34e2d73493">3.1.4.3. Home-manager only (default non-NixOS)</a></li>
<li><a href="#h:e1498bef-ec67-483d-bf02-76264e30be8e">3.1.4.4. ChaosTheatre (Demo Physical/VM)</a> <li><a href="#h:e1498bef-ec67-483d-bf02-76264e30be8e">3.1.4.4. ChaosTheatre (Demo Physical/VM)</a>
<ul> <ul>
<li><a href="#orgd338b08">3.1.4.4.1. Main configuration</a></li> <li><a href="#org4964f49">3.1.4.4.1. Main configuration</a></li>
<li><a href="#orgc8f8cbc">3.1.4.4.2. NixOS dummy options configuration</a></li> <li><a href="#orgbfce898">3.1.4.4.2. NixOS dummy options configuration</a></li>
<li><a href="#orga9a043c">3.1.4.4.3. home-manager dummy options configuration</a></li> <li><a href="#org43ab5be">3.1.4.4.3. home-manager dummy options configuration</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -305,8 +305,8 @@
<li><a href="#h:36d6c17c-6d91-4297-b76d-9d7feab6c1a0">3.2.1.27. fhs</a></li> <li><a href="#h:36d6c17c-6d91-4297-b76d-9d7feab6c1a0">3.2.1.27. fhs</a></li>
<li><a href="#h:814d5e7f-4b95-412d-b246-33f888514ec6">3.2.1.28. swarsel-displaypower</a></li> <li><a href="#h:814d5e7f-4b95-412d-b246-33f888514ec6">3.2.1.28. swarsel-displaypower</a></li>
<li><a href="#h:799579f3-ddd3-4f76-928a-a8c665980476">3.2.1.29. swarsel-mgba</a></li> <li><a href="#h:799579f3-ddd3-4f76-928a-a8c665980476">3.2.1.29. swarsel-mgba</a></li>
<li><a href="#org0e1f6ca">3.2.1.30. swarsel-deploy</a></li> <li><a href="#orgeae634d">3.2.1.30. swarsel-deploy</a></li>
<li><a href="#org8dd4d59">3.2.1.31. sshrm</a></li> <li><a href="#org574cd6d">3.2.1.31. sshrm</a></li>
</ul> </ul>
</li> </li>
<li><a href="#h:5e3e21e0-57af-4dad-b32f-6400af9b7aab">3.2.2. Overlays (additions, overrides, nixpkgs-stable)</a></li> <li><a href="#h:5e3e21e0-57af-4dad-b32f-6400af9b7aab">3.2.2. Overlays (additions, overrides, nixpkgs-stable)</a></li>
@ -314,37 +314,37 @@
<ul> <ul>
<li><a href="#h:14e68518-8ec7-48ec-b208-0e3d6d49954d">3.2.3.1. NixOS</a> <li><a href="#h:14e68518-8ec7-48ec-b208-0e3d6d49954d">3.2.3.1. NixOS</a>
<ul> <ul>
<li><a href="#orgdd9d40e">3.2.3.1.1. Personal</a></li> <li><a href="#org9540c81">3.2.3.1.1. Personal</a></li>
<li><a href="#org3eac254">3.2.3.1.2. Chaostheatre</a></li> <li><a href="#orgb031aa7">3.2.3.1.2. Chaostheatre</a></li>
<li><a href="#org25edfe0">3.2.3.1.3. toto</a></li> <li><a href="#orge3b8a11">3.2.3.1.3. toto</a></li>
<li><a href="#org68fa02f">3.2.3.1.4. Work</a></li> <li><a href="#org97e8434">3.2.3.1.4. Work</a></li>
<li><a href="#orgb25d40f">3.2.3.1.5. Framework</a></li> <li><a href="#org1651e06">3.2.3.1.5. Framework</a></li>
<li><a href="#orgdad73fe">3.2.3.1.6. AMD CPU</a></li> <li><a href="#orgfb7e7ef">3.2.3.1.6. AMD CPU</a></li>
<li><a href="#orge755b1b">3.2.3.1.7. AMD GPU</a></li> <li><a href="#org28d376c">3.2.3.1.7. AMD GPU</a></li>
<li><a href="#org70cdc6a">3.2.3.1.8. Hibernation</a></li> <li><a href="#orge0f7e21">3.2.3.1.8. Hibernation</a></li>
<li><a href="#org76f803a">3.2.3.1.9. BTRFS</a></li> <li><a href="#org57279ad">3.2.3.1.9. BTRFS</a></li>
<li><a href="#orgf393e5f">3.2.3.1.10. Local Server</a></li> <li><a href="#org9389ad4">3.2.3.1.10. Local Server</a></li>
<li><a href="#org2eb8736">3.2.3.1.11. OCI Sync Server</a></li> <li><a href="#org62936e1">3.2.3.1.11. OCI Sync Server</a></li>
</ul> </ul>
</li> </li>
<li><a href="#h:ced5841f-c088-4d88-b3a1-7d62aad8837b">3.2.3.2. home-manager</a> <li><a href="#h:ced5841f-c088-4d88-b3a1-7d62aad8837b">3.2.3.2. home-manager</a>
<ul> <ul>
<li><a href="#orgfcf3911">3.2.3.2.1. Personal</a></li> <li><a href="#org504871a">3.2.3.2.1. Personal</a></li>
<li><a href="#org9582cbb">3.2.3.2.2. Chaostheatre</a></li> <li><a href="#org2efe6c4">3.2.3.2.2. Chaostheatre</a></li>
<li><a href="#org12bf9e6">3.2.3.2.3. toto</a></li> <li><a href="#org8a77e3c">3.2.3.2.3. toto</a></li>
<li><a href="#org1e8da31">3.2.3.2.4. Work</a></li> <li><a href="#orgf5221b5">3.2.3.2.4. Work</a></li>
<li><a href="#org203c8ec">3.2.3.2.5. Framework</a></li> <li><a href="#orgfe652dc">3.2.3.2.5. Framework</a></li>
<li><a href="#org9c7c1fa">3.2.3.2.6. Darwin</a></li> <li><a href="#org937a4bd">3.2.3.2.6. Darwin</a></li>
<li><a href="#org74c8c2d">3.2.3.2.7. Local Server</a></li> <li><a href="#orga153f41">3.2.3.2.7. Local Server</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li><a href="#h:4d38c9f7-2680-4c02-a1f4-ed8db0d55ce4">3.2.4. Library functions</a></li> <li><a href="#h:4d38c9f7-2680-4c02-a1f4-ed8db0d55ce4">3.2.4. Library functions</a></li>
<li><a href="#org083dac2">3.2.5. Auxiliary files</a> <li><a href="#org07b63f7">3.2.5. Auxiliary files</a>
<ul> <ul>
<li><a href="#orgfa509ef">3.2.5.1. extra-builtins</a></li> <li><a href="#orge66996a">3.2.5.1. extra-builtins</a></li>
<li><a href="#orgcd7312a">3.2.5.2. sops-decrypt-and-cache</a></li> <li><a href="#org92dfdc5">3.2.5.2. sops-decrypt-and-cache</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -384,7 +384,7 @@
<li><a href="#h:f101daa2-604d-4553-99e2-f64b9c207f51">3.3.1.20.3. enable GVfs</a></li> <li><a href="#h:f101daa2-604d-4553-99e2-f64b9c207f51">3.3.1.20.3. enable GVfs</a></li>
<li><a href="#h:08d213d5-a9f4-4309-8635-ba557b01dc7d">3.3.1.20.4. interception-tools: Make CAPS work as ESC/CTRL</a></li> <li><a href="#h:08d213d5-a9f4-4309-8635-ba557b01dc7d">3.3.1.20.4. interception-tools: Make CAPS work as ESC/CTRL</a></li>
<li><a href="#h:82fbba41-3a46-4db7-aade-49e4c23fc475">3.3.1.20.5. power-profiles-daemon</a></li> <li><a href="#h:82fbba41-3a46-4db7-aade-49e4c23fc475">3.3.1.20.5. power-profiles-daemon</a></li>
<li><a href="#org7d66c15">3.3.1.20.6. SwayOSD</a></li> <li><a href="#orga0912b6">3.3.1.20.6. SwayOSD</a></li>
</ul> </ul>
</li> </li>
<li><a href="#h:7a89b5e3-b700-4167-8b14-2b8172f33936">3.3.1.21. Hardware compatibility settings (Yubikey, Ledger, Keyboards) - udev rules</a> <li><a href="#h:7a89b5e3-b700-4167-8b14-2b8172f33936">3.3.1.21. Hardware compatibility settings (Yubikey, Ledger, Keyboards) - udev rules</a>
@ -436,7 +436,7 @@
<li><a href="#h:9da3df74-6fc5-4ee1-a345-23ab4e8a613d">3.3.2.24. FreshRSS</a></li> <li><a href="#h:9da3df74-6fc5-4ee1-a345-23ab4e8a613d">3.3.2.24. FreshRSS</a></li>
<li><a href="#h:a9965660-4358-4b9a-8c46-d55f28598344">3.3.2.25. forgejo (git server)</a></li> <li><a href="#h:a9965660-4358-4b9a-8c46-d55f28598344">3.3.2.25. forgejo (git server)</a></li>
<li><a href="#h:cb3f6552-7751-4f9a-b4c7-8d8ba5b255c4">3.3.2.26. Anki Sync Server</a></li> <li><a href="#h:cb3f6552-7751-4f9a-b4c7-8d8ba5b255c4">3.3.2.26. Anki Sync Server</a></li>
<li><a href="#org5c1eff2">3.3.2.27. IDM (kanidm + oauth2-proxy)</a></li> <li><a href="#orga72fc5f">3.3.2.27. IDM (kanidm + oauth2-proxy)</a></li>
</ul> </ul>
</li> </li>
<li><a href="#h:ac0cd8b3-06cf-4dca-ba73-6100c8fedb47">3.3.3. Darwin</a> <li><a href="#h:ac0cd8b3-06cf-4dca-ba73-6100c8fedb47">3.3.3. Darwin</a>
@ -451,11 +451,11 @@
<li><a href="#h:34db28fb-62f7-4597-a9ff-0de2991a8415">3.3.4.3. VmWare</a></li> <li><a href="#h:34db28fb-62f7-4597-a9ff-0de2991a8415">3.3.4.3. VmWare</a></li>
<li><a href="#h:fa8d9ec4-3e22-458a-9239-859cffe7f55c">3.3.4.4. Auto-login</a></li> <li><a href="#h:fa8d9ec4-3e22-458a-9239-859cffe7f55c">3.3.4.4. Auto-login</a></li>
<li><a href="#h:5c41c4ee-22ca-405b-9e4f-cc4051634edd">3.3.4.5. nswitch-rcm</a></li> <li><a href="#h:5c41c4ee-22ca-405b-9e4f-cc4051634edd">3.3.4.5. nswitch-rcm</a></li>
<li><a href="#org0b892d4">3.3.4.6. Framework</a></li> <li><a href="#orge86d03d">3.3.4.6. Framework</a></li>
<li><a href="#org131181f">3.3.4.7. AMD CPU</a></li> <li><a href="#org9bb01a6">3.3.4.7. AMD CPU</a></li>
<li><a href="#org7a2eac9">3.3.4.8. AMD GPU</a></li> <li><a href="#org2ed326a">3.3.4.8. AMD GPU</a></li>
<li><a href="#orgcec36da">3.3.4.9. Hibernation</a></li> <li><a href="#org001805e">3.3.4.9. Hibernation</a></li>
<li><a href="#org5a89e28">3.3.4.10. BTRFS</a></li> <li><a href="#org7477124">3.3.4.10. BTRFS</a></li>
<li><a href="#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf">3.3.4.11. work</a></li> <li><a href="#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf">3.3.4.11. work</a></li>
<li><a href="#h:3fc1d301-7bae-4678-9085-d12c23eed8ac">3.3.4.12. Minimal Install</a></li> <li><a href="#h:3fc1d301-7bae-4678-9085-d12c23eed8ac">3.3.4.12. Minimal Install</a></li>
</ul> </ul>
@ -504,7 +504,7 @@
<li><a href="#h:cb812c8a-247c-4ce5-a00c-59332c2f5fb9">3.4.1.29.1. gnome-keyring</a></li> <li><a href="#h:cb812c8a-247c-4ce5-a00c-59332c2f5fb9">3.4.1.29.1. gnome-keyring</a></li>
<li><a href="#h:be6afd89-9e1e-40b6-8542-5c07a0ab780d">3.4.1.29.2. KDE Connect</a></li> <li><a href="#h:be6afd89-9e1e-40b6-8542-5c07a0ab780d">3.4.1.29.2. KDE Connect</a></li>
<li><a href="#h:99d05729-df35-4958-9940-3319d6a41359">3.4.1.29.3. Mako</a></li> <li><a href="#h:99d05729-df35-4958-9940-3319d6a41359">3.4.1.29.3. Mako</a></li>
<li><a href="#org2defd4e">3.4.1.29.4. SwayOSD</a></li> <li><a href="#orgd46f1e1">3.4.1.29.4. SwayOSD</a></li>
<li><a href="#h:1598c90b-f195-41a0-9132-94612edf3586">3.4.1.29.5. yubikey-touch-detector</a></li> <li><a href="#h:1598c90b-f195-41a0-9132-94612edf3586">3.4.1.29.5. yubikey-touch-detector</a></li>
</ul> </ul>
</li> </li>
@ -529,7 +529,7 @@
<ul> <ul>
<li><a href="#h:84fd7029-ecb6-4131-9333-289982f24ffa">3.4.4.1. Gaming</a></li> <li><a href="#h:84fd7029-ecb6-4131-9333-289982f24ffa">3.4.4.1. Gaming</a></li>
<li><a href="#h:f0b2ea93-94c8-48d8-8d47-6fe58f58e0e6">3.4.4.2. Work</a></li> <li><a href="#h:f0b2ea93-94c8-48d8-8d47-6fe58f58e0e6">3.4.4.2. Work</a></li>
<li><a href="#org4b44dda">3.4.4.3. Framework</a></li> <li><a href="#org0b1babc">3.4.4.3. Framework</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -707,7 +707,7 @@
<ul> <ul>
<li><a href="#h:c1e53aed-fb47-4aff-930c-dc52f3c5dcb8">6.1. Server Emacs config</a></li> <li><a href="#h:c1e53aed-fb47-4aff-930c-dc52f3c5dcb8">6.1. Server Emacs config</a></li>
<li><a href="#h:fc64f42f-e7cf-4829-89f6-2d0d58e04f51">6.2. tridactylrc</a></li> <li><a href="#h:fc64f42f-e7cf-4829-89f6-2d0d58e04f51">6.2. tridactylrc</a></li>
<li><a href="#orgf1e21cc">6.3. tridactyl theme</a></li> <li><a href="#org13d682a">6.3. tridactyl theme</a></li>
<li><a href="#h:77b1c523-5074-4610-b320-90af95e6134d">6.4. Waybar style.css</a></li> <li><a href="#h:77b1c523-5074-4610-b320-90af95e6134d">6.4. Waybar style.css</a></li>
<li><a href="#h:788937cf-8816-466b-8e57-1b695cb50f52">6.5. justfile</a></li> <li><a href="#h:788937cf-8816-466b-8e57-1b695cb50f52">6.5. justfile</a></li>
</ul> </ul>
@ -716,7 +716,7 @@
</div> </div>
</div> </div>
<p> <p>
<b>This file has 66261 words spanning 17435 lines and was last revised on 2025-06-11 02:13:52 +0200.</b> <b>This file has 66145 words spanning 17412 lines and was last revised on 2025-06-11 02:27:48 +0200.</b>
</p> </p>
<p> <p>
@ -769,7 +769,7 @@ This section defines my Emacs configuration. For a while, I considered to use ry
</p> </p>
<p> <p>
My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2025-06-11 02:13:52 +0200) My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2025-06-11 02:27:48 +0200)
</p></li> </p></li>
</ul> </ul>
@ -2906,8 +2906,8 @@ This is just a demo host. It applies all the configuration found in the common p
I also set the <code>WLR_RENDERER_ALLOW_SOFTWARE=1</code> to allow this configuration to run in a virtualized environment. I also enable <code>qemuGuest</code> for a smoother experience when testing on QEMU. I also set the <code>WLR_RENDERER_ALLOW_SOFTWARE=1</code> to allow this configuration to run in a virtualized environment. I also enable <code>qemuGuest</code> for a smoother experience when testing on QEMU.
</p> </p>
</div> </div>
<div id="outline-container-orgd338b08" class="outline-6"> <div id="outline-container-org4964f49" class="outline-6">
<h6 id="orgd338b08"><span class="section-number-6">3.1.4.4.1.</span> Main configuration</h6> <h6 id="org4964f49"><span class="section-number-6">3.1.4.4.1.</span> Main configuration</h6>
<div class="outline-text-6" id="text-3-1-4-4-1"> <div class="outline-text-6" id="text-3-1-4-4-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ self, inputs, config, pkgs, lib, primaryUser, ... }: <pre class="src src-nix">{ self, inputs, config, pkgs, lib, primaryUser, ... }:
@ -2986,8 +2986,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgc8f8cbc" class="outline-6"> <div id="outline-container-orgbfce898" class="outline-6">
<h6 id="orgc8f8cbc"><span class="section-number-6">3.1.4.4.2.</span> NixOS dummy options configuration</h6> <h6 id="orgbfce898"><span class="section-number-6">3.1.4.4.2.</span> NixOS dummy options configuration</h6>
<div class="outline-text-6" id="text-3-1-4-4-2"> <div class="outline-text-6" id="text-3-1-4-4-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">_: <pre class="src src-nix">_:
@ -2997,8 +2997,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orga9a043c" class="outline-6"> <div id="outline-container-org43ab5be" class="outline-6">
<h6 id="orga9a043c"><span class="section-number-6">3.1.4.4.3.</span> home-manager dummy options configuration</h6> <h6 id="org43ab5be"><span class="section-number-6">3.1.4.4.3.</span> home-manager dummy options configuration</h6>
<div class="outline-text-6" id="text-3-1-4-4-3"> <div class="outline-text-6" id="text-3-1-4-4-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">_: <pre class="src src-nix">_:
@ -4779,8 +4779,8 @@ appimageTools.wrapType2 {
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org0e1f6ca" class="outline-5"> <div id="outline-container-orgeae634d" class="outline-5">
<h5 id="org0e1f6ca"><span class="section-number-5">3.2.1.30.</span> swarsel-deploy</h5> <h5 id="orgeae634d"><span class="section-number-5">3.2.1.30.</span> swarsel-deploy</h5>
<div class="outline-text-5" id="text-3-2-1-30"> <div class="outline-text-5" id="text-3-2-1-30">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix"># heavily inspired from https://github.com/oddlama/nix-config/blob/d42cbde676001a7ad8a3cace156e050933a4dcc3/pkgs/deploy.nix <pre class="src src-nix"># heavily inspired from https://github.com/oddlama/nix-config/blob/d42cbde676001a7ad8a3cace156e050933a4dcc3/pkgs/deploy.nix
@ -4912,8 +4912,8 @@ writeShellApplication {
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org8dd4d59" class="outline-5"> <div id="outline-container-org574cd6d" class="outline-5">
<h5 id="org8dd4d59"><span class="section-number-5">3.2.1.31.</span> sshrm</h5> <h5 id="org574cd6d"><span class="section-number-5">3.2.1.31.</span> sshrm</h5>
<div class="outline-text-5" id="text-3-2-1-31"> <div class="outline-text-5" id="text-3-2-1-31">
<p> <p>
This programs simply runs ssh-keygen on the last host that I tried to ssh into. I need this frequently when working with cloud-init usually. This programs simply runs ssh-keygen on the last host that I tried to ssh into. I need this frequently when working with cloud-init usually.
@ -5070,8 +5070,8 @@ in
</pre> </pre>
</div> </div>
</div> </div>
<div id="outline-container-orgdd9d40e" class="outline-6"> <div id="outline-container-org9540c81" class="outline-6">
<h6 id="orgdd9d40e"><span class="section-number-6">3.2.3.1.1.</span> Personal</h6> <h6 id="org9540c81"><span class="section-number-6">3.2.3.1.1.</span> Personal</h6>
<div class="outline-text-6" id="text-3-2-3-1-1"> <div class="outline-text-6" id="text-3-2-3-1-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5140,8 +5140,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org3eac254" class="outline-6"> <div id="outline-container-orgb031aa7" class="outline-6">
<h6 id="org3eac254"><span class="section-number-6">3.2.3.1.2.</span> Chaostheatre</h6> <h6 id="orgb031aa7"><span class="section-number-6">3.2.3.1.2.</span> Chaostheatre</h6>
<div class="outline-text-6" id="text-3-2-3-1-2"> <div class="outline-text-6" id="text-3-2-3-1-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5203,8 +5203,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org25edfe0" class="outline-6"> <div id="outline-container-orge3b8a11" class="outline-6">
<h6 id="org25edfe0"><span class="section-number-6">3.2.3.1.3.</span> toto</h6> <h6 id="orge3b8a11"><span class="section-number-6">3.2.3.1.3.</span> toto</h6>
<div class="outline-text-6" id="text-3-2-3-1-3"> <div class="outline-text-6" id="text-3-2-3-1-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5236,8 +5236,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org68fa02f" class="outline-6"> <div id="outline-container-org97e8434" class="outline-6">
<h6 id="org68fa02f"><span class="section-number-6">3.2.3.1.4.</span> Work</h6> <h6 id="org97e8434"><span class="section-number-6">3.2.3.1.4.</span> Work</h6>
<div class="outline-text-6" id="text-3-2-3-1-4"> <div class="outline-text-6" id="text-3-2-3-1-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5258,8 +5258,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgb25d40f" class="outline-6"> <div id="outline-container-org1651e06" class="outline-6">
<h6 id="orgb25d40f"><span class="section-number-6">3.2.3.1.5.</span> Framework</h6> <h6 id="org1651e06"><span class="section-number-6">3.2.3.1.5.</span> Framework</h6>
<div class="outline-text-6" id="text-3-2-3-1-5"> <div class="outline-text-6" id="text-3-2-3-1-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5280,8 +5280,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgdad73fe" class="outline-6"> <div id="outline-container-orgfb7e7ef" class="outline-6">
<h6 id="orgdad73fe"><span class="section-number-6">3.2.3.1.6.</span> AMD CPU</h6> <h6 id="orgfb7e7ef"><span class="section-number-6">3.2.3.1.6.</span> AMD CPU</h6>
<div class="outline-text-6" id="text-3-2-3-1-6"> <div class="outline-text-6" id="text-3-2-3-1-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5302,8 +5302,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orge755b1b" class="outline-6"> <div id="outline-container-org28d376c" class="outline-6">
<h6 id="orge755b1b"><span class="section-number-6">3.2.3.1.7.</span> AMD GPU</h6> <h6 id="org28d376c"><span class="section-number-6">3.2.3.1.7.</span> AMD GPU</h6>
<div class="outline-text-6" id="text-3-2-3-1-7"> <div class="outline-text-6" id="text-3-2-3-1-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5324,8 +5324,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org70cdc6a" class="outline-6"> <div id="outline-container-orge0f7e21" class="outline-6">
<h6 id="org70cdc6a"><span class="section-number-6">3.2.3.1.8.</span> Hibernation</h6> <h6 id="orge0f7e21"><span class="section-number-6">3.2.3.1.8.</span> Hibernation</h6>
<div class="outline-text-6" id="text-3-2-3-1-8"> <div class="outline-text-6" id="text-3-2-3-1-8">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5346,8 +5346,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org76f803a" class="outline-6"> <div id="outline-container-org57279ad" class="outline-6">
<h6 id="org76f803a"><span class="section-number-6">3.2.3.1.9.</span> BTRFS</h6> <h6 id="org57279ad"><span class="section-number-6">3.2.3.1.9.</span> BTRFS</h6>
<div class="outline-text-6" id="text-3-2-3-1-9"> <div class="outline-text-6" id="text-3-2-3-1-9">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5368,8 +5368,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgf393e5f" class="outline-6"> <div id="outline-container-org9389ad4" class="outline-6">
<h6 id="orgf393e5f"><span class="section-number-6">3.2.3.1.10.</span> Local Server</h6> <h6 id="org9389ad4"><span class="section-number-6">3.2.3.1.10.</span> Local Server</h6>
<div class="outline-text-6" id="text-3-2-3-1-10"> <div class="outline-text-6" id="text-3-2-3-1-10">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5420,8 +5420,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org2eb8736" class="outline-6"> <div id="outline-container-org62936e1" class="outline-6">
<h6 id="org2eb8736"><span class="section-number-6">3.2.3.1.11.</span> OCI Sync Server</h6> <h6 id="org62936e1"><span class="section-number-6">3.2.3.1.11.</span> OCI Sync Server</h6>
<div class="outline-text-6" id="text-3-2-3-1-11"> <div class="outline-text-6" id="text-3-2-3-1-11">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5476,8 +5476,8 @@ in
</pre> </pre>
</div> </div>
</div> </div>
<div id="outline-container-orgfcf3911" class="outline-6"> <div id="outline-container-org504871a" class="outline-6">
<h6 id="orgfcf3911"><span class="section-number-6">3.2.3.2.1.</span> Personal</h6> <h6 id="org504871a"><span class="section-number-6">3.2.3.2.1.</span> Personal</h6>
<div class="outline-text-6" id="text-3-2-3-2-1"> <div class="outline-text-6" id="text-3-2-3-2-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5534,8 +5534,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org9582cbb" class="outline-6"> <div id="outline-container-org2efe6c4" class="outline-6">
<h6 id="org9582cbb"><span class="section-number-6">3.2.3.2.2.</span> Chaostheatre</h6> <h6 id="org2efe6c4"><span class="section-number-6">3.2.3.2.2.</span> Chaostheatre</h6>
<div class="outline-text-6" id="text-3-2-3-2-2"> <div class="outline-text-6" id="text-3-2-3-2-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5587,8 +5587,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org12bf9e6" class="outline-6"> <div id="outline-container-org8a77e3c" class="outline-6">
<h6 id="org12bf9e6"><span class="section-number-6">3.2.3.2.3.</span> toto</h6> <h6 id="org8a77e3c"><span class="section-number-6">3.2.3.2.3.</span> toto</h6>
<div class="outline-text-6" id="text-3-2-3-2-3"> <div class="outline-text-6" id="text-3-2-3-2-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5608,8 +5608,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org1e8da31" class="outline-6"> <div id="outline-container-orgf5221b5" class="outline-6">
<h6 id="org1e8da31"><span class="section-number-6">3.2.3.2.4.</span> Work</h6> <h6 id="orgf5221b5"><span class="section-number-6">3.2.3.2.4.</span> Work</h6>
<div class="outline-text-6" id="text-3-2-3-2-4"> <div class="outline-text-6" id="text-3-2-3-2-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5629,8 +5629,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org203c8ec" class="outline-6"> <div id="outline-container-orgfe652dc" class="outline-6">
<h6 id="org203c8ec"><span class="section-number-6">3.2.3.2.5.</span> Framework</h6> <h6 id="orgfe652dc"><span class="section-number-6">3.2.3.2.5.</span> Framework</h6>
<div class="outline-text-6" id="text-3-2-3-2-5"> <div class="outline-text-6" id="text-3-2-3-2-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5651,8 +5651,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org9c7c1fa" class="outline-6"> <div id="outline-container-org937a4bd" class="outline-6">
<h6 id="org9c7c1fa"><span class="section-number-6">3.2.3.2.6.</span> Darwin</h6> <h6 id="org937a4bd"><span class="section-number-6">3.2.3.2.6.</span> Darwin</h6>
<div class="outline-text-6" id="text-3-2-3-2-6"> <div class="outline-text-6" id="text-3-2-3-2-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5670,8 +5670,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org74c8c2d" class="outline-6"> <div id="outline-container-orga153f41" class="outline-6">
<h6 id="org74c8c2d"><span class="section-number-6">3.2.3.2.7.</span> Local Server</h6> <h6 id="orga153f41"><span class="section-number-6">3.2.3.2.7.</span> Local Server</h6>
<div class="outline-text-6" id="text-3-2-3-2-7"> <div class="outline-text-6" id="text-3-2-3-2-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -5902,12 +5902,12 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org083dac2" class="outline-4"> <div id="outline-container-org07b63f7" class="outline-4">
<h4 id="org083dac2"><span class="section-number-4">3.2.5.</span> Auxiliary files</h4> <h4 id="org07b63f7"><span class="section-number-4">3.2.5.</span> Auxiliary files</h4>
<div class="outline-text-4" id="text-3-2-5"> <div class="outline-text-4" id="text-3-2-5">
</div> </div>
<div id="outline-container-orgfa509ef" class="outline-5"> <div id="outline-container-orge66996a" class="outline-5">
<h5 id="orgfa509ef"><span class="section-number-5">3.2.5.1.</span> extra-builtins</h5> <h5 id="orge66996a"><span class="section-number-5">3.2.5.1.</span> extra-builtins</h5>
<div class="outline-text-5" id="text-3-2-5-1"> <div class="outline-text-5" id="text-3-2-5-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix"> <pre class="src src-nix">
@ -5932,20 +5932,18 @@ in
"The file to decrypt must be given as a path to prevent impurity."; "The file to decrypt must be given as a path to prevent impurity.";
assert assertMsg (hasSuffix ".nix.age" nixFile) assert assertMsg (hasSuffix ".nix.age" nixFile)
"The content of the decrypted file must be a nix expression and should therefore end in .nix.age"; "The content of the decrypted file must be a nix expression and should therefore end in .nix.age";
exec ( exec [
[
./sops-decrypt-and-cache.sh ./sops-decrypt-and-cache.sh
nixFile nixFile
] ];
);
} }
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgcd7312a" class="outline-5"> <div id="outline-container-org92dfdc5" class="outline-5">
<h5 id="orgcd7312a"><span class="section-number-5">3.2.5.2.</span> sops-decrypt-and-cache</h5> <h5 id="org92dfdc5"><span class="section-number-5">3.2.5.2.</span> sops-decrypt-and-cache</h5>
<div class="outline-text-5" id="text-3-2-5-2"> <div class="outline-text-5" id="text-3-2-5-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-shell">#!/usr/bin/env bash <pre class="src src-shell">#!/usr/bin/env bash
@ -5953,7 +5951,7 @@ in
set -euo pipefail set -euo pipefail
print_out_path=false print_out_path=false
if [[ "$1" == "--print-out-path" ]]; then if [[ $1 == "--print-out-path" ]]; then
print_out_path=true print_out_path=true
shift shift
fi fi
@ -5963,8 +5961,8 @@ shift
basename="$file" basename="$file"
# store path prefix or ./ if applicable # store path prefix or ./ if applicable
[[ "$file" == "/nix/store/"* ]] &amp;&amp; basename="${basename#*"-"}" [[ $file == "/nix/store/"* ]] &amp;&amp; basename="${basename#*"-"}"
[[ "$file" == "./"* ]] &amp;&amp; basename="${basename#"./"}" [[ $file == "./"* ]] &amp;&amp; basename="${basename#"./"}"
# Calculate a unique content-based identifier (relocations of # Calculate a unique content-based identifier (relocations of
# the source file in the nix store should not affect caching) # the source file in the nix store should not affect caching)
@ -5977,13 +5975,13 @@ umask 077
mkdir -p "$(dirname "$out")" mkdir -p "$(dirname "$out")"
# Decrypt only if necessary # Decrypt only if necessary
if [[ ! -e "$out" ]]; then if [[ ! -e $out ]]; then
agekey=$(sudo ssh-to-age -private-key -i /etc/ssh/sops || sudo ssh-to-age -private-key -i /etc/ssh/ssh_host_ed25519_key) agekey=$(sudo ssh-to-age -private-key -i /etc/ssh/sops || sudo ssh-to-age -private-key -i /etc/ssh/ssh_host_ed25519_key)
SOPS_AGE_KEY="$agekey" sops decrypt "${args[@]}" --output "$out" "$file" SOPS_AGE_KEY="$agekey" sops decrypt --output "$out" "$file"
fi fi
# Print out path or decrypted content # Print out path or decrypted content
if [[ "$print_out_path" == true ]]; then if [[ $print_out_path == true ]]; then
echo "$out" echo "$out"
else else
cat "$out" cat "$out"
@ -6193,19 +6191,11 @@ A breakdown of the flags being set:
dates = "weekly"; dates = "weekly";
}; };
channel.enable = false; channel.enable = false;
# registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs;
registry = rec { registry = rec {
nixpkgs.flake = inputs.nixpkgs; nixpkgs.flake = inputs.nixpkgs;
p = nixpkgs; p = nixpkgs;
}; };
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
# extraOptions = ''
# plugin-files = ${pkgs.nix-plugins.overrideAttrs (o: {
# buildInputs = [pkgs.nixVersions.latest pkgs.boost];
# patches = (o.patches or []) ++ [ "${self}/nix/nix-plugins.patch" ];
# })}/lib/nix/plugins
# extra-builtins-file = ${self + /nix/extra-builtins.nix}
# '';
}; };
services.dbus.implementation = "broker"; services.dbus.implementation = "broker";
@ -6224,21 +6214,8 @@ Mostly used to install some compilers and lsp's that I want to have available wh
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ self, lib, config, pkgs, ... }: <pre class="src src-nix">{ lib, config, pkgs, ... }:
# let
# Try to access the extra builtin we loaded via nix-plugins.
# Throw an error if that doesn't exist.
# sopsImportEncrypted =
# assert lib.assertMsg (builtins ? extraBuiltins.sopsImportEncrypted)
# "The extra builtin sopsImportEncrypted' is not available, so repo.secrets cannot be decrypted. Did you forget to add nix-plugins and point it to `./nix/extra-builtins.nix` ?";
# builtins.extraBuiltins.sopsImportEncrypted;
# secretFile = ../../../secrets/repo/packages.nix.age;
# in
{ {
# imports = [
# (sopsImportEncrypted secretFile)
# ];
options.swarselsystems.modules.packages = lib.mkEnableOption "install packages"; options.swarselsystems.modules.packages = lib.mkEnableOption "install packages";
config = lib.mkIf config.swarselsystems.modules.packages { config = lib.mkIf config.swarselsystems.modules.packages {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@ -7324,8 +7301,8 @@ Most of the time I am using <code>power-saver</code>, however, it is good to be
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org7d66c15" class="outline-6"> <div id="outline-container-orga0912b6" class="outline-6">
<h6 id="org7d66c15"><span class="section-number-6">3.3.1.20.6.</span> SwayOSD</h6> <h6 id="orga0912b6"><span class="section-number-6">3.3.1.20.6.</span> SwayOSD</h6>
<div class="outline-text-6" id="text-3-3-1-20-6"> <div class="outline-text-6" id="text-3-3-1-20-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, pkgs, config, ... }: <pre class="src src-nix">{ lib, pkgs, config, ... }:
@ -10170,8 +10147,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org5c1eff2" class="outline-5"> <div id="outline-container-orga72fc5f" class="outline-5">
<h5 id="org5c1eff2"><span class="section-number-5">3.3.2.27.</span> IDM (kanidm + oauth2-proxy)</h5> <h5 id="orga72fc5f"><span class="section-number-5">3.3.2.27.</span> IDM (kanidm + oauth2-proxy)</h5>
<div class="outline-text-5" id="text-3-3-2-27"> <div class="outline-text-5" id="text-3-3-2-27">
<p> <p>
The forgejo configuration is a little broken and will show a 500 error when signing in through kanidm. However, when pressing back and refreshing the page, I am logged in. Currently I cannot be bothered to fix this. The forgejo configuration is a little broken and will show a 500 error when signing in through kanidm. However, when pressing back and refreshing the page, I am logged in. Currently I cannot be bothered to fix this.
@ -10732,8 +10709,8 @@ This smashes Atmosphere 1.3.2 on the switch, which is what I am currenty using.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org0b892d4" class="outline-5"> <div id="outline-container-orge86d03d" class="outline-5">
<h5 id="org0b892d4"><span class="section-number-5">3.3.4.6.</span> Framework</h5> <h5 id="orge86d03d"><span class="section-number-5">3.3.4.6.</span> Framework</h5>
<div class="outline-text-5" id="text-3-3-4-6"> <div class="outline-text-5" id="text-3-3-4-6">
<p> <p>
This holds configuration that is specific to framework laptops. This holds configuration that is specific to framework laptops.
@ -10771,8 +10748,8 @@ This holds configuration that is specific to framework laptops.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org131181f" class="outline-5"> <div id="outline-container-org9bb01a6" class="outline-5">
<h5 id="org131181f"><span class="section-number-5">3.3.4.7.</span> AMD CPU</h5> <h5 id="org9bb01a6"><span class="section-number-5">3.3.4.7.</span> AMD CPU</h5>
<div class="outline-text-5" id="text-3-3-4-7"> <div class="outline-text-5" id="text-3-3-4-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -10788,8 +10765,8 @@ This holds configuration that is specific to framework laptops.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org7a2eac9" class="outline-5"> <div id="outline-container-org2ed326a" class="outline-5">
<h5 id="org7a2eac9"><span class="section-number-5">3.3.4.8.</span> AMD GPU</h5> <h5 id="org2ed326a"><span class="section-number-5">3.3.4.8.</span> AMD GPU</h5>
<div class="outline-text-5" id="text-3-3-4-8"> <div class="outline-text-5" id="text-3-3-4-8">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -10811,8 +10788,8 @@ This holds configuration that is specific to framework laptops.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgcec36da" class="outline-5"> <div id="outline-container-org001805e" class="outline-5">
<h5 id="orgcec36da"><span class="section-number-5">3.3.4.9.</span> Hibernation</h5> <h5 id="org001805e"><span class="section-number-5">3.3.4.9.</span> Hibernation</h5>
<div class="outline-text-5" id="text-3-3-4-9"> <div class="outline-text-5" id="text-3-3-4-9">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -10843,8 +10820,8 @@ This holds configuration that is specific to framework laptops.
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org5a89e28" class="outline-5"> <div id="outline-container-org7477124" class="outline-5">
<h5 id="org5a89e28"><span class="section-number-5">3.3.4.10.</span> BTRFS</h5> <h5 id="org7477124"><span class="section-number-5">3.3.4.10.</span> BTRFS</h5>
<div class="outline-text-5" id="text-3-3-4-10"> <div class="outline-text-5" id="text-3-3-4-10">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -13796,8 +13773,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org2defd4e" class="outline-6"> <div id="outline-container-orgd46f1e1" class="outline-6">
<h6 id="org2defd4e"><span class="section-number-6">3.4.1.29.4.</span> SwayOSD</h6> <h6 id="orgd46f1e1"><span class="section-number-6">3.4.1.29.4.</span> SwayOSD</h6>
<div class="outline-text-6" id="text-3-4-1-29-4"> <div class="outline-text-6" id="text-3-4-1-29-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-nix">{ lib, config, ... }: <pre class="src src-nix">{ lib, config, ... }:
@ -15046,8 +15023,8 @@ in
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org4b44dda" class="outline-5"> <div id="outline-container-org0b1babc" class="outline-5">
<h5 id="org4b44dda"><span class="section-number-5">3.4.4.3.</span> Framework</h5> <h5 id="org0b1babc"><span class="section-number-5">3.4.4.3.</span> Framework</h5>
<div class="outline-text-5" id="text-3-4-4-3"> <div class="outline-text-5" id="text-3-4-4-3">
<p> <p>
This holds configuration that is specific to framework laptops. This holds configuration that is specific to framework laptops.
@ -18887,8 +18864,8 @@ autocmd DocStart vc-impimba-1.m.imp.ac.at/ui/webconsole mode ignore
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgf1e21cc" class="outline-3"> <div id="outline-container-org13d682a" class="outline-3">
<h3 id="orgf1e21cc"><span class="section-number-3">6.3.</span> tridactyl theme</h3> <h3 id="org13d682a"><span class="section-number-3">6.3.</span> tridactyl theme</h3>
<div class="outline-text-3" id="text-6-3"> <div class="outline-text-3" id="text-6-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-config"> <pre class="src src-config">
@ -19385,7 +19362,7 @@ sync USER HOST:
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Leon Schwarzäugl</p> <p class="author">Author: Leon Schwarzäugl</p>
<p class="date">Created: 2025-06-11 Mi 02:13</p> <p class="date">Created: 2025-06-11 Mi 02:27</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View file

@ -1,12 +0,0 @@
{ lib, config, ... }:
{
options.swarselsystems.modules.gc = lib.mkEnableOption "garbage collection config";
config = lib.mkIf config.swarselsystems.modules.gc {
nix.gc = {
automatic = true;
randomizedDelaySec = "14m";
dates = "weekly";
options = "--delete-older-than 10d";
};
};
}

View file

@ -1,4 +1,4 @@
{ lib, config, outputs, inputs, ... }: { lib, pkgs, config, outputs, inputs, ... }:
{ {
options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings"; options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings";
config = lib.mkIf config.swarselsystems.modules.general { config = lib.mkIf config.swarselsystems.modules.general {
@ -9,6 +9,11 @@
}; };
}; };
environment.etc."nixos/configuration.nix".source = pkgs.writeText "configuration.nix" ''
assert builtins.trace "This location is not used. The config is found in ${config.swarselsystems.flakePath}!" false;
{ }
'';
nix = nix =
let let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs; flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
@ -35,11 +40,24 @@
max-jobs = 1; max-jobs = 1;
use-cgroups = lib.mkIf config.swarselsystems.isLinux true; use-cgroups = lib.mkIf config.swarselsystems.isLinux true;
}; };
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 10d";
};
optimise = {
automatic = true;
dates = "weekly";
};
channel.enable = false; channel.enable = false;
registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs; registry = rec {
nixpkgs.flake = inputs.nixpkgs;
p = nixpkgs;
};
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
}; };
services.dbus.implementation = "broker";
system.stateVersion = lib.mkDefault "23.05"; system.stateVersion = lib.mkDefault "23.05";
}; };
} }

View file

@ -1,10 +0,0 @@
{ lib, config, ... }:
{
options.swarselsystems.modules.storeOptimize = lib.mkEnableOption "store optimization config";
config = lib.mkIf config.swarselsystems.modules.storeOptimize {
nix.optimise = {
automatic = true;
dates = [ "weekly" ];
};
};
}

View file

@ -9,8 +9,6 @@ in
"${modulesPath}/nixos/common/home-manager.nix" "${modulesPath}/nixos/common/home-manager.nix"
"${modulesPath}/nixos/common/home-manager-extra.nix" "${modulesPath}/nixos/common/home-manager-extra.nix"
"${modulesPath}/nixos/common/xserver.nix" "${modulesPath}/nixos/common/xserver.nix"
"${modulesPath}/nixos/common/gc.nix"
"${modulesPath}/nixos/common/store.nix"
"${modulesPath}/nixos/common/time.nix" "${modulesPath}/nixos/common/time.nix"
"${modulesPath}/nixos/common/users.nix" "${modulesPath}/nixos/common/users.nix"
"${modulesPath}/nixos/common/nix-ld.nix" "${modulesPath}/nixos/common/nix-ld.nix"

View file

@ -11,8 +11,6 @@
users = lib.mkDefault true; users = lib.mkDefault true;
env = lib.mkDefault true; env = lib.mkDefault true;
security = lib.mkDefault true; security = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
systemdTimeout = lib.mkDefault true; systemdTimeout = lib.mkDefault true;
hardware = lib.mkDefault true; hardware = lib.mkDefault true;
pulseaudio = lib.mkDefault true; pulseaudio = lib.mkDefault true;

View file

@ -9,8 +9,6 @@
home-manager = lib.mkDefault true; home-manager = lib.mkDefault true;
home-managerExtra = lib.mkDefault true; home-managerExtra = lib.mkDefault true;
xserver = lib.mkDefault true; xserver = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
time = lib.mkDefault true; time = lib.mkDefault true;
users = lib.mkDefault true; users = lib.mkDefault true;
server = { server = {

View file

@ -11,8 +11,6 @@
users = lib.mkDefault true; users = lib.mkDefault true;
env = lib.mkDefault true; env = lib.mkDefault true;
security = lib.mkDefault true; security = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
systemdTimeout = lib.mkDefault true; systemdTimeout = lib.mkDefault true;
hardware = lib.mkDefault true; hardware = lib.mkDefault true;
pulseaudio = lib.mkDefault true; pulseaudio = lib.mkDefault true;

View file

@ -9,8 +9,6 @@
home-manager = lib.mkDefault true; home-manager = lib.mkDefault true;
home-managerExtra = lib.mkDefault true; home-managerExtra = lib.mkDefault true;
xserver = lib.mkDefault true; xserver = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
time = lib.mkDefault true; time = lib.mkDefault true;
users = lib.mkDefault true; users = lib.mkDefault true;
server = { server = {