From a1617e71bdb18d568649f501a7249fb446550838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20Schwarz=C3=A4ugl?= Date: Wed, 16 Jul 2025 18:23:00 +0200 Subject: [PATCH] WIP share configuraton between nixos / homemanager --- SwarselSystems.org | 978 +++++++++--------- hosts/nixos/bakery/default.nix | 16 +- hosts/nixos/chaostheatre/default.nix | 10 +- hosts/nixos/milkywell/default.nix | 10 +- hosts/nixos/moonside/default.nix | 6 +- hosts/nixos/pyramid/default.nix | 112 +- hosts/nixos/toto/default.nix | 10 +- hosts/nixos/winters/default.nix | 6 +- modules/home/common/atuin.nix | 4 +- modules/home/common/custom-packages.nix | 4 +- modules/home/common/default.nix | 6 +- modules/home/common/desktop.nix | 4 +- modules/home/common/direnv.nix | 4 +- modules/home/common/emacs.nix | 4 +- modules/home/common/env.nix | 4 +- modules/home/common/eza.nix | 4 +- modules/home/common/firefox.nix | 4 +- modules/home/common/fuzzel.nix | 4 +- modules/home/common/gammastep.nix | 4 +- modules/home/common/git.nix | 4 +- modules/home/common/gnome-keyring.nix | 4 +- modules/home/common/gpg-agent.nix | 4 +- modules/home/common/kanshi.nix | 4 +- modules/home/common/kdeconnect.nix | 4 +- modules/home/common/kitty.nix | 4 +- modules/home/common/mail.nix | 4 +- modules/home/common/mako.nix | 4 +- modules/home/common/nix-index.nix | 4 +- modules/home/common/nixgl.nix | 4 +- modules/home/common/packages.nix | 4 +- modules/home/common/password-store.nix | 4 +- modules/home/common/programs.nix | 4 +- modules/home/common/settings.nix | 4 +- modules/home/common/sharedoptions.nix | 12 + modules/home/common/sops.nix | 4 +- modules/home/common/ssh.nix | 4 +- modules/home/common/starship.nix | 4 +- modules/home/common/stylix.nix | 4 +- modules/home/common/sway.nix | 4 +- modules/home/common/swayosd.nix | 4 +- modules/home/common/symlink.nix | 4 +- modules/home/common/tmux.nix | 4 +- modules/home/common/waybar.nix | 4 +- .../home/common/yubikey-touch-detector.nix | 4 +- modules/home/common/yubikey.nix | 4 +- modules/home/common/zellij.nix | 4 +- modules/home/common/zsh.nix | 4 +- modules/home/darwin/default.nix | 3 +- modules/home/optional/framework.nix | 4 +- modules/home/optional/gaming.nix | 4 +- modules/home/optional/work.nix | 4 +- modules/home/server/default.nix | 1 - modules/home/server/symlink.nix | 4 +- modules/nixos/client/appimage.nix | 4 +- modules/nixos/client/autologin.nix | 4 +- modules/nixos/client/blueman.nix | 4 +- modules/nixos/client/distrobox.nix | 4 +- modules/nixos/client/env.nix | 4 +- modules/nixos/client/gnome-keyring.nix | 4 +- modules/nixos/client/gvfs.nix | 4 +- modules/nixos/client/hardware.nix | 4 +- .../hardwarecompatibility-keyboards.nix | 4 +- .../client/hardwarecompatibility-ledger.nix | 4 +- .../client/hardwarecompatibility-yubikey.nix | 4 +- modules/nixos/client/interceptiontools.nix | 4 +- modules/nixos/client/lid.nix | 4 +- modules/nixos/client/login.nix | 4 +- modules/nixos/client/lowbattery.nix | 4 +- modules/nixos/client/network.nix | 4 +- modules/nixos/client/networkdevices.nix | 4 +- modules/nixos/client/nix-ld.nix | 4 +- modules/nixos/client/nvd-rebuild.nix | 4 +- modules/nixos/client/packages.nix | 4 +- modules/nixos/client/pipewire.nix | 4 +- modules/nixos/client/polkit.nix | 4 +- .../nixos/client/power-profiles-daemon.nix | 4 +- modules/nixos/client/programs.nix | 4 +- modules/nixos/client/pulseaudio.nix | 4 +- modules/nixos/client/sops.nix | 4 +- modules/nixos/client/stylix.nix | 4 +- modules/nixos/client/sway.nix | 4 +- modules/nixos/client/swayosd.nix | 4 +- modules/nixos/client/syncthing.nix | 4 +- modules/nixos/client/systemd.nix | 4 +- modules/nixos/client/xdg-portal.nix | 4 +- modules/nixos/client/zsh.nix | 4 +- modules/nixos/common/home-manager.nix | 6 +- modules/nixos/common/impermanence.nix | 4 +- modules/nixos/common/lanzaboote.nix | 4 +- modules/nixos/common/pii.nix | 4 +- modules/nixos/common/settings.nix | 4 +- modules/nixos/common/sharedsetup.nix | 27 - modules/nixos/common/time.nix | 4 +- modules/nixos/common/users.nix | 4 +- modules/nixos/common/xserver.nix | 4 +- modules/nixos/darwin/default.nix | 4 +- modules/nixos/optional/amdcpu.nix | 4 +- modules/nixos/optional/amdgpu.nix | 4 +- modules/nixos/optional/btrfs.nix | 4 +- modules/nixos/optional/default.nix | 7 +- modules/nixos/optional/framework.nix | 4 +- modules/nixos/optional/gaming.nix | 4 +- modules/nixos/optional/hibernation.nix | 4 +- modules/nixos/optional/nswitch-rcm.nix | 4 +- modules/nixos/optional/virtualbox.nix | 4 +- modules/nixos/optional/vmware.nix | 4 +- modules/nixos/optional/work.nix | 4 +- modules/nixos/server/ankisync.nix | 4 +- modules/nixos/server/atuin.nix | 4 +- modules/nixos/server/croc.nix | 4 +- modules/nixos/server/emacs.nix | 4 +- modules/nixos/server/firefly-iii.nix | 4 +- modules/nixos/server/forgejo.nix | 4 +- modules/nixos/server/freshrss.nix | 4 +- modules/nixos/server/immich.nix | 4 +- modules/nixos/server/jellyfin.nix | 4 +- modules/nixos/server/jenkins.nix | 4 +- modules/nixos/server/kanidm.nix | 4 +- modules/nixos/server/kavita.nix | 4 +- modules/nixos/server/koillection.nix | 4 +- modules/nixos/server/matrix.nix | 4 +- modules/nixos/server/microbin.nix | 4 +- modules/nixos/server/monitoring.nix | 6 +- modules/nixos/server/mpd.nix | 4 +- modules/nixos/server/navidrome.nix | 4 +- modules/nixos/server/nextcloud.nix | 4 +- modules/nixos/server/nfs.nix | 4 +- modules/nixos/server/nginx.nix | 4 +- modules/nixos/server/oauth2-proxy.nix | 4 +- modules/nixos/server/packages.nix | 4 +- modules/nixos/server/paperless.nix | 4 +- modules/nixos/server/pipewire.nix | 2 +- modules/nixos/server/postgresql.nix | 4 +- modules/nixos/server/radicale.nix | 4 +- modules/nixos/server/restic.nix | 4 +- modules/nixos/server/settings.nix | 5 +- modules/nixos/server/shlink.nix | 4 +- modules/nixos/server/spotifyd.nix | 4 +- modules/nixos/server/ssh.nix | 4 +- modules/nixos/server/syncthing.nix | 4 +- modules/nixos/server/transmission.nix | 4 +- .../{home/common => shared}/sharedsetup.nix | 31 +- profiles/home/chaostheatre/default.nix | 6 +- profiles/home/darwin/default.nix | 10 - profiles/home/framework/default.nix | 6 +- profiles/home/localserver/default.nix | 6 +- profiles/home/minimal/default.nix | 6 +- profiles/home/personal/default.nix | 6 +- profiles/home/reduced/default.nix | 6 +- profiles/home/toto/default.nix | 6 +- profiles/home/work/default.nix | 6 +- profiles/nixos/amdcpu/default.nix | 6 +- profiles/nixos/amdgpu/default.nix | 6 +- profiles/nixos/btrfs/default.nix | 6 +- profiles/nixos/chaostheatre/default.nix | 6 +- profiles/nixos/framework/default.nix | 6 +- profiles/nixos/hibernation/default.nix | 6 +- profiles/nixos/localserver/default.nix | 80 +- profiles/nixos/minimal/default.nix | 6 +- profiles/nixos/moonside/default.nix | 40 +- profiles/nixos/personal/default.nix | 6 +- profiles/nixos/reduced/default.nix | 6 +- profiles/nixos/syncserver/default.nix | 36 +- profiles/nixos/toto/default.nix | 6 +- profiles/nixos/work/default.nix | 6 +- 165 files changed, 994 insertions(+), 1032 deletions(-) create mode 100644 modules/home/common/sharedoptions.nix delete mode 100644 modules/nixos/common/sharedsetup.nix rename modules/{home/common => shared}/sharedsetup.nix (93%) delete mode 100644 profiles/home/darwin/default.nix diff --git a/SwarselSystems.org b/SwarselSystems.org index a31f31c..540dd85 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -1771,81 +1771,79 @@ My work machine. Built for more security, this is the gold standard of my config { self, config, inputs, lib, minimal, ... }: let primaryUser = config.swarselsystems.mainUser; - sharedOptions = { - isLaptop = true; - isNixos = true; - isBtrfs = true; - isLinux = true; - sharescreen = "eDP-2"; - profiles = { + in + { + + imports = [ + inputs.nixos-hardware.nixosModules.framework-16-7040-amd + + ./disk-config.nix + ./hardware-configuration.nix + + ]; + + + swarselprofiles = { personal = lib.mkIf (!minimal) true; minimal = lib.mkIf minimal true; work = lib.mkIf (!minimal) true; framework = lib.mkIf (!minimal) true; + amdcpu = true; + amdgpu = true; + hibernation = true; + btrfs = true; }; - }; - in - { - - imports = [ - inputs.nixos-hardware.nixosModules.framework-16-7040-amd - - ./disk-config.nix - ./hardware-configuration.nix - - ]; - - - swarselsystems = lib.recursiveUpdate - { - info = "Framework Laptop 16, 7940HS, RX7700S, 64GB RAM"; - firewall = lib.mkForce true; - wallpaper = self + /files/wallpaper/lenovowp.png; - hasBluetooth = true; - hasFingerprint = true; - isImpermanence = false; - isSecureBoot = true; - isCrypted = true; - inherit (config.repo.secrets.local) hostName; - inherit (config.repo.secrets.local) fqdn; - hibernation.offset = 533760; - profiles = { - amdcpu = true; - amdgpu = true; - hibernation = true; - btrfs = true; + swarselsystems = { + isLaptop = true; + isNixos = true; + isBtrfs = true; + isLinux = true; + sharescreen = "eDP-2"; + info = "Framework Laptop 16, 7940HS, RX7700S, 64GB RAM"; + firewall = lib.mkForce true; + wallpaper = self + /files/wallpaper/lenovowp.png; + hasBluetooth = true; + hasFingerprint = true; + isImpermanence = false; + isSecureBoot = true; + isCrypted = true; + inherit (config.repo.secrets.local) hostName; + inherit (config.repo.secrets.local) fqdn; + hibernation.offset = 533760; }; - } - sharedOptions; - home-manager.users."${primaryUser}" = { - # home.stateVersion = lib.mkForce "23.05"; - swarselsystems = lib.recursiveUpdate - { - isSecondaryGpu = true; - SecondaryGpuCard = "pci-0000_03_00_0"; - cpuCount = 16; - temperatureHwmon = { - isAbsolutePath = true; - path = "/sys/devices/virtual/thermal/thermal_zone0/"; - input-filename = "temp4_input"; - }; - lowResolution = "1280x800"; - highResolution = "2560x1600"; - monitors = { - main = { - name = "BOE 0x0BC9 Unknown"; - mode = "2560x1600"; # TEMPLATE - scale = "1"; - position = "2560,0"; - workspace = "15:L"; - output = "eDP-2"; + home-manager.users."${primaryUser}" = { + # home.stateVersion = lib.mkForce "23.05"; + swarselprofiles = { + personal = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + work = lib.mkIf (!minimal) true; + framework = lib.mkIf (!minimal) true; + }; + swarselsystems = { + isSecondaryGpu = true; + SecondaryGpuCard = "pci-0000_03_00_0"; + cpuCount = 16; + temperatureHwmon = { + isAbsolutePath = true; + path = "/sys/devices/virtual/thermal/thermal_zone0/"; + input-filename = "temp4_input"; + }; + lowResolution = "1280x800"; + highResolution = "2560x1600"; + monitors = { + main = { + name = "BOE 0x0BC9 Unknown"; + mode = "2560x1600"; # TEMPLATE + scale = "1"; + position = "2560,0"; + workspace = "15:L"; + output = "eDP-2"; + }; }; }; - } - sharedOptions; - }; - } + }; + } @@ -2038,10 +2036,6 @@ My personal laptop. isBtrfs = true; isLinux = true; sharescreen = "eDP-1"; - profiles = { - reduced = lib.mkIf (!minimal) true; - minimal = lib.mkIf minimal true; - }; }; in { @@ -2054,6 +2048,11 @@ My personal laptop. ]; + swarselprofiles = { + reduced = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + btrfs = true; + }; swarselsystems = lib.recursiveUpdate { @@ -2069,13 +2068,14 @@ My personal laptop. rootDisk = "/dev/nvme0n1"; swapSize = "4G"; hostName = config.node.name; - profiles = { - btrfs = true; - }; } sharedOptions; home-manager.users."${primaryUser}" = { + swarselprofiles = { + reduced = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + }; # home.stateVersion = lib.mkForce "23.05"; swarselsystems = lib.recursiveUpdate { @@ -2279,9 +2279,6 @@ This is my main server that I run at home. It handles most tasks that require bi isBtrfs = false; isLinux = true; isNixos = true; - profiles = { - server.local = true; - }; }; in { @@ -2304,6 +2301,9 @@ This is my main server that I run at home. It handles most tasks that require bi }; + swarselprofiles = { + server.local = true; + }; swarselsystems = lib.recursiveUpdate { info = "ASRock J4105-ITX, 32GB RAM"; @@ -2502,9 +2502,6 @@ This machine mainly acts as an external sync helper. It manages the following th isLinux = true; isNixos = true; }; - profiles = { - minimal = lib.mkIf minimal true; - }; in { imports = [ @@ -2528,6 +2525,10 @@ This machine mainly acts as an external sync helper. It manages the following th enableAllFirmware = lib.mkForce false; }; + swarselprofiles = { + minimal = lib.mkIf minimal true; + server.syncserver = true; + }; swarselsystems = lib.recursiveUpdate { info = "VM.Standard.E2.1.Micro"; @@ -2537,9 +2538,6 @@ This machine mainly acts as an external sync helper. It manages the following th isSwap = true; rootDisk = "/dev/sda"; swapSize = "4G"; - profiles = { - server.syncserver = true; - }; } sharedOptions; @@ -2909,6 +2907,9 @@ This machine mainly acts as an external sync helper. It manages the following th }; }; + swarselprofiles = { + server.moonside = true; + }; swarselsystems = lib.recursiveUpdate { info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM"; @@ -2917,9 +2918,6 @@ This machine mainly acts as an external sync helper. It manages the following th isCrypted = false; isSwap = false; rootDisk = "/dev/sda"; - profiles = { - server.moonside = true; - }; } sharedOptions; @@ -3110,10 +3108,6 @@ This is a slim setup for developing base configuration. I do not track the hardw sharedOptions = { isBtrfs = true; isLinux = true; - profiles = { - toto = lib.mkIf (!minimal) true; - minimal = lib.mkIf minimal true; - }; }; in { @@ -3130,6 +3124,11 @@ This is a slim setup for developing base configuration. I do not track the hardw firewall.enable = false; }; + swarselprofiles = { + toto = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + btrfs = true; + }; swarselsystems = lib.recursiveUpdate { info = "~SwarselSystems~ remote install helper"; @@ -3141,7 +3140,6 @@ This is a slim setup for developing base configuration. I do not track the hardw swapSize = "2G"; # rootDisk = "/dev/nvme0n1"; rootDisk = "/dev/vda"; - profiles.btrfs = true; # rootDisk = "/dev/vda"; } sharedOptions; @@ -3544,10 +3542,6 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru isBtrfs = false; isLinux = true; isPublic = true; - profiles = { - chaostheatre = lib.mkIf (!minimal) true; - minimal = lib.mkIf minimal true; - }; }; in { @@ -3577,6 +3571,11 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru firewall.enable = true; }; + swarselprofiles = { + chaostheatre = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + btrfs = true; + }; swarselsystems = lib.recursiveUpdate { info = "~SwarselSystems~ demo host"; @@ -3587,7 +3586,6 @@ I also set the =WLR_RENDERER_ALLOW_SOFTWARE=1= to allow this configuration to ru isSwap = true; swapSize = "4G"; rootDisk = "/dev/vda"; - profiles.btrfs = true; } sharedOptions; @@ -3966,41 +3964,25 @@ This section is for setting things that should be used on hosts that are using t } #+end_src -**** Shared Configuration Options (automatically active) +**** Mirror home-manager shared options (automatically active) :PROPERTIES: -:CUSTOM_ID: h:f4f22166-e345-43e6-b15f-b7f5bb886554 +:CUSTOM_ID: h:30b81bf9-1e69-4ce8-88af-5592896bcee4 :END: -I usually use =mutableUsers = false= in my NixOS configuration. However, on a new system where sops-keys have not been deployed, this would immediately lock me out of the system. Hence this flag can be used until sops-keys are created. -#+begin_src nix-ts :tangle modules/nixos/common/sharedsetup.nix - { lib, ... }: - { - options = { - swarselsystems = { - withHomeManager = lib.mkOption { - type = lib.types.bool; - default = true; - }; - isSwap = lib.mkOption { - type = lib.types.bool; - default = true; - }; - swapSize = lib.mkOption { - type = lib.types.str; - default = "8G"; - }; - rootDisk = lib.mkOption { - type = lib.types.str; - default = ""; - }; - isCrypted = lib.mkEnableOption "uses full disk encryption"; - - isImpermanence = lib.mkEnableOption "use impermanence on this system"; - isSecureBoot = lib.mkEnableOption "use secure boot on this system"; - }; - }; - } +#+begin_src nix-ts :tangle modules/home/common/sharedoptions.nix + { lib, config, nixosConfig, ... }: + let + # mirrorAttrs = lib.mapAttrs (_: v: lib.mkDefault v) nixosConfig.swarselsystems; + inherit (lib) mkDefault mapAttrs filterAttrs; + mkDefaultCommonAttrs = base: defaults: + lib.mapAttrs (_: v: lib.mkDefault v) + (lib.filterAttrs (k: _: base ? ${k}) defaults); + in + { + # config.swarselsystems = mirrorAttrs; + config.swarselsystems = mkDefaultCommonAttrs config.swarselsystems nixosConfig.swarselsystems; + } #+end_src **** Topology (automatically active) @@ -4111,8 +4093,8 @@ A breakdown of the flags being set: }; in { - options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings"; - config = lib.mkIf config.swarselsystems.modules.general + options.swarselmodules.general = lib.mkEnableOption "general nix settings"; + config = lib.mkIf config.swarselmodules.general (lib.recursiveUpdate { sops.secrets.github-api-token = lib.mkIf (!minimal) { @@ -4168,10 +4150,10 @@ A breakdown of the flags being set: We enable the use of =home-manager= as a NixoS module. A nice trick here is the =extraSpecialArgs = inputs= line, which enables the use of =seflf= in most parts of the configuration. This is useful to refer to the root of the flake (which is otherwise quite hard while maintaining flake purity). #+begin_src nix-ts :tangle modules/nixos/common/home-manager.nix - { self, inputs, config, lib, outputs, globals, nodes, minimal, configName, ... }: + { self, inputs, config, lib, outputs, globals, options, nodes, minimal, configName, ... }: { - options.swarselsystems.modules.home-manager = lib.mkEnableOption "home-manager"; - config = lib.mkIf config.swarselsystems.modules.home-manager { + options.swarselmodules.home-manager = lib.mkEnableOption "home-manager"; + config = lib.mkIf config.swarselmodules.home-manager { home-manager = lib.mkIf config.swarselsystems.withHomeManager { useGlobalPkgs = true; useUserPackages = true; @@ -4215,8 +4197,8 @@ For that reason, make sure that =sops-nix= is properly working before finishing sopsFile = self + /secrets/general/secrets.yaml; in { - options.swarselsystems.modules.users = lib.mkEnableOption "user config"; - config = lib.mkIf config.swarselsystems.modules.users { + options.swarselmodules.users = lib.mkEnableOption "user config"; + config = lib.mkIf config.swarselmodules.users { sops.secrets.main-user-hashed-pw = lib.mkIf (!config.swarselsystems.isPublic) { inherit sopsFile; neededForUsers = true; }; users = { @@ -4244,8 +4226,8 @@ Next, we setup the keymap in case we are not in a graphical session. At this poi #+begin_src nix-ts :tangle modules/nixos/common/xserver.nix { lib, config, ... }: { - options.swarselsystems.modules.xserver = lib.mkEnableOption "xserver keymap"; - config = lib.mkIf config.swarselsystems.modules.packages { + options.swarselmodules.xserver = lib.mkEnableOption "xserver keymap"; + config = lib.mkIf config.swarselmodules.packages { services.xserver = { xkb = { layout = "us"; @@ -4266,8 +4248,8 @@ Setup timezone and locale. I want to use the US layout, but have the rest adapte #+begin_src nix-ts :tangle modules/nixos/common/time.nix { lib, config, ... }: { - options.swarselsystems.modules.time = lib.mkEnableOption "time config"; - config = lib.mkIf config.swarselsystems.modules.time { + options.swarselmodules.time = lib.mkEnableOption "time config"; + config = lib.mkIf config.swarselmodules.time { time = { timeZone = "Europe/Vienna"; # hardwareClockInLocalTime = true; @@ -4359,9 +4341,9 @@ This is also exposed to home-manager configurations, in case this ever breaks, I description = "Exposes the loaded repo secrets. This option is read-only."; }; }; - swarselsystems.modules.pii = lib.mkEnableOption "enable pii management"; + swarselmodules.pii = lib.mkEnableOption "enable pii management"; }; - config = lib.mkIf config.swarselsystems.modules.pii { + config = lib.mkIf config.swarselmodules.pii { repo.secretFiles = let local = config.node.secretsDir + "/pii.nix.enc"; @@ -4384,8 +4366,8 @@ This dynamically uses systemd boot or Lanzaboote depending on the minimal system #+begin_src nix-ts :tangle modules/nixos/common/lanzaboote.nix { lib, pkgs, config, minimal, ... }: { - options.swarselsystems.modules.lanzaboote = lib.mkEnableOption "lanzaboote config"; - config = lib.mkIf config.swarselsystems.modules.lanzaboote { + options.swarselmodules.lanzaboote = lib.mkEnableOption "lanzaboote config"; + config = lib.mkIf config.swarselmodules.lanzaboote { environment.systemPackages = lib.mkIf config.swarselsystems.isSecureBoot [ pkgs.sbctl @@ -4422,8 +4404,8 @@ Normally, doing that also resets the lecture that happens on the first use of =s inherit (config.swarselsystems) isImpermanence isCrypted; in { - options.swarselsystems.modules.impermanence = lib.mkEnableOption "impermanence config"; - config = lib.mkIf config.swarselsystems.modules.impermanence { + options.swarselmodules.impermanence = lib.mkEnableOption "impermanence config"; + config = lib.mkIf config.swarselmodules.impermanence { security.sudo.extraConfig = lib.mkIf isImpermanence '' @@ -4544,8 +4526,8 @@ Mostly used to install some compilers and lsp's that I want to have available wh #+begin_src nix-ts :tangle modules/nixos/client/packages.nix { lib, config, pkgs, minimal, ... }: { - options.swarselsystems.modules.packages = lib.mkEnableOption "install packages"; - config = lib.mkIf config.swarselsystems.modules.packages { + options.swarselmodules.packages = lib.mkEnableOption "install packages"; + config = lib.mkIf config.swarselmodules.packages { environment.systemPackages = with pkgs; lib.optionals (!minimal) [ # yubikey packages @@ -4650,8 +4632,8 @@ Next, we will setup some environment variables that need to be set on the system #+begin_src nix-ts :tangle modules/nixos/client/env.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.env = lib.mkEnableOption "environment config"; - config = lib.mkIf config.swarselsystems.modules.env { + options.swarselmodules.env = lib.mkEnableOption "environment config"; + config = lib.mkIf config.swarselmodules.env { environment = { wordlist.enable = true; @@ -4679,8 +4661,8 @@ Needed for control over system-wide privileges etc. Also I make sure that the ro #+begin_src nix-ts :tangle modules/nixos/client/polkit.nix { lib, config, minimal, ... }: { - options.swarselsystems.modules.security = lib.mkEnableOption "security config"; - config = lib.mkIf config.swarselsystems.modules.security { + options.swarselmodules.security = lib.mkEnableOption "security config"; + config = lib.mkIf config.swarselmodules.security { security = { pam.services = lib.mkIf (!minimal) { @@ -4712,8 +4694,8 @@ There is a persistent bug over Linux kernels that makes the user wait 1m30s on s #+begin_src nix-ts :tangle modules/nixos/client/systemd.nix { lib, config, ... }: { - options.swarselsystems.modules.systemdTimeout = lib.mkEnableOption "systemd timeout config"; - config = lib.mkIf config.swarselsystems.modules.systemdTimeout { + options.swarselmodules.systemdTimeout = lib.mkEnableOption "systemd timeout config"; + config = lib.mkIf config.swarselmodules.systemdTimeout { # systemd systemd.extraConfig = '' DefaultTimeoutStartSec=60s @@ -4734,8 +4716,8 @@ Enable OpenGL, Sound, Bluetooth and various drivers. { pkgs, config, lib, ... }: { + options.swarselmodules.hardware = lib.mkEnableOption "hardware config"; options.swarselsystems = { - modules.hardware = lib.mkEnableOption "hardware config"; hasBluetooth = lib.mkEnableOption "bluetooth availability"; hasFingerprint = lib.mkEnableOption "fingerprint sensor availability"; trackpoint = { @@ -4746,7 +4728,7 @@ Enable OpenGL, Sound, Bluetooth and various drivers. }; }; }; - config = lib.mkIf config.swarselsystems.modules.hardware { + config = lib.mkIf config.swarselmodules.hardware { hardware = { # opengl.driSupport32Bit = true is replaced with graphics.enable32Bit and hence redundant graphics = { @@ -4792,8 +4774,8 @@ This is only used on systems not running Pipewire. #+begin_src nix-ts :tangle modules/nixos/client/pulseaudio.nix { config, pkgs, lib, ... }: { - options.swarselsystems.modules.pulseaudio = lib.mkEnableOption "pulseaudio config"; - config = lib.mkIf config.swarselsystems.modules.pulseaudio { + options.swarselmodules.pulseaudio = lib.mkEnableOption "pulseaudio config"; + config = lib.mkIf config.swarselmodules.pulseaudio { services.pulseaudio = { enable = lib.mkIf (!config.services.pipewire.enable) true; package = pkgs.pulseaudioFull; @@ -4812,8 +4794,8 @@ Pipewire handles communication on Wayland. This enables several sound tools as w #+begin_src nix-ts :tangle modules/nixos/client/pipewire.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.pipewire = lib.mkEnableOption "pipewire config"; - config = lib.mkIf config.swarselsystems.modules.pipewire { + options.swarselmodules.pipewire = lib.mkEnableOption "pipewire config"; + config = lib.mkIf config.swarselmodules.pipewire { security.rtkit.enable = true; # this is required for pipewire real-time access services.pipewire = { @@ -4851,10 +4833,10 @@ Here I only enable =networkmanager= and a few default networks. The rest of the in { options.swarselsystems = { - modules.network = lib.mkEnableOption "network config"; firewall = lib.swarselsystems.mkTrueOption; }; - config = lib.mkIf config.swarselsystems.modules.network { + options.swarselmodules.network = lib.mkEnableOption "network config"; + config = lib.mkIf config.swarselmodules.network { sops = { secrets = lib.mkIf (!config.swarselsystems.isPublic) { @@ -5174,8 +5156,8 @@ I use sops-nix to handle secrets that I want to have available on my machines at #+begin_src nix-ts :tangle modules/nixos/client/sops.nix { config, lib, ... }: { - options.swarselsystems.modules.sops = lib.mkEnableOption "sops config"; - config = lib.mkIf config.swarselsystems.modules.sops { + options.swarselmodules.sops = lib.mkEnableOption "sops config"; + config = lib.mkIf config.swarselmodules.sops { sops = { # age.sshKeyPaths = lib.swarselsystems.mkIfElseList config.swarselsystems.isBtrfs [ "/persist/.ssh/sops" "/persist/.ssh/ssh_host_ed25519_key" ] [ "${config.swarselsystems.homeDir}/.ssh/sops" "/etc/ssh/sops" "/etc/ssh/ssh_host_ed25519_key" ]; @@ -5201,12 +5183,12 @@ By default, [[https://github.com/danth/stylix][stylix]] wants to style GRUB as w #+begin_src nix-ts :noweb yes :tangle modules/nixos/client/stylix.nix { self, lib, config, ... }: { - options.swarselsystems.modules.stylix = lib.mkEnableOption "stylix config"; + options.swarselmodules.stylix = lib.mkEnableOption "stylix config"; config = { stylix = { enable = true; base16Scheme = "${self}/files/stylix/swarsel.yaml"; - } // lib.optionalAttrs config.swarselsystems.modules.stylix + } // lib.optionalAttrs config.swarselmodules.stylix (lib.recursiveUpdate { targets.grub.enable = false; # the styling makes grub more ugly @@ -5232,8 +5214,8 @@ Some programs profit from being installed through dedicated NixOS settings on sy #+begin_src nix-ts :tangle modules/nixos/client/programs.nix { lib, config, ... }: { - options.swarselsystems.modules.programs = lib.mkEnableOption "small program modules config"; - config = lib.mkIf config.swarselsystems.modules.programs { + options.swarselmodules.programs = lib.mkEnableOption "small program modules config"; + config = lib.mkIf config.swarselmodules.programs { programs = { dconf.enable = true; evince.enable = true; @@ -5252,8 +5234,8 @@ Here I disable global completion to prevent redundant compinit calls and cache i #+begin_src nix-ts :tangle modules/nixos/client/zsh.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.zsh = lib.mkEnableOption "zsh base config"; - config = lib.mkIf config.swarselsystems.modules.zsh { + options.swarselmodules.zsh = lib.mkEnableOption "zsh base config"; + config = lib.mkIf config.swarselmodules.zsh { programs.zsh = { enable = true; enableCompletion = false; @@ -5275,8 +5257,8 @@ Here I disable global completion to prevent redundant compinit calls and cache i inherit (config.swarselsystems) mainUser homeDir; in { - options.swarselsystems.modules.syncthing = lib.mkEnableOption "syncthing config"; - config = lib.mkIf config.swarselsystems.modules.syncthing { + options.swarselmodules.syncthing = lib.mkEnableOption "syncthing config"; + config = lib.mkIf config.swarselmodules.syncthing { services.syncthing = { enable = true; package = pkgs.stable.syncthing; @@ -5349,8 +5331,8 @@ Enables the blueman service including the nice system tray icon. #+begin_src nix-ts :tangle modules/nixos/client/blueman.nix { lib, config, ... }: { - options.swarselsystems.modules.blueman = lib.mkEnableOption "blueman config"; - config = lib.mkIf config.swarselsystems.modules.blueman { + options.swarselmodules.blueman = lib.mkEnableOption "blueman config"; + config = lib.mkIf config.swarselmodules.blueman { services.blueman.enable = true; services.hardware.bolt.enable = true; }; @@ -5371,8 +5353,8 @@ Avahi is the service used for the network discovery. #+begin_src nix-ts :tangle modules/nixos/client/networkdevices.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.networkDevices = lib.mkEnableOption "network device config"; - config = lib.mkIf config.swarselsystems.modules.networkDevices { + options.swarselmodules.networkDevices = lib.mkEnableOption "network device config"; + config = lib.mkIf config.swarselmodules.networkDevices { # enable scanners over network hardware.sane = { enable = true; @@ -5414,8 +5396,8 @@ This is being set to allow myself to use all functions of nautilus in NixOS #+begin_src nix-ts :tangle modules/nixos/client/gvfs.nix { lib, config, ... }: { - options.swarselsystems.modules.gvfs = lib.mkEnableOption "gvfs config for nautilus"; - config = lib.mkIf config.swarselsystems.modules.gvfs { + options.swarselmodules.gvfs = lib.mkEnableOption "gvfs config for nautilus"; + config = lib.mkIf config.swarselmodules.gvfs { services.gvfs.enable = true; }; } @@ -5431,8 +5413,8 @@ This is a super-convenient package that lets my remap my =CAPS= key to =ESC= if #+begin_src nix-ts :tangle modules/nixos/client/interceptiontools.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.interceptionTools = lib.mkEnableOption "interception tools config"; - config = lib.mkIf config.swarselsystems.modules.interceptionTools { + options.swarselmodules.interceptionTools = lib.mkEnableOption "interception tools config"; + config = lib.mkIf config.swarselmodules.interceptionTools { # Make CAPS work as a dual function ESC/CTRL key services.interception-tools = { enable = true; @@ -5479,8 +5461,8 @@ Most of the time I am using =power-saver=, however, it is good to be able to cho #+begin_src nix-ts :tangle modules/nixos/client/power-profiles-daemon.nix { lib, config, ... }: { - options.swarselsystems.modules.ppd = lib.mkEnableOption "power profiles daemon config"; - config = lib.mkIf config.swarselsystems.modules.ppd { + options.swarselmodules.ppd = lib.mkEnableOption "power profiles daemon config"; + config = lib.mkIf config.swarselmodules.ppd { services.power-profiles-daemon.enable = true; }; } @@ -5494,8 +5476,8 @@ Most of the time I am using =power-saver=, however, it is good to be able to cho #+begin_src nix-ts :tangle modules/nixos/client/swayosd.nix { lib, pkgs, config, ... }: { - options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings"; - config = lib.mkIf config.swarselsystems.modules.swayosd { + options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings"; + config = lib.mkIf config.swarselmodules.swayosd { environment.systemPackages = [ pkgs.dev.swayosd ]; services.udev.packages = [ pkgs.dev.swayosd ]; systemd.services.swayosd-libinput-backend = { @@ -5540,8 +5522,8 @@ Also, since I use a GPG key in sops, it seems that scdaemon creates an instance inherit (config.repo.secrets.common.yubikeys) cfg1 cfg2; in { - options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey config"; - config = lib.mkIf config.swarselsystems.modules.yubikey { + options.swarselmodules.yubikey = lib.mkEnableOption "yubikey config"; + config = lib.mkIf config.swarselmodules.yubikey { programs.ssh.startAgent = false; services.pcscd.enable = false; @@ -5581,8 +5563,8 @@ This performs the necessary configuration to support this hardware. #+begin_src nix-ts :tangle modules/nixos/client/hardwarecompatibility-ledger.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.ledger = lib.mkEnableOption "ledger config"; - config = lib.mkIf config.swarselsystems.modules.ledger { + options.swarselmodules.ledger = lib.mkEnableOption "ledger config"; + config = lib.mkIf config.swarselmodules.ledger { hardware.ledger.enable = true; services.udev.packages = with pkgs; [ @@ -5603,8 +5585,8 @@ This loads some udev rules that I need for my split keyboards. #+begin_src nix-ts :tangle modules/nixos/client/hardwarecompatibility-keyboards.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.keyboards = lib.mkEnableOption "keyboards config"; - config = lib.mkIf config.swarselsystems.modules.keyboards { + options.swarselmodules.keyboards = lib.mkEnableOption "keyboards config"; + config = lib.mkIf config.swarselmodules.keyboards { services.udev.packages = with pkgs; [ qmk-udev-rules vial @@ -5624,8 +5606,8 @@ This section houses the greetd related settings. I do not really want to use a d #+begin_src nix-ts :tangle modules/nixos/client/login.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.login = lib.mkEnableOption "login config"; - config = lib.mkIf config.swarselsystems.modules.login { + options.swarselmodules.login = lib.mkEnableOption "login config"; + config = lib.mkIf config.swarselmodules.login { services.greetd = { enable = true; settings = { @@ -5661,8 +5643,8 @@ When a program does not work, start with =nix-ldd =. This will tell you #+begin_src nix-ts :tangle modules/nixos/client/nix-ld.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.nix-ld = lib.mkEnableOption "nix-ld config"; - config = lib.mkIf config.swarselsystems.modules.nix-ld { + options.swarselmodules.nix-ld = lib.mkEnableOption "nix-ld config"; + config = lib.mkIf config.swarselmodules.nix-ld { programs.nix-ld = { enable = true; libraries = with pkgs; [ @@ -5784,8 +5766,8 @@ This snipped is added to the activation script that is run after every rebuild a #+begin_src nix-ts :tangle modules/nixos/client/nvd-rebuild.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.nvd = lib.mkEnableOption "nvd config"; - config = lib.mkIf config.swarselsystems.modules.nvd { + options.swarselmodules.nvd = lib.mkEnableOption "nvd config"; + config = lib.mkIf config.swarselmodules.nvd { environment.systemPackages = [ pkgs.nvd @@ -5812,8 +5794,8 @@ Used for storing sessions in e.g. Nextcloud. Using this on a system level keeps #+begin_src nix-ts :tangle modules/nixos/client/gnome-keyring.nix { lib, config, ... }: { - options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome-keyring config"; - config = lib.mkIf config.swarselsystems.modules.gnome-keyring { + options.swarselmodules.gnome-keyring = lib.mkEnableOption "gnome-keyring config"; + config = lib.mkIf config.swarselmodules.gnome-keyring { services.gnome.gnome-keyring = { enable = true; }; @@ -5833,8 +5815,8 @@ This is used to better integrate Sway into the system on NixOS hosts. On the hom #+begin_src nix-ts :tangle modules/nixos/client/sway.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.sway = lib.mkEnableOption "sway config"; - config = lib.mkIf config.swarselsystems.modules.sway { + options.swarselmodules.sway = lib.mkEnableOption "sway config"; + config = lib.mkIf config.swarselmodules.sway { programs.sway = { enable = true; package = pkgs.dev.swayfx; @@ -5867,8 +5849,8 @@ This allows me to use screen sharing on Wayland. The implementation is a bit cru #+begin_src nix-ts :tangle modules/nixos/client/xdg-portal.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.xdg-portal = lib.mkEnableOption "xdg portal config"; - config = lib.mkIf config.swarselsystems.modules.xdg-portal { + options.swarselmodules.xdg-portal = lib.mkEnableOption "xdg portal config"; + config = lib.mkIf config.swarselmodules.xdg-portal { xdg.portal = { enable = true; config = { @@ -5897,8 +5879,8 @@ I am using distrobox to quickly circumvent isses that I cannot immediately solve #+begin_src nix-ts :tangle modules/nixos/client/distrobox.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.distrobox = lib.mkEnableOption "distrobox config"; - config = lib.mkIf config.swarselsystems.modules.distrobox { + options.swarselmodules.distrobox = lib.mkEnableOption "distrobox config"; + config = lib.mkIf config.swarselmodules.distrobox { environment.systemPackages = with pkgs; [ distrobox boxbuddy @@ -5922,8 +5904,8 @@ Adds the necessary tools to allow .appimage programs easily. #+begin_src nix-ts :tangle modules/nixos/client/appimage.nix { lib, config, ... }: { - options.swarselsystems.modules.appimage = lib.mkEnableOption "appimage config"; - config = lib.mkIf config.swarselsystems.modules.appimage { + options.swarselmodules.appimage = lib.mkEnableOption "appimage config"; + config = lib.mkIf config.swarselmodules.appimage { programs.appimage = { enable = true; binfmt = true; @@ -5943,8 +5925,8 @@ This turns off the display when the lid is closed. #+begin_src nix-ts :tangle modules/nixos/client/lid.nix { lib, config, ... }: { - options.swarselsystems.modules.lid = lib.mkEnableOption "lid config"; - config = lib.mkIf config.swarselsystems.modules.lid { + options.swarselmodules.lid = lib.mkEnableOption "lid config"; + config = lib.mkIf config.swarselmodules.lid { services.logind = { lidSwitch = "suspend"; lidSwitchDocked = "ignore"; @@ -5990,8 +5972,8 @@ Since I hide the waybar completely during normal operation, I run the risk of no #+begin_src nix-ts :tangle modules/nixos/client/lowbattery.nix { pkgs, lib, config, ... }: { - options.swarselsystems.modules.lowBattery = lib.mkEnableOption "low battery notification config"; - config = lib.mkIf config.swarselsystems.modules.lowBattery { + options.swarselmodules.lowBattery = lib.mkEnableOption "low battery notification config"; + config = lib.mkIf config.swarselmodules.lowBattery { systemd.user.services."battery-low" = { enable = true; description = "Timer for battery check that alerts at 10% or less"; @@ -6032,8 +6014,8 @@ Auto login for the initial session. inherit (config.swarselsystems) mainUser; in { - options.swarselsystems.modules.autologin = lib.mkEnableOption "optional autologin settings"; - config = lib.mkIf config.swarselsystems.modules.autologin { + options.swarselmodules.autologin = lib.mkEnableOption "optional autologin settings"; + config = lib.mkIf config.swarselmodules.autologin { services = { getty.autologinUser = mainUser; greetd.settings.initial_session.user = mainUser; @@ -6080,14 +6062,15 @@ Here we just define some aliases for rebuilding the system, and we allow some in inherit (config.swarselsystems) flakePath; in { + + options.swarselmodules.server.general = lib.mkEnableOption "general setting on server"; options.swarselsystems = { - modules.server.general = lib.mkEnableOption "general setting on server"; shellAliases = lib.mkOption { type = lib.types.attrsOf lib.types.str; default = { }; }; }; - config = lib.mkIf config.swarselsystems.modules.server.general { + config = lib.mkIf config.swarselmodules.server.general { environment.shellAliases = lib.recursiveUpdate { @@ -6122,8 +6105,8 @@ Here we just define some aliases for rebuilding the system, and we allow some in #+begin_src nix-ts :tangle modules/nixos/server/packages.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.server.packages = lib.mkEnableOption "enable packages on server"; - config = lib.mkIf config.swarselsystems.modules.server.packages { + options.swarselmodules.server.packages = lib.mkEnableOption "enable packages on server"; + config = lib.mkIf config.swarselmodules.server.packages { environment.systemPackages = with pkgs; [ gnupg nix-index @@ -6152,8 +6135,8 @@ Here we just define some aliases for rebuilding the system, and we allow some in nfsUser = globals.user.name; in { - options.swarselsystems.modules.server.nfs = lib.mkEnableOption "enable nfs on server"; - config = lib.mkIf config.swarselsystems.modules.server.nfs { + options.swarselmodules.server.nfs = lib.mkEnableOption "enable nfs on server"; + config = lib.mkIf config.swarselmodules.server.nfs { services = { # add a user with sudo smbpasswd -a samba = { @@ -6216,8 +6199,8 @@ Here we just define some aliases for rebuilding the system, and we allow some in in { - options.swarselsystems.modules.server.nginx = lib.mkEnableOption "enable nginx on server"; - config = lib.mkIf config.swarselsystems.modules.server.nginx { + options.swarselmodules.server.nginx = lib.mkEnableOption "enable nginx on server"; + config = lib.mkIf config.swarselmodules.server.nginx { environment.systemPackages = with pkgs; [ lego ]; @@ -6262,8 +6245,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t #+begin_src nix-ts :tangle modules/nixos/server/ssh.nix { self, lib, config, ... }: { - options.swarselsystems.modules.server.ssh = lib.mkEnableOption "enable ssh on server"; - config = lib.mkIf config.swarselsystems.modules.server.ssh { + options.swarselmodules.server.ssh = lib.mkEnableOption "enable ssh on server"; + config = lib.mkIf config.swarselmodules.server.ssh { services.openssh = { enable = true; startWhenNeeded = lib.mkForce false; @@ -6310,8 +6293,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { environment.systemPackages = with pkgs; [ calibre ]; @@ -6381,8 +6364,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "video" "render" "users" ]; }; @@ -6452,8 +6435,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { environment.systemPackages = with pkgs; [ pciutils alsa-utils @@ -6595,8 +6578,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t serviceGroup = serviceUser; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.groups.${serviceGroup} = { gid = 65136; }; @@ -6646,8 +6629,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t serviceName = "mpd"; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users = { groups = { mpd = { }; @@ -6712,7 +6695,7 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t #+begin_src nix-ts :tangle modules/nixos/server/pipewire.nix { lib, config, ... }: { - config = lib.mkIf (config?swarselsystems.modules.server.mpd || config?swarselsystems.modules.server.navidrome) { + config = lib.mkIf (config?swarselmodules.server.mpd || config?swarselmodules.server.navidrome) { security.rtkit.enable = true; # this is required for pipewire real-time access @@ -6744,8 +6727,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t postgresVersion = 14; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { services = { ${serviceName} = { enable = true; @@ -6786,8 +6769,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t ''; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { environment.systemPackages = with pkgs; [ matrix-synapse lottieconverter @@ -7130,8 +7113,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops.secrets = { nextcloud-admin-pw = { inherit sopsFile; owner = serviceUser; group = serviceGroup; mode = "0440"; }; @@ -7206,8 +7189,8 @@ Here I am forcing =startWhenNeeded= to false so that the value will not be set t serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "video" "render" "users" ]; @@ -7293,8 +7276,8 @@ Also I install Tika and Gotenberg, which are needed to create PDFs out of =.eml= kanidmDomain = globals.services.kanidm.domain; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "users" ]; @@ -7438,8 +7421,8 @@ Also I install Tika and Gotenberg, which are needed to create PDFs out of =.eml= prowlarrPort = 9696; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} and friends on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} and friends on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { # this user/group section is probably unneeded users = { @@ -7618,8 +7601,8 @@ Also I install Tika and Gotenberg, which are needed to create PDFs out of =.eml= cfg = config.services.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "users" ]; @@ -7751,8 +7734,8 @@ This manages backups for my pictures and obsidian files. inherit (config.swarselsystems) sopsFile; in { - options.swarselsystems.modules.server.restic = lib.mkEnableOption "enable restic backups on server"; - config = lib.mkIf config.swarselsystems.modules.server.restic { + options.swarselmodules.server.restic = lib.mkEnableOption "enable restic backups on server"; + config = lib.mkIf config.swarselmodules.server.restic { sops = { secrets = { @@ -7833,8 +7816,8 @@ This section exposes several metrics that I use to check the health of my server inherit (config.swarselsystems) sopsFile; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops = { secrets = { @@ -8009,7 +7992,7 @@ This section exposes several metrics that I use to check the health of my server sslVerify = false; scrapeUri = "http://localhost/nginx_status"; }; - nextcloud = lib.mkIf config.swarselsystems.modules.server.nextcloud { + nextcloud = lib.mkIf config.swarselmodules.server.nextcloud { enable = true; port = 9205; url = "https://${serviceDomain}/ocs/v2.php/apps/serverinfo/api/v1/info"; @@ -8076,8 +8059,8 @@ This is a WIP Jenkins instance. It is used to automatically build a new system w serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { services.jenkins = { enable = true; @@ -8131,8 +8114,8 @@ This was an approach of hosting an RSS server from within emacs. That would have servicePort = 9812; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} server on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} server on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { networking.firewall.allowedTCPPorts = [ servicePort ]; @@ -8172,8 +8155,8 @@ FreshRSS claims to support HTTP header auth, but at least it does not work with inherit (config.swarselsystems) sopsFile; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "users" ]; @@ -8287,8 +8270,8 @@ FreshRSS claims to support HTTP header auth, but at least it does not work with kanidmDomain = globals.services.kanidm.domain; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { networking.firewall.allowedTCPPorts = [ servicePort ]; @@ -8450,8 +8433,8 @@ FreshRSS claims to support HTTP header auth, but at least it does not work with ankiUser = globals.user.name; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { networking.firewall.allowedTCPPorts = [ servicePort ]; @@ -8539,8 +8522,8 @@ To get other URLs (token, etc.), use https:///oauth2/openid//oauth2/openid//oauth2/openid//oauth2/openid//oauth2/openid//oauth2/openid//oauth2/openid//oauth2/openid//oauth2/openid//oauth2/openid/ toolkit.legacyUserProfileCustomizations.styleshe #+begin_src nix-ts :tangle modules/home/common/symlink.nix { self, lib, config, ... }: { - options.swarselsystems.modules.symlink = lib.mkEnableOption "symlink settings"; - config = lib.mkIf config.swarselsystems.modules.symlink { + options.swarselmodules.symlink = lib.mkEnableOption "symlink settings"; + config = lib.mkIf config.swarselmodules.symlink { home.file = { "init.el" = lib.mkDefault { source = self + /files/emacs/init.el; @@ -11355,8 +11356,8 @@ Sets environment variables. Here I am only setting the EDITOR variable, most var crocDomain = globals.services.croc.domain; in { - options.swarselsystems.modules.env = lib.mkEnableOption "env settings"; - config = lib.mkIf config.swarselsystems.modules.env { + options.swarselmodules.env = lib.mkEnableOption "env settings"; + config = lib.mkIf config.swarselmodules.env { home.sessionVariables = { EDITOR = "e -w"; DISPLAY = ":0"; @@ -11386,8 +11387,8 @@ This section is for programs that require no further configuration. zsh Integrat #+begin_src nix-ts :tangle modules/home/common/programs.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.programs = lib.mkEnableOption "programs settings"; - config = lib.mkIf config.swarselsystems.modules.programs { + options.swarselmodules.programs = lib.mkEnableOption "programs settings"; + config = lib.mkIf config.swarselmodules.programs { programs = { bottom.enable = true; imv.enable = true; @@ -11427,8 +11428,8 @@ nix-index provides a way to find out which packages are provided by which deriva #+begin_src nix-ts :tangle modules/home/common/nix-index.nix { self, lib, config, pkgs, ... }: { - options.swarselsystems.modules.nix-index = lib.mkEnableOption "nix-index settings"; - config = lib.mkIf config.swarselsystems.modules.nix-index { + options.swarselmodules.nix-index = lib.mkEnableOption "nix-index settings"; + config = lib.mkIf config.swarselmodules.nix-index { programs.nix-index = let commandNotFound = pkgs.runCommandLocal "command-not-found.sh" { } '' @@ -11461,8 +11462,8 @@ Enables password store with the =pass-otp= extension which allows me to store an #+begin_src nix-ts :tangle modules/home/common/password-store.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.passwordstore = lib.mkEnableOption "passwordstore settings"; - config = lib.mkIf config.swarselsystems.modules.passwordstore { + options.swarselmodules.passwordstore = lib.mkEnableOption "passwordstore settings"; + config = lib.mkIf config.swarselmodules.passwordstore { programs.password-store = { enable = true; settings = { @@ -11484,8 +11485,8 @@ Enables direnv, which I use for nearly all of my nix dev flakes. #+begin_src nix-ts :tangle modules/home/common/direnv.nix { lib, config, ... }: { - options.swarselsystems.modules.direnv = lib.mkEnableOption "direnv settings"; - config = lib.mkIf config.swarselsystems.modules.direnv { + options.swarselmodules.direnv = lib.mkEnableOption "direnv settings"; + config = lib.mkIf config.swarselmodules.direnv { programs.direnv = { enable = true; silent = true; @@ -11505,8 +11506,8 @@ Eza provides me with a better =ls= command and some other useful aliases. #+begin_src nix-ts :tangle modules/home/common/eza.nix { lib, config, ... }: { - options.swarselsystems.modules.eza = lib.mkEnableOption "eza settings"; - config = lib.mkIf config.swarselsystems.modules.eza { + options.swarselmodules.eza = lib.mkEnableOption "eza settings"; + config = lib.mkIf config.swarselmodules.eza { programs.eza = { enable = true; icons = "auto"; @@ -11531,8 +11532,8 @@ Eza provides me with a better =ls= command and some other useful aliases. atuinDomain = globals.services.atuin.domain; in { - options.swarselsystems.modules.atuin = lib.mkEnableOption "atuin settings"; - config = lib.mkIf config.swarselsystems.modules.atuin { + options.swarselmodules.atuin = lib.mkEnableOption "atuin settings"; + config = lib.mkIf config.swarselmodules.atuin { programs.atuin = { enable = true; enableZshIntegration = true; @@ -11562,8 +11563,8 @@ Here I set up my git config, automatic signing of commits, useful aliases for my gitUser = globals.user.name; in { - options.swarselsystems.modules.git = lib.mkEnableOption "git settings"; - config = lib.mkIf config.swarselsystems.modules.git { + options.swarselmodules.git = lib.mkEnableOption "git settings"; + config = lib.mkIf config.swarselmodules.git { programs.git = { enable = true; } // lib.optionalAttrs (!minimal) { @@ -11615,8 +11616,8 @@ Here I only need to set basic layout options - the rest is being managed by styl #+begin_src nix-ts :tangle modules/home/common/fuzzel.nix { lib, config, ... }: { - options.swarselsystems.modules.fuzzel = lib.mkEnableOption "fuzzel settings"; - config = lib.mkIf config.swarselsystems.modules.fuzzel { + options.swarselmodules.fuzzel = lib.mkEnableOption "fuzzel settings"; + config = lib.mkIf config.swarselmodules.fuzzel { programs.fuzzel = { enable = true; settings = { @@ -11642,8 +11643,8 @@ Starship makes my =zsh= look cooler! I have symbols for most programming languag #+begin_src nix-ts :tangle modules/home/common/starship.nix { lib, config, ... }: { - options.swarselsystems.modules.starship = lib.mkEnableOption "starship settings"; - config = lib.mkIf config.swarselsystems.modules.starship { + options.swarselmodules.starship = lib.mkEnableOption "starship settings"; + config = lib.mkIf config.swarselmodules.starship { programs.starship = { enable = true; enableZshIntegration = true; @@ -11778,8 +11779,8 @@ The theme is handled by stylix. #+begin_src nix-ts :tangle modules/home/common/kitty.nix { lib, config, ... }: { - options.swarselsystems.modules.kitty = lib.mkEnableOption "kitty settings"; - config = lib.mkIf config.swarselsystems.modules.kitty { + options.swarselmodules.kitty = lib.mkEnableOption "kitty settings"; + config = lib.mkIf config.swarselmodules.kitty { programs.kitty = { enable = true; keybindings = { }; @@ -11830,14 +11831,14 @@ Currently I only use it as before with =initExtra= though. inherit (config.swarselsystems) flakePath; in { + options.swarselmodules.zsh = lib.mkEnableOption "zsh settings"; options.swarselsystems = { - modules.zsh = lib.mkEnableOption "zsh settings"; shellAliases = lib.mkOption { type = lib.types.attrsOf lib.types.str; default = { }; }; }; - config = lib.mkIf config.swarselsystems.modules.zsh + config = lib.mkIf config.swarselmodules.zsh { sops.secrets = { @@ -11961,8 +11962,8 @@ Currently I only use it as before with =initExtra= though. #+begin_src nix-ts :tangle modules/home/common/zellij.nix { self, lib, config, pkgs, ... }: { - options.swarselsystems.modules.zellij = lib.mkEnableOption "zellij settings"; - config = lib.mkIf config.swarselsystems.modules.zellij { + options.swarselmodules.zellij = lib.mkEnableOption "zellij settings"; + config = lib.mkIf config.swarselmodules.zellij { programs.zellij = { enable = true; enableZshIntegration = true; @@ -12000,8 +12001,8 @@ Currently I only use it as before with =initExtra= though. }; in { - options.swarselsystems.modules.tmux = lib.mkEnableOption "tmux settings"; - config = lib.mkIf config.swarselsystems.modules.tmux { + options.swarselmodules.tmux = lib.mkEnableOption "tmux settings"; + config = lib.mkIf config.swarselmodules.tmux { home.packages = with pkgs; [ lsof sesh @@ -12102,8 +12103,8 @@ Normally I use 4 mail accounts - here I set them all up. Three of them are Googl inherit (config.swarselsystems) xdgDir; in { - options.swarselsystems.modules.mail = lib.mkEnableOption "mail settings"; - config = lib.mkIf config.swarselsystems.modules.mail { + options.swarselmodules.mail = lib.mkEnableOption "mail settings"; + config = lib.mkIf config.swarselmodules.mail { sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) { address1-token = { path = "${xdgDir}/secrets/address1-token"; }; @@ -12265,8 +12266,8 @@ Lastly, I am defining some more packages here that the parser has problems findi inherit (config.swarselsystems) homeDir isPublic; in { - options.swarselsystems.modules.emacs = lib.mkEnableOption "emacs settings"; - config = lib.mkIf config.swarselsystems.modules.emacs { + options.swarselmodules.emacs = lib.mkEnableOption "emacs settings"; + config = lib.mkIf config.swarselmodules.emacs { # needed for elfeed sops.secrets.fever-pw = lib.mkIf (!isPublic) { path = "${homeDir}/.emacs.d/.fever"; }; @@ -12381,8 +12382,8 @@ The rest of the related configuration is found here: ]; in { + options.swarselmodules.waybar = lib.mkEnableOption "waybar settings"; options.swarselsystems = { - modules.waybar = lib.mkEnableOption "waybar settings"; cpuCount = lib.mkOption { type = lib.types.int; default = 8; @@ -12411,7 +12412,7 @@ The rest of the related configuration is found here: internal = true; }; }; - config = lib.mkIf config.swarselsystems.modules.waybar { + config = lib.mkIf config.swarselmodules.waybar { swarselsystems = { waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [ @@ -12692,8 +12693,8 @@ I used to build the firefox addon =bypass-paywalls-clean= myself here, but the m #+begin_src nix-ts :tangle modules/home/common/firefox.nix { config, pkgs, lib, ... }: { - options.swarselsystems.modules.firefox = lib.mkEnableOption "firefox settings"; - config = lib.mkIf config.swarselsystems.modules.firefox { + options.swarselmodules.firefox = lib.mkEnableOption "firefox settings"; + config = lib.mkIf config.swarselmodules.firefox { programs.firefox = { enable = true; package = pkgs.firefox; # uses overrides @@ -12859,8 +12860,8 @@ Used for storing sessions in e.g. Nextcloud #+begin_src nix-ts :tangle modules/home/common/gnome-keyring.nix { lib, config, ... }: { - options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome keyring settings"; - config = lib.mkIf config.swarselsystems.modules.gnome-keyring { + options.swarselmodules.gnome-keyring = lib.mkEnableOption "gnome keyring settings"; + config = lib.mkIf config.swarselmodules.gnome-keyring { services.gnome-keyring = lib.mkIf (!config.swarselsystems.isNixos) { enable = true; }; @@ -12878,8 +12879,8 @@ This enables phone/computer communication, including sending clipboard, files et #+begin_src nix-ts :tangle modules/home/common/kdeconnect.nix { lib, config, ... }: { - options.swarselsystems.modules.kdeconnect = lib.mkEnableOption "kdeconnect settings"; - config = lib.mkIf config.swarselsystems.modules.kdeconnect { + options.swarselmodules.kdeconnect = lib.mkEnableOption "kdeconnect settings"; + config = lib.mkIf config.swarselmodules.kdeconnect { services.kdeconnect = { enable = true; indicator = true; @@ -12901,8 +12902,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi #+begin_src nix-ts :tangle modules/home/common/mako.nix { lib, config, ... }: { - options.swarselsystems.modules.mako = lib.mkEnableOption "mako settings"; - config = lib.mkIf config.swarselsystems.modules.mako { + options.swarselmodules.mako = lib.mkEnableOption "mako settings"; + config = lib.mkIf config.swarselmodules.mako { services.mako = { enable = true; settings = { @@ -12944,8 +12945,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi #+begin_src nix-ts :tangle modules/home/common/swayosd.nix { lib, pkgs, config, ... }: { - options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings"; - config = lib.mkIf config.swarselsystems.modules.swayosd { + options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings"; + config = lib.mkIf config.swarselmodules.swayosd { services.swayosd = { enable = true; package = pkgs.dev.swayosd; @@ -12963,8 +12964,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi #+begin_src nix-ts :tangle modules/home/common/yubikey-touch-detector.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings"; - config = lib.mkIf config.swarselsystems.modules.yubikeytouch { + options.swarselmodules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings"; + config = lib.mkIf config.swarselmodules.yubikeytouch { systemd.user.services.yubikey-touch-detector = { Unit = { Description = "Detects when your YubiKey is waiting for a touch"; @@ -13013,8 +13014,8 @@ Currently, I am too lazy to explain every option here, but most of it is very se }; in { + options.swarselmodules.sway = lib.mkEnableOption "sway settings"; options.swarselsystems = { - modules.sway = lib.mkEnableOption "sway settings"; inputs = lib.mkOption { type = lib.types.attrsOf (lib.types.attrsOf lib.types.str); default = { }; @@ -13079,7 +13080,7 @@ Currently, I am too lazy to explain every option here, but most of it is very se internal = true; }; }; - config = lib.mkIf config.swarselsystems.modules.sway { + config = lib.mkIf config.swarselmodules.sway { swarselsystems = { touchpad = lib.mkIf config.swarselsystems.isLaptop { "type:touchpad" = { @@ -13426,8 +13427,8 @@ Currently, I am too lazy to explain every option here, but most of it is very se #+begin_src nix-ts :tangle modules/home/common/kanshi.nix { lib, config, ... }: { - options.swarselsystems.modules.kanshi = lib.mkEnableOption "kanshi settings"; - config = lib.mkIf config.swarselsystems.modules.kanshi { + options.swarselmodules.kanshi = lib.mkEnableOption "kanshi settings"; + config = lib.mkIf config.swarselmodules.kanshi { swarselsystems = { monitors = { homedesktop = { @@ -13527,8 +13528,8 @@ Settinfs that are needed for the gpg-agent. Also we are enabling emacs support f inherit (config.swarselsystems) mainUser homeDir; in { - options.swarselsystems.modules.gpgagent = lib.mkEnableOption "gpg agent settings"; - config = lib.mkIf config.swarselsystems.modules.gpgagent { + options.swarselmodules.gpgagent = lib.mkEnableOption "gpg agent settings"; + config = lib.mkIf config.swarselmodules.gpgagent { services.gpg-agent = { enable = true; enableZshIntegration = true; @@ -13579,8 +13580,8 @@ This service changes the screen hue at night. I am not sure if that really does inherit (nixosConfig.repo.secrets.common.location) latitude longitude; in { - options.swarselsystems.modules.gammastep = lib.mkEnableOption "gammastep settings"; - config = lib.mkIf config.swarselsystems.modules.gammastep { + options.swarselmodules.gammastep = lib.mkEnableOption "gammastep settings"; + config = lib.mkIf config.swarselmodules.gammastep { services.gammastep = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) { enable = true; provider = "manual"; @@ -13611,7 +13612,6 @@ This section sets up all the imports that are used in the home-manager section. { imports = lib.swarselsystems.mkImports importNames "modules/home/server" ++ [ "${modulesPath}/home/common/settings.nix" - "${modulesPath}/home/common/sharedsetup.nix" ]; } #+end_src @@ -13628,8 +13628,8 @@ As for the `home.sessionVariables`, it should be noted that environment variable #+begin_src nix-ts :tangle modules/home/server/symlink.nix { self, lib, config, ... }: { - options.swarselsystems.modules.server.dotfiles = lib.mkEnableOption "server dotfiles settings"; - config = lib.mkIf config.swarselsystems.modules.server.dotfiles { + options.swarselmodules.server.dotfiles = lib.mkEnableOption "server dotfiles settings"; + config = lib.mkIf config.swarselmodules.server.dotfiles { home.file = { "init.el" = lib.mkForce { source = self + /files/emacs/server.el; @@ -13655,9 +13655,10 @@ This section sets up all the imports that are used in the home-manager section. #+begin_src nix-ts :tangle modules/home/darwin/default.nix { self, ... }: { + home.stateVersion = "23.05"; imports = [ "${self}/modules/home/common/settings.nix" - "${self}/modules/home/common/sharedsetup.nix" + "${self}/modules/shared/sharedsetup.nix" ]; } #+end_src @@ -13689,8 +13690,8 @@ The rest of the settings is at [[#h:fb3f3e01-7df4-4b06-9e91-aa9cac61a431][gaming #+begin_src nix-ts :tangle modules/home/optional/gaming.nix { lib, config, pkgs, ... }: { - options.swarselsystems.modules.optional.gaming = lib.mkEnableOption "optional gaming settings"; - config = lib.mkIf config.swarselsystems.modules.optional.gaming { + options.swarselmodules.optional.gaming = lib.mkEnableOption "optional gaming settings"; + config = lib.mkIf config.swarselmodules.optional.gaming { # specialisation = { # gaming.configuration = { home.packages = with pkgs; [ @@ -13742,8 +13743,8 @@ The rest of the settings is at [[#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf][work]] inherit (config.swarselsystems) homeDir; in { - options.swarselsystems.modules.optional.work = lib.mkEnableOption "optional work settings"; - config = lib.mkIf config.swarselsystems.modules.optional.work { + options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings"; + config = lib.mkIf config.swarselmodules.optional.work { home.packages = with pkgs; [ stable.teams-for-linux shellcheck @@ -14198,8 +14199,8 @@ This holds configuration that is specific to framework laptops. #+begin_src nix-ts :tangle modules/home/optional/framework.nix { lib, config, ... }: { - options.swarselsystems.modules.optional.framework = lib.mkEnableOption "optional framework machine settings"; - config = lib.mkIf config.swarselsystems.modules.optional.framework { + options.swarselmodules.optional.framework = lib.mkEnableOption "optional framework machine settings"; + config = lib.mkIf config.swarselmodules.optional.framework { swarselsystems = { inputs = { "12972:18:Framework_Laptop_16_Keyboard_Module_-_ANSI_Keyboard" = { @@ -16121,9 +16122,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/personal/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.personal = lib.mkEnableOption "is this a personal host"; - config = lib.mkIf config.swarselsystems.profiles.personal { - swarselsystems.modules = { + options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; + config = lib.mkIf config.swarselprofiles.personal { + swarselmodules = { packages = lib.mkDefault true; pii = lib.mkDefault true; general = lib.mkDefault true; @@ -16191,9 +16192,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/reduced/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.reduced = lib.mkEnableOption "is this a reduced personal host"; - config = lib.mkIf config.swarselsystems.profiles.reduced { - swarselsystems.modules = { + 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; @@ -16255,9 +16256,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/minimal/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.minimal = lib.mkEnableOption "declare this a minimal host"; - config = lib.mkIf config.swarselsystems.profiles.minimal { - swarselsystems.modules = { + 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; @@ -16291,9 +16292,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/chaostheatre/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; - config = lib.mkIf config.swarselsystems.profiles.chaostheatre { - swarselsystems.modules = { + options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; + config = lib.mkIf config.swarselprofiles.chaostheatre { + swarselmodules = { packages = lib.mkDefault true; general = lib.mkDefault true; home-manager = lib.mkDefault true; @@ -16350,9 +16351,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/toto/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.toto = lib.mkEnableOption "is this a toto (setup) host"; - config = lib.mkIf config.swarselsystems.profiles.toto { - swarselsystems.modules = { + 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; @@ -16382,9 +16383,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/work/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.work = lib.mkEnableOption "is this a work host"; - config = lib.mkIf config.swarselsystems.profiles.work { - swarselsystems.modules = { + options.swarselprofiles.work = lib.mkEnableOption "is this a work host"; + config = lib.mkIf config.swarselprofiles.work { + swarselmodules = { optional = { work = lib.mkDefault true; }; @@ -16404,9 +16405,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/framework/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.framework = lib.mkEnableOption "is this a framework brand host"; - config = lib.mkIf config.swarselsystems.profiles.framework { - swarselsystems.modules = { + options.swarselprofiles.framework = lib.mkEnableOption "is this a framework brand host"; + config = lib.mkIf config.swarselprofiles.framework { + swarselmodules = { optional = { framework = lib.mkDefault true; }; @@ -16426,9 +16427,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/amdcpu/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.amdcpu = lib.mkEnableOption "is this a host with amd cpu"; - config = lib.mkIf config.swarselsystems.profiles.amdcpu { - swarselsystems.modules = { + options.swarselprofiles.amdcpu = lib.mkEnableOption "is this a host with amd cpu"; + config = lib.mkIf config.swarselprofiles.amdcpu { + swarselmodules = { optional = { amdcpu = lib.mkDefault true; }; @@ -16448,9 +16449,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/amdgpu/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.amdgpu = lib.mkEnableOption "is this a host with amd gpu"; - config = lib.mkIf config.swarselsystems.profiles.amdgpu { - swarselsystems.modules = { + options.swarselprofiles.amdgpu = lib.mkEnableOption "is this a host with amd gpu"; + config = lib.mkIf config.swarselprofiles.amdgpu { + swarselmodules = { optional = { amdgpu = lib.mkDefault true; }; @@ -16470,9 +16471,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/hibernation/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.hibernation = lib.mkEnableOption "is this a host using hibernation"; - config = lib.mkIf config.swarselsystems.profiles.hibernation { - swarselsystems.modules = { + options.swarselprofiles.hibernation = lib.mkEnableOption "is this a host using hibernation"; + config = lib.mkIf config.swarselprofiles.hibernation { + swarselmodules = { optional = { hibernation = lib.mkDefault true; }; @@ -16492,9 +16493,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/btrfs/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.btrfs = lib.mkEnableOption "is this a host using btrfs"; - config = lib.mkIf config.swarselsystems.profiles.btrfs { - swarselsystems.modules = { + options.swarselprofiles.btrfs = lib.mkEnableOption "is this a host using btrfs"; + config = lib.mkIf config.swarselprofiles.btrfs { + swarselmodules = { optional = { btrfs = lib.mkDefault true; }; @@ -16514,10 +16515,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/localserver/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.server.local = lib.mkEnableOption "is this a local server"; - config = lib.mkIf config.swarselsystems.profiles.server.local { - swarselsystems = { - modules = { + options.swarselprofiles.server.local = lib.mkEnableOption "is this a local server"; + config = lib.mkIf config.swarselprofiles.server.local { + swarselmodules = { general = lib.mkDefault true; pii = lib.mkDefault true; home-manager = lib.mkDefault true; @@ -16557,7 +16557,6 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a ankisync = lib.mkDefault true; }; }; - }; }; } @@ -16571,10 +16570,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/syncserver/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.server.syncserver = lib.mkEnableOption "is this a oci syncserver server"; - config = lib.mkIf config.swarselsystems.profiles.server.syncserver { - swarselsystems = { - modules = { + 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; @@ -16592,7 +16590,6 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a ankisync = lib.mkDefault false; }; }; - }; }; } @@ -16606,10 +16603,9 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a #+begin_src nix-ts :tangle profiles/nixos/moonside/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.server.moonside = lib.mkEnableOption "is this a moonside server"; - config = lib.mkIf config.swarselsystems.profiles.server.moonside { - swarselsystems = { - modules = { + 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; @@ -16628,7 +16624,6 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a microbin = lib.mkDefault true; shlink = lib.mkDefault true; }; - }; }; }; @@ -16660,9 +16655,9 @@ This holds modules that are to be used on most hosts. These are also the most im #+begin_src nix-ts :tangle profiles/home/personal/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.personal = lib.mkEnableOption "is this a personal host"; - config = lib.mkIf config.swarselsystems.profiles.personal { - swarselsystems.modules = { + options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; + config = lib.mkIf config.swarselprofiles.personal { + swarselmodules = { packages = lib.mkDefault true; ownpackages = lib.mkDefault true; general = lib.mkDefault true; @@ -16719,9 +16714,9 @@ This holds modules that are to be used on most hosts. These are also the most im #+begin_src nix-ts :tangle profiles/home/reduced/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.reduced = lib.mkEnableOption "is this a reduced personal host"; - config = lib.mkIf config.swarselsystems.profiles.reduced { - swarselsystems.modules = { + 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; @@ -16775,9 +16770,9 @@ This holds modules that are to be used on most hosts. These are also the most im #+begin_src nix-ts :tangle profiles/home/minimal/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.minimal = lib.mkEnableOption "is this a personal host"; - config = lib.mkIf config.swarselsystems.profiles.minimal { - swarselsystems.modules = { + 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; @@ -16798,9 +16793,9 @@ This holds modules that are to be used on most hosts. These are also the most im #+begin_src nix-ts :tangle profiles/home/chaostheatre/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; - config = lib.mkIf config.swarselsystems.profiles.chaostheatre { - swarselsystems.modules = { + options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; + config = lib.mkIf config.swarselprofiles.chaostheatre { + swarselmodules = { packages = lib.mkDefault true; ownpackages = lib.mkDefault true; general = lib.mkDefault true; @@ -16851,9 +16846,9 @@ This holds modules that are to be used on most hosts. These are also the most im #+begin_src nix-ts :tangle profiles/home/toto/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.toto = lib.mkEnableOption "is this a toto (setup) host"; - config = lib.mkIf config.swarselsystems.profiles.toto { - swarselsystems.modules = { + options.swarselprofiles.toto = lib.mkEnableOption "is this a toto (setup) host"; + config = lib.mkIf config.swarselprofiles.toto { + swarselmodules = { general = lib.mkDefault true; sops = lib.mkDefault true; ssh = lib.mkDefault true; @@ -16874,9 +16869,9 @@ This holds modules that are to be used on most hosts. These are also the most im #+begin_src nix-ts :tangle profiles/home/work/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.work = lib.mkEnableOption "is this a work host"; - config = lib.mkIf config.swarselsystems.profiles.work { - swarselsystems.modules = { + options.swarselprofiles.work = lib.mkEnableOption "is this a work host"; + config = lib.mkIf config.swarselprofiles.work { + swarselmodules = { optional = { work = lib.mkDefault true; }; @@ -16895,9 +16890,9 @@ This holds modules that are to be used on most hosts. These are also the most im #+begin_src nix-ts :tangle profiles/home/framework/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.framework = lib.mkEnableOption "is this a framework brand host"; - config = lib.mkIf config.swarselsystems.profiles.framework { - swarselsystems.modules = { + options.swarselprofiles.framework = lib.mkEnableOption "is this a framework brand host"; + config = lib.mkIf config.swarselprofiles.framework { + swarselmodules = { optional = { framework = lib.mkDefault true; }; @@ -16909,25 +16904,6 @@ This holds modules that are to be used on most hosts. These are also the most im #+end_src -**** Darwin -:PROPERTIES: -:CUSTOM_ID: h:24e6d661-f498-478c-9008-e8d8c17432ca -:END: - -#+begin_src nix-ts :tangle profiles/home/darwin/default.nix :mkdirp yes - { lib, config, ... }: - { - options.swarselsystems.profiles.darwin = lib.mkEnableOption "is this a darwin host"; - config = lib.mkIf config.swarselsystems.profiles.darwin { - swarselsystems.modules = { - general = lib.mkDefault true; - }; - }; - - } - -#+end_src - **** Local Server :PROPERTIES: :CUSTOM_ID: h:8027b858-369e-4f12-bbaf-f15eeee3d904 @@ -16936,9 +16912,9 @@ This holds modules that are to be used on most hosts. These are also the most im #+begin_src nix-ts :tangle profiles/home/localserver/default.nix :mkdirp yes { lib, config, ... }: { - options.swarselsystems.profiles.server.local = lib.mkEnableOption "is this a local server"; - config = lib.mkIf config.swarselsystems.profiles.server.local { - swarselsystems.modules = { + 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; diff --git a/hosts/nixos/bakery/default.nix b/hosts/nixos/bakery/default.nix index 1e0b9bf..b130252 100644 --- a/hosts/nixos/bakery/default.nix +++ b/hosts/nixos/bakery/default.nix @@ -7,10 +7,6 @@ let isBtrfs = true; isLinux = true; sharescreen = "eDP-1"; - profiles = { - reduced = lib.mkIf (!minimal) true; - minimal = lib.mkIf minimal true; - }; }; in { @@ -23,6 +19,11 @@ in ]; + swarselprofiles = { + reduced = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + btrfs = true; + }; swarselsystems = lib.recursiveUpdate { @@ -38,13 +39,14 @@ in rootDisk = "/dev/nvme0n1"; swapSize = "4G"; hostName = config.node.name; - profiles = { - btrfs = true; - }; } sharedOptions; home-manager.users."${primaryUser}" = { + swarselprofiles = { + reduced = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + }; # home.stateVersion = lib.mkForce "23.05"; swarselsystems = lib.recursiveUpdate { diff --git a/hosts/nixos/chaostheatre/default.nix b/hosts/nixos/chaostheatre/default.nix index e3c10d2..a15954b 100644 --- a/hosts/nixos/chaostheatre/default.nix +++ b/hosts/nixos/chaostheatre/default.nix @@ -6,10 +6,6 @@ let isBtrfs = false; isLinux = true; isPublic = true; - profiles = { - chaostheatre = lib.mkIf (!minimal) true; - minimal = lib.mkIf minimal true; - }; }; in { @@ -39,6 +35,11 @@ in firewall.enable = true; }; + swarselprofiles = { + chaostheatre = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + btrfs = true; + }; swarselsystems = lib.recursiveUpdate { info = "~SwarselSystems~ demo host"; @@ -49,7 +50,6 @@ in isSwap = true; swapSize = "4G"; rootDisk = "/dev/vda"; - profiles.btrfs = true; } sharedOptions; diff --git a/hosts/nixos/milkywell/default.nix b/hosts/nixos/milkywell/default.nix index 2554037..21733d5 100644 --- a/hosts/nixos/milkywell/default.nix +++ b/hosts/nixos/milkywell/default.nix @@ -6,9 +6,6 @@ let isLinux = true; isNixos = true; }; - profiles = { - minimal = lib.mkIf minimal true; - }; in { imports = [ @@ -32,6 +29,10 @@ in enableAllFirmware = lib.mkForce false; }; + swarselprofiles = { + minimal = lib.mkIf minimal true; + server.syncserver = true; + }; swarselsystems = lib.recursiveUpdate { info = "VM.Standard.E2.1.Micro"; @@ -41,9 +42,6 @@ in isSwap = true; rootDisk = "/dev/sda"; swapSize = "4G"; - profiles = { - server.syncserver = true; - }; } sharedOptions; diff --git a/hosts/nixos/moonside/default.nix b/hosts/nixos/moonside/default.nix index ba84c3b..ed18302 100644 --- a/hosts/nixos/moonside/default.nix +++ b/hosts/nixos/moonside/default.nix @@ -209,6 +209,9 @@ in }; }; + swarselprofiles = { + server.moonside = true; + }; swarselsystems = lib.recursiveUpdate { info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM"; @@ -217,9 +220,6 @@ in isCrypted = false; isSwap = false; rootDisk = "/dev/sda"; - profiles = { - server.moonside = true; - }; } sharedOptions; diff --git a/hosts/nixos/pyramid/default.nix b/hosts/nixos/pyramid/default.nix index e3607c7..5184a96 100644 --- a/hosts/nixos/pyramid/default.nix +++ b/hosts/nixos/pyramid/default.nix @@ -1,19 +1,6 @@ { self, config, inputs, lib, minimal, ... }: let primaryUser = config.swarselsystems.mainUser; - sharedOptions = { - isLaptop = true; - isNixos = true; - isBtrfs = true; - isLinux = true; - sharescreen = "eDP-2"; - profiles = { - personal = lib.mkIf (!minimal) true; - minimal = lib.mkIf minimal true; - work = lib.mkIf (!minimal) true; - framework = lib.mkIf (!minimal) true; - }; - }; in { @@ -26,53 +13,64 @@ in ]; - swarselsystems = lib.recursiveUpdate - { - info = "Framework Laptop 16, 7940HS, RX7700S, 64GB RAM"; - firewall = lib.mkForce true; - wallpaper = self + /files/wallpaper/lenovowp.png; - hasBluetooth = true; - hasFingerprint = true; - isImpermanence = false; - isSecureBoot = true; - isCrypted = true; - inherit (config.repo.secrets.local) hostName; - inherit (config.repo.secrets.local) fqdn; - hibernation.offset = 533760; - profiles = { - amdcpu = true; - amdgpu = true; - hibernation = true; - btrfs = true; - }; - } - sharedOptions; + swarselprofiles = { + personal = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + work = lib.mkIf (!minimal) true; + framework = lib.mkIf (!minimal) true; + amdcpu = true; + amdgpu = true; + hibernation = true; + btrfs = true; + }; + swarselsystems = { + isLaptop = true; + isNixos = true; + isBtrfs = true; + isLinux = true; + sharescreen = "eDP-2"; + info = "Framework Laptop 16, 7940HS, RX7700S, 64GB RAM"; + firewall = lib.mkForce true; + wallpaper = self + /files/wallpaper/lenovowp.png; + hasBluetooth = true; + hasFingerprint = true; + isImpermanence = false; + isSecureBoot = true; + isCrypted = true; + inherit (config.repo.secrets.local) hostName; + inherit (config.repo.secrets.local) fqdn; + hibernation.offset = 533760; + }; home-manager.users."${primaryUser}" = { # home.stateVersion = lib.mkForce "23.05"; - swarselsystems = lib.recursiveUpdate - { - isSecondaryGpu = true; - SecondaryGpuCard = "pci-0000_03_00_0"; - cpuCount = 16; - temperatureHwmon = { - isAbsolutePath = true; - path = "/sys/devices/virtual/thermal/thermal_zone0/"; - input-filename = "temp4_input"; + swarselprofiles = { + personal = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + work = lib.mkIf (!minimal) true; + framework = lib.mkIf (!minimal) true; + }; + swarselsystems = { + isSecondaryGpu = true; + SecondaryGpuCard = "pci-0000_03_00_0"; + cpuCount = 16; + temperatureHwmon = { + isAbsolutePath = true; + path = "/sys/devices/virtual/thermal/thermal_zone0/"; + input-filename = "temp4_input"; + }; + lowResolution = "1280x800"; + highResolution = "2560x1600"; + monitors = { + main = { + name = "BOE 0x0BC9 Unknown"; + mode = "2560x1600"; # TEMPLATE + scale = "1"; + position = "2560,0"; + workspace = "15:L"; + output = "eDP-2"; }; - lowResolution = "1280x800"; - highResolution = "2560x1600"; - monitors = { - main = { - name = "BOE 0x0BC9 Unknown"; - mode = "2560x1600"; # TEMPLATE - scale = "1"; - position = "2560,0"; - workspace = "15:L"; - output = "eDP-2"; - }; - }; - } - sharedOptions; + }; + }; }; } diff --git a/hosts/nixos/toto/default.nix b/hosts/nixos/toto/default.nix index 8a37895..9522528 100644 --- a/hosts/nixos/toto/default.nix +++ b/hosts/nixos/toto/default.nix @@ -4,10 +4,6 @@ let sharedOptions = { isBtrfs = true; isLinux = true; - profiles = { - toto = lib.mkIf (!minimal) true; - minimal = lib.mkIf minimal true; - }; }; in { @@ -24,6 +20,11 @@ in firewall.enable = false; }; + swarselprofiles = { + toto = lib.mkIf (!minimal) true; + minimal = lib.mkIf minimal true; + btrfs = true; + }; swarselsystems = lib.recursiveUpdate { info = "~SwarselSystems~ remote install helper"; @@ -35,7 +36,6 @@ in swapSize = "2G"; # rootDisk = "/dev/nvme0n1"; rootDisk = "/dev/vda"; - profiles.btrfs = true; # rootDisk = "/dev/vda"; } sharedOptions; diff --git a/hosts/nixos/winters/default.nix b/hosts/nixos/winters/default.nix index 6b65107..c0b71d4 100644 --- a/hosts/nixos/winters/default.nix +++ b/hosts/nixos/winters/default.nix @@ -5,9 +5,6 @@ let isBtrfs = false; isLinux = true; isNixos = true; - profiles = { - server.local = true; - }; }; in { @@ -30,6 +27,9 @@ in }; + swarselprofiles = { + server.local = true; + }; swarselsystems = lib.recursiveUpdate { info = "ASRock J4105-ITX, 32GB RAM"; diff --git a/modules/home/common/atuin.nix b/modules/home/common/atuin.nix index f0623e1..82383f5 100644 --- a/modules/home/common/atuin.nix +++ b/modules/home/common/atuin.nix @@ -3,8 +3,8 @@ let atuinDomain = globals.services.atuin.domain; in { - options.swarselsystems.modules.atuin = lib.mkEnableOption "atuin settings"; - config = lib.mkIf config.swarselsystems.modules.atuin { + options.swarselmodules.atuin = lib.mkEnableOption "atuin settings"; + config = lib.mkIf config.swarselmodules.atuin { programs.atuin = { enable = true; enableZshIntegration = true; diff --git a/modules/home/common/custom-packages.nix b/modules/home/common/custom-packages.nix index 8c38d7f..5c66542 100644 --- a/modules/home/common/custom-packages.nix +++ b/modules/home/common/custom-packages.nix @@ -1,8 +1,8 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.ownpackages = lib.mkEnableOption "own packages settings"; - config = lib.mkIf config.swarselsystems.modules.ownpackages { + options.swarselmodules.ownpackages = lib.mkEnableOption "own packages settings"; + config = lib.mkIf config.swarselmodules.ownpackages { home.packages = with pkgs; lib.mkIf (!config.swarselsystems.isPublic) [ pass-fuzzel cdw diff --git a/modules/home/common/default.nix b/modules/home/common/default.nix index 18e0ee1..a7035d0 100644 --- a/modules/home/common/default.nix +++ b/modules/home/common/default.nix @@ -1,7 +1,9 @@ -{ lib, ... }: +{ self, lib, ... }: let importNames = lib.swarselsystems.readNix "modules/home/common"; in { - imports = lib.swarselsystems.mkImports importNames "modules/home/common"; + imports = lib.swarselsystems.mkImports importNames "modules/home/common" ++ [ + "${self}/modules/shared/sharedsetup.nix" + ]; } diff --git a/modules/home/common/desktop.nix b/modules/home/common/desktop.nix index 05b03fd..a24eb94 100644 --- a/modules/home/common/desktop.nix +++ b/modules/home/common/desktop.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.desktop = lib.mkEnableOption "desktop settings"; - config = lib.mkIf config.swarselsystems.modules.desktop { + options.swarselmodules.desktop = lib.mkEnableOption "desktop settings"; + config = lib.mkIf config.swarselmodules.desktop { xdg.desktopEntries = { cura = { diff --git a/modules/home/common/direnv.nix b/modules/home/common/direnv.nix index 0e84503..ea72d7d 100644 --- a/modules/home/common/direnv.nix +++ b/modules/home/common/direnv.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.direnv = lib.mkEnableOption "direnv settings"; - config = lib.mkIf config.swarselsystems.modules.direnv { + options.swarselmodules.direnv = lib.mkEnableOption "direnv settings"; + config = lib.mkIf config.swarselmodules.direnv { programs.direnv = { enable = true; silent = true; diff --git a/modules/home/common/emacs.nix b/modules/home/common/emacs.nix index 8f5863e..5cb16e4 100644 --- a/modules/home/common/emacs.nix +++ b/modules/home/common/emacs.nix @@ -3,8 +3,8 @@ let inherit (config.swarselsystems) homeDir isPublic; in { - options.swarselsystems.modules.emacs = lib.mkEnableOption "emacs settings"; - config = lib.mkIf config.swarselsystems.modules.emacs { + options.swarselmodules.emacs = lib.mkEnableOption "emacs settings"; + config = lib.mkIf config.swarselmodules.emacs { # needed for elfeed sops.secrets.fever-pw = lib.mkIf (!isPublic) { path = "${homeDir}/.emacs.d/.fever"; }; diff --git a/modules/home/common/env.nix b/modules/home/common/env.nix index a8acacd..e4d9da2 100644 --- a/modules/home/common/env.nix +++ b/modules/home/common/env.nix @@ -5,8 +5,8 @@ let crocDomain = globals.services.croc.domain; in { - options.swarselsystems.modules.env = lib.mkEnableOption "env settings"; - config = lib.mkIf config.swarselsystems.modules.env { + options.swarselmodules.env = lib.mkEnableOption "env settings"; + config = lib.mkIf config.swarselmodules.env { home.sessionVariables = { EDITOR = "e -w"; DISPLAY = ":0"; diff --git a/modules/home/common/eza.nix b/modules/home/common/eza.nix index c78a30b..56316f6 100644 --- a/modules/home/common/eza.nix +++ b/modules/home/common/eza.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.eza = lib.mkEnableOption "eza settings"; - config = lib.mkIf config.swarselsystems.modules.eza { + options.swarselmodules.eza = lib.mkEnableOption "eza settings"; + config = lib.mkIf config.swarselmodules.eza { programs.eza = { enable = true; icons = "auto"; diff --git a/modules/home/common/firefox.nix b/modules/home/common/firefox.nix index 0095a39..7f7e3fe 100644 --- a/modules/home/common/firefox.nix +++ b/modules/home/common/firefox.nix @@ -1,7 +1,7 @@ { config, pkgs, lib, ... }: { - options.swarselsystems.modules.firefox = lib.mkEnableOption "firefox settings"; - config = lib.mkIf config.swarselsystems.modules.firefox { + options.swarselmodules.firefox = lib.mkEnableOption "firefox settings"; + config = lib.mkIf config.swarselmodules.firefox { programs.firefox = { enable = true; package = pkgs.firefox; # uses overrides diff --git a/modules/home/common/fuzzel.nix b/modules/home/common/fuzzel.nix index 8c646ca..89e6689 100644 --- a/modules/home/common/fuzzel.nix +++ b/modules/home/common/fuzzel.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.fuzzel = lib.mkEnableOption "fuzzel settings"; - config = lib.mkIf config.swarselsystems.modules.fuzzel { + options.swarselmodules.fuzzel = lib.mkEnableOption "fuzzel settings"; + config = lib.mkIf config.swarselmodules.fuzzel { programs.fuzzel = { enable = true; settings = { diff --git a/modules/home/common/gammastep.nix b/modules/home/common/gammastep.nix index e6d9e73..1109d75 100644 --- a/modules/home/common/gammastep.nix +++ b/modules/home/common/gammastep.nix @@ -3,8 +3,8 @@ let inherit (nixosConfig.repo.secrets.common.location) latitude longitude; in { - options.swarselsystems.modules.gammastep = lib.mkEnableOption "gammastep settings"; - config = lib.mkIf config.swarselsystems.modules.gammastep { + options.swarselmodules.gammastep = lib.mkEnableOption "gammastep settings"; + config = lib.mkIf config.swarselmodules.gammastep { services.gammastep = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) { enable = true; provider = "manual"; diff --git a/modules/home/common/git.nix b/modules/home/common/git.nix index 97632a1..4f522f5 100644 --- a/modules/home/common/git.nix +++ b/modules/home/common/git.nix @@ -6,8 +6,8 @@ let gitUser = globals.user.name; in { - options.swarselsystems.modules.git = lib.mkEnableOption "git settings"; - config = lib.mkIf config.swarselsystems.modules.git { + options.swarselmodules.git = lib.mkEnableOption "git settings"; + config = lib.mkIf config.swarselmodules.git { programs.git = { enable = true; } // lib.optionalAttrs (!minimal) { diff --git a/modules/home/common/gnome-keyring.nix b/modules/home/common/gnome-keyring.nix index 9fb5ec6..c952e7b 100644 --- a/modules/home/common/gnome-keyring.nix +++ b/modules/home/common/gnome-keyring.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome keyring settings"; - config = lib.mkIf config.swarselsystems.modules.gnome-keyring { + options.swarselmodules.gnome-keyring = lib.mkEnableOption "gnome keyring settings"; + config = lib.mkIf config.swarselmodules.gnome-keyring { services.gnome-keyring = lib.mkIf (!config.swarselsystems.isNixos) { enable = true; }; diff --git a/modules/home/common/gpg-agent.nix b/modules/home/common/gpg-agent.nix index 0ef546d..f8da000 100644 --- a/modules/home/common/gpg-agent.nix +++ b/modules/home/common/gpg-agent.nix @@ -3,8 +3,8 @@ let inherit (config.swarselsystems) mainUser homeDir; in { - options.swarselsystems.modules.gpgagent = lib.mkEnableOption "gpg agent settings"; - config = lib.mkIf config.swarselsystems.modules.gpgagent { + options.swarselmodules.gpgagent = lib.mkEnableOption "gpg agent settings"; + config = lib.mkIf config.swarselmodules.gpgagent { services.gpg-agent = { enable = true; enableZshIntegration = true; diff --git a/modules/home/common/kanshi.nix b/modules/home/common/kanshi.nix index 352666d..026450e 100644 --- a/modules/home/common/kanshi.nix +++ b/modules/home/common/kanshi.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.kanshi = lib.mkEnableOption "kanshi settings"; - config = lib.mkIf config.swarselsystems.modules.kanshi { + options.swarselmodules.kanshi = lib.mkEnableOption "kanshi settings"; + config = lib.mkIf config.swarselmodules.kanshi { swarselsystems = { monitors = { homedesktop = { diff --git a/modules/home/common/kdeconnect.nix b/modules/home/common/kdeconnect.nix index b36122e..c51ca32 100644 --- a/modules/home/common/kdeconnect.nix +++ b/modules/home/common/kdeconnect.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.kdeconnect = lib.mkEnableOption "kdeconnect settings"; - config = lib.mkIf config.swarselsystems.modules.kdeconnect { + options.swarselmodules.kdeconnect = lib.mkEnableOption "kdeconnect settings"; + config = lib.mkIf config.swarselmodules.kdeconnect { services.kdeconnect = { enable = true; indicator = true; diff --git a/modules/home/common/kitty.nix b/modules/home/common/kitty.nix index a7774ec..2b57e93 100644 --- a/modules/home/common/kitty.nix +++ b/modules/home/common/kitty.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.kitty = lib.mkEnableOption "kitty settings"; - config = lib.mkIf config.swarselsystems.modules.kitty { + options.swarselmodules.kitty = lib.mkEnableOption "kitty settings"; + config = lib.mkIf config.swarselmodules.kitty { programs.kitty = { enable = true; keybindings = { }; diff --git a/modules/home/common/mail.nix b/modules/home/common/mail.nix index ad5d529..77e67d4 100644 --- a/modules/home/common/mail.nix +++ b/modules/home/common/mail.nix @@ -5,8 +5,8 @@ let inherit (config.swarselsystems) xdgDir; in { - options.swarselsystems.modules.mail = lib.mkEnableOption "mail settings"; - config = lib.mkIf config.swarselsystems.modules.mail { + options.swarselmodules.mail = lib.mkEnableOption "mail settings"; + config = lib.mkIf config.swarselmodules.mail { sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) { address1-token = { path = "${xdgDir}/secrets/address1-token"; }; diff --git a/modules/home/common/mako.nix b/modules/home/common/mako.nix index bbff8c3..45d7cfa 100644 --- a/modules/home/common/mako.nix +++ b/modules/home/common/mako.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.mako = lib.mkEnableOption "mako settings"; - config = lib.mkIf config.swarselsystems.modules.mako { + options.swarselmodules.mako = lib.mkEnableOption "mako settings"; + config = lib.mkIf config.swarselmodules.mako { services.mako = { enable = true; settings = { diff --git a/modules/home/common/nix-index.nix b/modules/home/common/nix-index.nix index b23b1c1..42aa8d1 100644 --- a/modules/home/common/nix-index.nix +++ b/modules/home/common/nix-index.nix @@ -1,7 +1,7 @@ { self, lib, config, pkgs, ... }: { - options.swarselsystems.modules.nix-index = lib.mkEnableOption "nix-index settings"; - config = lib.mkIf config.swarselsystems.modules.nix-index { + options.swarselmodules.nix-index = lib.mkEnableOption "nix-index settings"; + config = lib.mkIf config.swarselmodules.nix-index { programs.nix-index = let commandNotFound = pkgs.runCommandLocal "command-not-found.sh" { } '' diff --git a/modules/home/common/nixgl.nix b/modules/home/common/nixgl.nix index 4fac380..0ba9d1a 100644 --- a/modules/home/common/nixgl.nix +++ b/modules/home/common/nixgl.nix @@ -1,14 +1,14 @@ { lib, config, nixgl, ... }: { + options.swarselmodules.nixgl = lib.mkEnableOption "nixgl settings"; options.swarselsystems = { - modules.nixgl = lib.mkEnableOption "nixgl settings"; isSecondaryGpu = lib.mkEnableOption "device has a secondary GPU"; SecondaryGpuCard = lib.mkOption { type = lib.types.str; default = ""; }; }; - config = lib.mkIf config.swarselsystems.modules.nixgl { + config = lib.mkIf config.swarselmodules.nixgl { nixGL = lib.mkIf (!config.swarselsystems.isNixos) { inherit (nixgl) packages; defaultWrapper = lib.mkDefault "mesa"; diff --git a/modules/home/common/packages.nix b/modules/home/common/packages.nix index f01c6ee..c9c3ba1 100644 --- a/modules/home/common/packages.nix +++ b/modules/home/common/packages.nix @@ -1,8 +1,8 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.packages = lib.mkEnableOption "packages settings"; - config = lib.mkIf config.swarselsystems.modules.packages { + options.swarselmodules.packages = lib.mkEnableOption "packages settings"; + config = lib.mkIf config.swarselmodules.packages { home.packages = with pkgs; [ # audio stuff diff --git a/modules/home/common/password-store.nix b/modules/home/common/password-store.nix index a6f05b7..bd9f640 100644 --- a/modules/home/common/password-store.nix +++ b/modules/home/common/password-store.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.passwordstore = lib.mkEnableOption "passwordstore settings"; - config = lib.mkIf config.swarselsystems.modules.passwordstore { + options.swarselmodules.passwordstore = lib.mkEnableOption "passwordstore settings"; + config = lib.mkIf config.swarselmodules.passwordstore { programs.password-store = { enable = true; settings = { diff --git a/modules/home/common/programs.nix b/modules/home/common/programs.nix index 27948d0..26f2619 100644 --- a/modules/home/common/programs.nix +++ b/modules/home/common/programs.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.programs = lib.mkEnableOption "programs settings"; - config = lib.mkIf config.swarselsystems.modules.programs { + options.swarselmodules.programs = lib.mkEnableOption "programs settings"; + config = lib.mkIf config.swarselmodules.programs { programs = { bottom.enable = true; imv.enable = true; diff --git a/modules/home/common/settings.nix b/modules/home/common/settings.nix index 540837a..3a349f7 100644 --- a/modules/home/common/settings.nix +++ b/modules/home/common/settings.nix @@ -3,8 +3,8 @@ let inherit (config.swarselsystems) mainUser; in { - options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings"; - config = lib.mkIf config.swarselsystems.modules.general { + options.swarselmodules.general = lib.mkEnableOption "general nix settings"; + config = lib.mkIf config.swarselmodules.general { nix = lib.mkIf (!config.swarselsystems.isNixos) { package = lib.mkForce pkgs.nixVersions.nix_2_28; extraOptions = '' diff --git a/modules/home/common/sharedoptions.nix b/modules/home/common/sharedoptions.nix new file mode 100644 index 0000000..343518f --- /dev/null +++ b/modules/home/common/sharedoptions.nix @@ -0,0 +1,12 @@ +{ lib, config, nixosConfig, ... }: +let + # mirrorAttrs = lib.mapAttrs (_: v: lib.mkDefault v) nixosConfig.swarselsystems; + inherit (lib) mkDefault mapAttrs filterAttrs; + mkDefaultCommonAttrs = base: defaults: + lib.mapAttrs (_: v: lib.mkDefault v) + (lib.filterAttrs (k: _: base ? ${k}) defaults); +in +{ + # config.swarselsystems = mirrorAttrs; + config.swarselsystems = mkDefaultCommonAttrs config.swarselsystems nixosConfig.swarselsystems; +} diff --git a/modules/home/common/sops.nix b/modules/home/common/sops.nix index fd93900..9fbdafc 100644 --- a/modules/home/common/sops.nix +++ b/modules/home/common/sops.nix @@ -3,8 +3,8 @@ let inherit (config.swarselsystems) homeDir; in { - options.swarselsystems.modules.sops = lib.mkEnableOption "sops settings"; - config = lib.mkIf config.swarselsystems.modules.sops { + options.swarselmodules.sops = lib.mkEnableOption "sops settings"; + config = lib.mkIf config.swarselmodules.sops { sops = { age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ]; defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml"; diff --git a/modules/home/common/ssh.nix b/modules/home/common/ssh.nix index dd7361a..052e9a1 100644 --- a/modules/home/common/ssh.nix +++ b/modules/home/common/ssh.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.ssh = lib.mkEnableOption "ssh settings"; - config = lib.mkIf config.swarselsystems.modules.ssh { + options.swarselmodules.ssh = lib.mkEnableOption "ssh settings"; + config = lib.mkIf config.swarselmodules.ssh { programs.ssh = { enable = true; forwardAgent = true; diff --git a/modules/home/common/starship.nix b/modules/home/common/starship.nix index bee6aeb..ba0e897 100644 --- a/modules/home/common/starship.nix +++ b/modules/home/common/starship.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.starship = lib.mkEnableOption "starship settings"; - config = lib.mkIf config.swarselsystems.modules.starship { + options.swarselmodules.starship = lib.mkEnableOption "starship settings"; + config = lib.mkIf config.swarselmodules.starship { programs.starship = { enable = true; enableZshIntegration = true; diff --git a/modules/home/common/stylix.nix b/modules/home/common/stylix.nix index eecdb83..10dd04e 100644 --- a/modules/home/common/stylix.nix +++ b/modules/home/common/stylix.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.stylix = lib.mkEnableOption "stylix settings"; - config = lib.mkIf config.swarselsystems.modules.stylix { + options.swarselmodules.stylix = lib.mkEnableOption "stylix settings"; + config = lib.mkIf config.swarselmodules.stylix { stylix = lib.mkIf (!config.swarselsystems.isNixos) (lib.recursiveUpdate { image = config.swarselsystems.wallpaper; diff --git a/modules/home/common/sway.nix b/modules/home/common/sway.nix index 4e19ab2..3dd5363 100644 --- a/modules/home/common/sway.nix +++ b/modules/home/common/sway.nix @@ -6,8 +6,8 @@ let }; in { + options.swarselmodules.sway = lib.mkEnableOption "sway settings"; options.swarselsystems = { - modules.sway = lib.mkEnableOption "sway settings"; inputs = lib.mkOption { type = lib.types.attrsOf (lib.types.attrsOf lib.types.str); default = { }; @@ -72,7 +72,7 @@ in internal = true; }; }; - config = lib.mkIf config.swarselsystems.modules.sway { + config = lib.mkIf config.swarselmodules.sway { swarselsystems = { touchpad = lib.mkIf config.swarselsystems.isLaptop { "type:touchpad" = { diff --git a/modules/home/common/swayosd.nix b/modules/home/common/swayosd.nix index e422fc2..706aa25 100644 --- a/modules/home/common/swayosd.nix +++ b/modules/home/common/swayosd.nix @@ -1,7 +1,7 @@ { lib, pkgs, config, ... }: { - options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings"; - config = lib.mkIf config.swarselsystems.modules.swayosd { + options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings"; + config = lib.mkIf config.swarselmodules.swayosd { services.swayosd = { enable = true; package = pkgs.dev.swayosd; diff --git a/modules/home/common/symlink.nix b/modules/home/common/symlink.nix index a0f1e89..8caca6e 100644 --- a/modules/home/common/symlink.nix +++ b/modules/home/common/symlink.nix @@ -1,7 +1,7 @@ { self, lib, config, ... }: { - options.swarselsystems.modules.symlink = lib.mkEnableOption "symlink settings"; - config = lib.mkIf config.swarselsystems.modules.symlink { + options.swarselmodules.symlink = lib.mkEnableOption "symlink settings"; + config = lib.mkIf config.swarselmodules.symlink { home.file = { "init.el" = lib.mkDefault { source = self + /files/emacs/init.el; diff --git a/modules/home/common/tmux.nix b/modules/home/common/tmux.nix index f5daa4d..f642c6b 100644 --- a/modules/home/common/tmux.nix +++ b/modules/home/common/tmux.nix @@ -13,8 +13,8 @@ let }; in { - options.swarselsystems.modules.tmux = lib.mkEnableOption "tmux settings"; - config = lib.mkIf config.swarselsystems.modules.tmux { + options.swarselmodules.tmux = lib.mkEnableOption "tmux settings"; + config = lib.mkIf config.swarselmodules.tmux { home.packages = with pkgs; [ lsof sesh diff --git a/modules/home/common/waybar.nix b/modules/home/common/waybar.nix index 238af30..b1f2960 100644 --- a/modules/home/common/waybar.nix +++ b/modules/home/common/waybar.nix @@ -22,8 +22,8 @@ let ]; in { + options.swarselmodules.waybar = lib.mkEnableOption "waybar settings"; options.swarselsystems = { - modules.waybar = lib.mkEnableOption "waybar settings"; cpuCount = lib.mkOption { type = lib.types.int; default = 8; @@ -52,7 +52,7 @@ in internal = true; }; }; - config = lib.mkIf config.swarselsystems.modules.waybar { + config = lib.mkIf config.swarselmodules.waybar { swarselsystems = { waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [ diff --git a/modules/home/common/yubikey-touch-detector.nix b/modules/home/common/yubikey-touch-detector.nix index 53e5721..fc28488 100644 --- a/modules/home/common/yubikey-touch-detector.nix +++ b/modules/home/common/yubikey-touch-detector.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings"; - config = lib.mkIf config.swarselsystems.modules.yubikeytouch { + options.swarselmodules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings"; + config = lib.mkIf config.swarselmodules.yubikeytouch { systemd.user.services.yubikey-touch-detector = { Unit = { Description = "Detects when your YubiKey is waiting for a touch"; diff --git a/modules/home/common/yubikey.nix b/modules/home/common/yubikey.nix index 04e21f0..61224f1 100644 --- a/modules/home/common/yubikey.nix +++ b/modules/home/common/yubikey.nix @@ -3,9 +3,9 @@ let inherit (config.swarselsystems) homeDir; in { - options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey settings"; + options.swarselmodules.yubikey = lib.mkEnableOption "yubikey settings"; - config = lib.mkIf config.swarselsystems.modules.yubikey { + config = lib.mkIf config.swarselmodules.yubikey { sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) { u2f-keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; }; diff --git a/modules/home/common/zellij.nix b/modules/home/common/zellij.nix index e2b80c0..92d4507 100644 --- a/modules/home/common/zellij.nix +++ b/modules/home/common/zellij.nix @@ -1,7 +1,7 @@ { self, lib, config, pkgs, ... }: { - options.swarselsystems.modules.zellij = lib.mkEnableOption "zellij settings"; - config = lib.mkIf config.swarselsystems.modules.zellij { + options.swarselmodules.zellij = lib.mkEnableOption "zellij settings"; + config = lib.mkIf config.swarselmodules.zellij { programs.zellij = { enable = true; enableZshIntegration = true; diff --git a/modules/home/common/zsh.nix b/modules/home/common/zsh.nix index f0d18b9..def981f 100644 --- a/modules/home/common/zsh.nix +++ b/modules/home/common/zsh.nix @@ -3,14 +3,14 @@ let inherit (config.swarselsystems) flakePath; in { + options.swarselmodules.zsh = lib.mkEnableOption "zsh settings"; options.swarselsystems = { - modules.zsh = lib.mkEnableOption "zsh settings"; shellAliases = lib.mkOption { type = lib.types.attrsOf lib.types.str; default = { }; }; }; - config = lib.mkIf config.swarselsystems.modules.zsh + config = lib.mkIf config.swarselmodules.zsh { sops.secrets = { diff --git a/modules/home/darwin/default.nix b/modules/home/darwin/default.nix index e90171c..f6ebde9 100644 --- a/modules/home/darwin/default.nix +++ b/modules/home/darwin/default.nix @@ -1,7 +1,8 @@ { self, ... }: { + home.stateVersion = "23.05"; imports = [ "${self}/modules/home/common/settings.nix" - "${self}/modules/home/common/sharedsetup.nix" + "${self}/modules/shared/sharedsetup.nix" ]; } diff --git a/modules/home/optional/framework.nix b/modules/home/optional/framework.nix index 46fe225..9e8a9d8 100644 --- a/modules/home/optional/framework.nix +++ b/modules/home/optional/framework.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.optional.framework = lib.mkEnableOption "optional framework machine settings"; - config = lib.mkIf config.swarselsystems.modules.optional.framework { + options.swarselmodules.optional.framework = lib.mkEnableOption "optional framework machine settings"; + config = lib.mkIf config.swarselmodules.optional.framework { swarselsystems = { inputs = { "12972:18:Framework_Laptop_16_Keyboard_Module_-_ANSI_Keyboard" = { diff --git a/modules/home/optional/gaming.nix b/modules/home/optional/gaming.nix index e55718c..e523332 100644 --- a/modules/home/optional/gaming.nix +++ b/modules/home/optional/gaming.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.optional.gaming = lib.mkEnableOption "optional gaming settings"; - config = lib.mkIf config.swarselsystems.modules.optional.gaming { + options.swarselmodules.optional.gaming = lib.mkEnableOption "optional gaming settings"; + config = lib.mkIf config.swarselmodules.optional.gaming { # specialisation = { # gaming.configuration = { home.packages = with pkgs; [ diff --git a/modules/home/optional/work.nix b/modules/home/optional/work.nix index bbd5201..0de809b 100644 --- a/modules/home/optional/work.nix +++ b/modules/home/optional/work.nix @@ -3,8 +3,8 @@ let inherit (config.swarselsystems) homeDir; in { - options.swarselsystems.modules.optional.work = lib.mkEnableOption "optional work settings"; - config = lib.mkIf config.swarselsystems.modules.optional.work { + options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings"; + config = lib.mkIf config.swarselmodules.optional.work { home.packages = with pkgs; [ stable.teams-for-linux shellcheck diff --git a/modules/home/server/default.nix b/modules/home/server/default.nix index 0d107f1..f70c4b3 100644 --- a/modules/home/server/default.nix +++ b/modules/home/server/default.nix @@ -6,6 +6,5 @@ in { imports = lib.swarselsystems.mkImports importNames "modules/home/server" ++ [ "${modulesPath}/home/common/settings.nix" - "${modulesPath}/home/common/sharedsetup.nix" ]; } diff --git a/modules/home/server/symlink.nix b/modules/home/server/symlink.nix index 27c3bf6..76ddb32 100644 --- a/modules/home/server/symlink.nix +++ b/modules/home/server/symlink.nix @@ -1,7 +1,7 @@ { self, lib, config, ... }: { - options.swarselsystems.modules.server.dotfiles = lib.mkEnableOption "server dotfiles settings"; - config = lib.mkIf config.swarselsystems.modules.server.dotfiles { + options.swarselmodules.server.dotfiles = lib.mkEnableOption "server dotfiles settings"; + config = lib.mkIf config.swarselmodules.server.dotfiles { home.file = { "init.el" = lib.mkForce { source = self + /files/emacs/server.el; diff --git a/modules/nixos/client/appimage.nix b/modules/nixos/client/appimage.nix index 209fda0..b32e107 100644 --- a/modules/nixos/client/appimage.nix +++ b/modules/nixos/client/appimage.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.appimage = lib.mkEnableOption "appimage config"; - config = lib.mkIf config.swarselsystems.modules.appimage { + options.swarselmodules.appimage = lib.mkEnableOption "appimage config"; + config = lib.mkIf config.swarselmodules.appimage { programs.appimage = { enable = true; binfmt = true; diff --git a/modules/nixos/client/autologin.nix b/modules/nixos/client/autologin.nix index 4343a56..0d27f6d 100644 --- a/modules/nixos/client/autologin.nix +++ b/modules/nixos/client/autologin.nix @@ -3,8 +3,8 @@ let inherit (config.swarselsystems) mainUser; in { - options.swarselsystems.modules.autologin = lib.mkEnableOption "optional autologin settings"; - config = lib.mkIf config.swarselsystems.modules.autologin { + options.swarselmodules.autologin = lib.mkEnableOption "optional autologin settings"; + config = lib.mkIf config.swarselmodules.autologin { services = { getty.autologinUser = mainUser; greetd.settings.initial_session.user = mainUser; diff --git a/modules/nixos/client/blueman.nix b/modules/nixos/client/blueman.nix index ad4513c..cadc5e6 100644 --- a/modules/nixos/client/blueman.nix +++ b/modules/nixos/client/blueman.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.blueman = lib.mkEnableOption "blueman config"; - config = lib.mkIf config.swarselsystems.modules.blueman { + options.swarselmodules.blueman = lib.mkEnableOption "blueman config"; + config = lib.mkIf config.swarselmodules.blueman { services.blueman.enable = true; services.hardware.bolt.enable = true; }; diff --git a/modules/nixos/client/distrobox.nix b/modules/nixos/client/distrobox.nix index cfe367b..d44fc7c 100644 --- a/modules/nixos/client/distrobox.nix +++ b/modules/nixos/client/distrobox.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.distrobox = lib.mkEnableOption "distrobox config"; - config = lib.mkIf config.swarselsystems.modules.distrobox { + options.swarselmodules.distrobox = lib.mkEnableOption "distrobox config"; + config = lib.mkIf config.swarselmodules.distrobox { environment.systemPackages = with pkgs; [ distrobox boxbuddy diff --git a/modules/nixos/client/env.nix b/modules/nixos/client/env.nix index 110efe1..ad9fad9 100644 --- a/modules/nixos/client/env.nix +++ b/modules/nixos/client/env.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.env = lib.mkEnableOption "environment config"; - config = lib.mkIf config.swarselsystems.modules.env { + options.swarselmodules.env = lib.mkEnableOption "environment config"; + config = lib.mkIf config.swarselmodules.env { environment = { wordlist.enable = true; diff --git a/modules/nixos/client/gnome-keyring.nix b/modules/nixos/client/gnome-keyring.nix index 07131eb..403bdfb 100644 --- a/modules/nixos/client/gnome-keyring.nix +++ b/modules/nixos/client/gnome-keyring.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome-keyring config"; - config = lib.mkIf config.swarselsystems.modules.gnome-keyring { + options.swarselmodules.gnome-keyring = lib.mkEnableOption "gnome-keyring config"; + config = lib.mkIf config.swarselmodules.gnome-keyring { services.gnome.gnome-keyring = { enable = true; }; diff --git a/modules/nixos/client/gvfs.nix b/modules/nixos/client/gvfs.nix index 1f6bbd0..059723b 100644 --- a/modules/nixos/client/gvfs.nix +++ b/modules/nixos/client/gvfs.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.gvfs = lib.mkEnableOption "gvfs config for nautilus"; - config = lib.mkIf config.swarselsystems.modules.gvfs { + options.swarselmodules.gvfs = lib.mkEnableOption "gvfs config for nautilus"; + config = lib.mkIf config.swarselmodules.gvfs { services.gvfs.enable = true; }; } diff --git a/modules/nixos/client/hardware.nix b/modules/nixos/client/hardware.nix index 13ca819..fd69f7c 100644 --- a/modules/nixos/client/hardware.nix +++ b/modules/nixos/client/hardware.nix @@ -1,8 +1,8 @@ { pkgs, config, lib, ... }: { + options.swarselmodules.hardware = lib.mkEnableOption "hardware config"; options.swarselsystems = { - modules.hardware = lib.mkEnableOption "hardware config"; hasBluetooth = lib.mkEnableOption "bluetooth availability"; hasFingerprint = lib.mkEnableOption "fingerprint sensor availability"; trackpoint = { @@ -13,7 +13,7 @@ }; }; }; - config = lib.mkIf config.swarselsystems.modules.hardware { + config = lib.mkIf config.swarselmodules.hardware { hardware = { # opengl.driSupport32Bit = true is replaced with graphics.enable32Bit and hence redundant graphics = { diff --git a/modules/nixos/client/hardwarecompatibility-keyboards.nix b/modules/nixos/client/hardwarecompatibility-keyboards.nix index 8a17a5f..346c0c2 100644 --- a/modules/nixos/client/hardwarecompatibility-keyboards.nix +++ b/modules/nixos/client/hardwarecompatibility-keyboards.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.keyboards = lib.mkEnableOption "keyboards config"; - config = lib.mkIf config.swarselsystems.modules.keyboards { + options.swarselmodules.keyboards = lib.mkEnableOption "keyboards config"; + config = lib.mkIf config.swarselmodules.keyboards { services.udev.packages = with pkgs; [ qmk-udev-rules vial diff --git a/modules/nixos/client/hardwarecompatibility-ledger.nix b/modules/nixos/client/hardwarecompatibility-ledger.nix index 85e87a1..b919e7a 100644 --- a/modules/nixos/client/hardwarecompatibility-ledger.nix +++ b/modules/nixos/client/hardwarecompatibility-ledger.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.ledger = lib.mkEnableOption "ledger config"; - config = lib.mkIf config.swarselsystems.modules.ledger { + options.swarselmodules.ledger = lib.mkEnableOption "ledger config"; + config = lib.mkIf config.swarselmodules.ledger { hardware.ledger.enable = true; services.udev.packages = with pkgs; [ diff --git a/modules/nixos/client/hardwarecompatibility-yubikey.nix b/modules/nixos/client/hardwarecompatibility-yubikey.nix index 1974260..75f55bc 100644 --- a/modules/nixos/client/hardwarecompatibility-yubikey.nix +++ b/modules/nixos/client/hardwarecompatibility-yubikey.nix @@ -4,8 +4,8 @@ let inherit (config.repo.secrets.common.yubikeys) cfg1 cfg2; in { - options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey config"; - config = lib.mkIf config.swarselsystems.modules.yubikey { + options.swarselmodules.yubikey = lib.mkEnableOption "yubikey config"; + config = lib.mkIf config.swarselmodules.yubikey { programs.ssh.startAgent = false; services.pcscd.enable = false; diff --git a/modules/nixos/client/interceptiontools.nix b/modules/nixos/client/interceptiontools.nix index 5be8b9a..935829f 100644 --- a/modules/nixos/client/interceptiontools.nix +++ b/modules/nixos/client/interceptiontools.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.interceptionTools = lib.mkEnableOption "interception tools config"; - config = lib.mkIf config.swarselsystems.modules.interceptionTools { + options.swarselmodules.interceptionTools = lib.mkEnableOption "interception tools config"; + config = lib.mkIf config.swarselmodules.interceptionTools { # Make CAPS work as a dual function ESC/CTRL key services.interception-tools = { enable = true; diff --git a/modules/nixos/client/lid.nix b/modules/nixos/client/lid.nix index b2d579d..faf1a84 100644 --- a/modules/nixos/client/lid.nix +++ b/modules/nixos/client/lid.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.lid = lib.mkEnableOption "lid config"; - config = lib.mkIf config.swarselsystems.modules.lid { + options.swarselmodules.lid = lib.mkEnableOption "lid config"; + config = lib.mkIf config.swarselmodules.lid { services.logind = { lidSwitch = "suspend"; lidSwitchDocked = "ignore"; diff --git a/modules/nixos/client/login.nix b/modules/nixos/client/login.nix index 5b1748f..11f0c37 100644 --- a/modules/nixos/client/login.nix +++ b/modules/nixos/client/login.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.login = lib.mkEnableOption "login config"; - config = lib.mkIf config.swarselsystems.modules.login { + options.swarselmodules.login = lib.mkEnableOption "login config"; + config = lib.mkIf config.swarselmodules.login { services.greetd = { enable = true; settings = { diff --git a/modules/nixos/client/lowbattery.nix b/modules/nixos/client/lowbattery.nix index 12bad22..9dece08 100644 --- a/modules/nixos/client/lowbattery.nix +++ b/modules/nixos/client/lowbattery.nix @@ -1,7 +1,7 @@ { pkgs, lib, config, ... }: { - options.swarselsystems.modules.lowBattery = lib.mkEnableOption "low battery notification config"; - config = lib.mkIf config.swarselsystems.modules.lowBattery { + options.swarselmodules.lowBattery = lib.mkEnableOption "low battery notification config"; + config = lib.mkIf config.swarselmodules.lowBattery { systemd.user.services."battery-low" = { enable = true; description = "Timer for battery check that alerts at 10% or less"; diff --git a/modules/nixos/client/network.nix b/modules/nixos/client/network.nix index 40ebbd0..27809ab 100644 --- a/modules/nixos/client/network.nix +++ b/modules/nixos/client/network.nix @@ -10,10 +10,10 @@ let in { options.swarselsystems = { - modules.network = lib.mkEnableOption "network config"; firewall = lib.swarselsystems.mkTrueOption; }; - config = lib.mkIf config.swarselsystems.modules.network { + options.swarselmodules.network = lib.mkEnableOption "network config"; + config = lib.mkIf config.swarselmodules.network { sops = { secrets = lib.mkIf (!config.swarselsystems.isPublic) { diff --git a/modules/nixos/client/networkdevices.nix b/modules/nixos/client/networkdevices.nix index 07b2b9c..71b5f1d 100644 --- a/modules/nixos/client/networkdevices.nix +++ b/modules/nixos/client/networkdevices.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.networkDevices = lib.mkEnableOption "network device config"; - config = lib.mkIf config.swarselsystems.modules.networkDevices { + options.swarselmodules.networkDevices = lib.mkEnableOption "network device config"; + config = lib.mkIf config.swarselmodules.networkDevices { # enable scanners over network hardware.sane = { enable = true; diff --git a/modules/nixos/client/nix-ld.nix b/modules/nixos/client/nix-ld.nix index 5b38b9d..48895bf 100644 --- a/modules/nixos/client/nix-ld.nix +++ b/modules/nixos/client/nix-ld.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.nix-ld = lib.mkEnableOption "nix-ld config"; - config = lib.mkIf config.swarselsystems.modules.nix-ld { + options.swarselmodules.nix-ld = lib.mkEnableOption "nix-ld config"; + config = lib.mkIf config.swarselmodules.nix-ld { programs.nix-ld = { enable = true; libraries = with pkgs; [ diff --git a/modules/nixos/client/nvd-rebuild.nix b/modules/nixos/client/nvd-rebuild.nix index 36f6188..731ca3a 100644 --- a/modules/nixos/client/nvd-rebuild.nix +++ b/modules/nixos/client/nvd-rebuild.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.nvd = lib.mkEnableOption "nvd config"; - config = lib.mkIf config.swarselsystems.modules.nvd { + options.swarselmodules.nvd = lib.mkEnableOption "nvd config"; + config = lib.mkIf config.swarselmodules.nvd { environment.systemPackages = [ pkgs.nvd diff --git a/modules/nixos/client/packages.nix b/modules/nixos/client/packages.nix index d613402..d44c15c 100644 --- a/modules/nixos/client/packages.nix +++ b/modules/nixos/client/packages.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, minimal, ... }: { - options.swarselsystems.modules.packages = lib.mkEnableOption "install packages"; - config = lib.mkIf config.swarselsystems.modules.packages { + options.swarselmodules.packages = lib.mkEnableOption "install packages"; + config = lib.mkIf config.swarselmodules.packages { environment.systemPackages = with pkgs; lib.optionals (!minimal) [ # yubikey packages diff --git a/modules/nixos/client/pipewire.nix b/modules/nixos/client/pipewire.nix index db35a93..1f8ea4d 100644 --- a/modules/nixos/client/pipewire.nix +++ b/modules/nixos/client/pipewire.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.pipewire = lib.mkEnableOption "pipewire config"; - config = lib.mkIf config.swarselsystems.modules.pipewire { + options.swarselmodules.pipewire = lib.mkEnableOption "pipewire config"; + config = lib.mkIf config.swarselmodules.pipewire { security.rtkit.enable = true; # this is required for pipewire real-time access services.pipewire = { diff --git a/modules/nixos/client/polkit.nix b/modules/nixos/client/polkit.nix index 8caf8e1..6d1129f 100644 --- a/modules/nixos/client/polkit.nix +++ b/modules/nixos/client/polkit.nix @@ -1,7 +1,7 @@ { lib, config, minimal, ... }: { - options.swarselsystems.modules.security = lib.mkEnableOption "security config"; - config = lib.mkIf config.swarselsystems.modules.security { + options.swarselmodules.security = lib.mkEnableOption "security config"; + config = lib.mkIf config.swarselmodules.security { security = { pam.services = lib.mkIf (!minimal) { diff --git a/modules/nixos/client/power-profiles-daemon.nix b/modules/nixos/client/power-profiles-daemon.nix index 86b0676..a3d8ac3 100644 --- a/modules/nixos/client/power-profiles-daemon.nix +++ b/modules/nixos/client/power-profiles-daemon.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.ppd = lib.mkEnableOption "power profiles daemon config"; - config = lib.mkIf config.swarselsystems.modules.ppd { + options.swarselmodules.ppd = lib.mkEnableOption "power profiles daemon config"; + config = lib.mkIf config.swarselmodules.ppd { services.power-profiles-daemon.enable = true; }; } diff --git a/modules/nixos/client/programs.nix b/modules/nixos/client/programs.nix index fb0b82d..893a11a 100644 --- a/modules/nixos/client/programs.nix +++ b/modules/nixos/client/programs.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.programs = lib.mkEnableOption "small program modules config"; - config = lib.mkIf config.swarselsystems.modules.programs { + options.swarselmodules.programs = lib.mkEnableOption "small program modules config"; + config = lib.mkIf config.swarselmodules.programs { programs = { dconf.enable = true; evince.enable = true; diff --git a/modules/nixos/client/pulseaudio.nix b/modules/nixos/client/pulseaudio.nix index 7e26a1c..84f4dea 100644 --- a/modules/nixos/client/pulseaudio.nix +++ b/modules/nixos/client/pulseaudio.nix @@ -1,7 +1,7 @@ { config, pkgs, lib, ... }: { - options.swarselsystems.modules.pulseaudio = lib.mkEnableOption "pulseaudio config"; - config = lib.mkIf config.swarselsystems.modules.pulseaudio { + options.swarselmodules.pulseaudio = lib.mkEnableOption "pulseaudio config"; + config = lib.mkIf config.swarselmodules.pulseaudio { services.pulseaudio = { enable = lib.mkIf (!config.services.pipewire.enable) true; package = pkgs.pulseaudioFull; diff --git a/modules/nixos/client/sops.nix b/modules/nixos/client/sops.nix index 2d4b0ce..2fa10eb 100644 --- a/modules/nixos/client/sops.nix +++ b/modules/nixos/client/sops.nix @@ -1,7 +1,7 @@ { config, lib, ... }: { - options.swarselsystems.modules.sops = lib.mkEnableOption "sops config"; - config = lib.mkIf config.swarselsystems.modules.sops { + options.swarselmodules.sops = lib.mkEnableOption "sops config"; + config = lib.mkIf config.swarselmodules.sops { sops = { # age.sshKeyPaths = lib.swarselsystems.mkIfElseList config.swarselsystems.isBtrfs [ "/persist/.ssh/sops" "/persist/.ssh/ssh_host_ed25519_key" ] [ "${config.swarselsystems.homeDir}/.ssh/sops" "/etc/ssh/sops" "/etc/ssh/ssh_host_ed25519_key" ]; diff --git a/modules/nixos/client/stylix.nix b/modules/nixos/client/stylix.nix index 8caa08d..6fbe7f3 100644 --- a/modules/nixos/client/stylix.nix +++ b/modules/nixos/client/stylix.nix @@ -1,11 +1,11 @@ { self, lib, config, ... }: { - options.swarselsystems.modules.stylix = lib.mkEnableOption "stylix config"; + options.swarselmodules.stylix = lib.mkEnableOption "stylix config"; config = { stylix = { enable = true; base16Scheme = "${self}/files/stylix/swarsel.yaml"; - } // lib.optionalAttrs config.swarselsystems.modules.stylix + } // lib.optionalAttrs config.swarselmodules.stylix (lib.recursiveUpdate { targets.grub.enable = false; # the styling makes grub more ugly diff --git a/modules/nixos/client/sway.nix b/modules/nixos/client/sway.nix index afd8157..8643b09 100644 --- a/modules/nixos/client/sway.nix +++ b/modules/nixos/client/sway.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.sway = lib.mkEnableOption "sway config"; - config = lib.mkIf config.swarselsystems.modules.sway { + options.swarselmodules.sway = lib.mkEnableOption "sway config"; + config = lib.mkIf config.swarselmodules.sway { programs.sway = { enable = true; package = pkgs.dev.swayfx; diff --git a/modules/nixos/client/swayosd.nix b/modules/nixos/client/swayosd.nix index e0dcaeb..c8d1caf 100644 --- a/modules/nixos/client/swayosd.nix +++ b/modules/nixos/client/swayosd.nix @@ -1,7 +1,7 @@ { lib, pkgs, config, ... }: { - options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings"; - config = lib.mkIf config.swarselsystems.modules.swayosd { + options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings"; + config = lib.mkIf config.swarselmodules.swayosd { environment.systemPackages = [ pkgs.dev.swayosd ]; services.udev.packages = [ pkgs.dev.swayosd ]; systemd.services.swayosd-libinput-backend = { diff --git a/modules/nixos/client/syncthing.nix b/modules/nixos/client/syncthing.nix index 7d7fc94..0e46751 100644 --- a/modules/nixos/client/syncthing.nix +++ b/modules/nixos/client/syncthing.nix @@ -3,8 +3,8 @@ let inherit (config.swarselsystems) mainUser homeDir; in { - options.swarselsystems.modules.syncthing = lib.mkEnableOption "syncthing config"; - config = lib.mkIf config.swarselsystems.modules.syncthing { + options.swarselmodules.syncthing = lib.mkEnableOption "syncthing config"; + config = lib.mkIf config.swarselmodules.syncthing { services.syncthing = { enable = true; package = pkgs.stable.syncthing; diff --git a/modules/nixos/client/systemd.nix b/modules/nixos/client/systemd.nix index 56da8a1..5ad6aaa 100644 --- a/modules/nixos/client/systemd.nix +++ b/modules/nixos/client/systemd.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.systemdTimeout = lib.mkEnableOption "systemd timeout config"; - config = lib.mkIf config.swarselsystems.modules.systemdTimeout { + options.swarselmodules.systemdTimeout = lib.mkEnableOption "systemd timeout config"; + config = lib.mkIf config.swarselmodules.systemdTimeout { # systemd systemd.extraConfig = '' DefaultTimeoutStartSec=60s diff --git a/modules/nixos/client/xdg-portal.nix b/modules/nixos/client/xdg-portal.nix index 22abdb7..9da6946 100644 --- a/modules/nixos/client/xdg-portal.nix +++ b/modules/nixos/client/xdg-portal.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.xdg-portal = lib.mkEnableOption "xdg portal config"; - config = lib.mkIf config.swarselsystems.modules.xdg-portal { + options.swarselmodules.xdg-portal = lib.mkEnableOption "xdg portal config"; + config = lib.mkIf config.swarselmodules.xdg-portal { xdg.portal = { enable = true; config = { diff --git a/modules/nixos/client/zsh.nix b/modules/nixos/client/zsh.nix index e1eaaf6..3e6b771 100644 --- a/modules/nixos/client/zsh.nix +++ b/modules/nixos/client/zsh.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.zsh = lib.mkEnableOption "zsh base config"; - config = lib.mkIf config.swarselsystems.modules.zsh { + options.swarselmodules.zsh = lib.mkEnableOption "zsh base config"; + config = lib.mkIf config.swarselmodules.zsh { programs.zsh = { enable = true; enableCompletion = false; diff --git a/modules/nixos/common/home-manager.nix b/modules/nixos/common/home-manager.nix index fb0b3ed..04ba4f6 100644 --- a/modules/nixos/common/home-manager.nix +++ b/modules/nixos/common/home-manager.nix @@ -1,7 +1,7 @@ -{ self, inputs, config, lib, outputs, globals, nodes, minimal, configName, ... }: +{ self, inputs, config, lib, outputs, globals, options, nodes, minimal, configName, ... }: { - options.swarselsystems.modules.home-manager = lib.mkEnableOption "home-manager"; - config = lib.mkIf config.swarselsystems.modules.home-manager { + options.swarselmodules.home-manager = lib.mkEnableOption "home-manager"; + config = lib.mkIf config.swarselmodules.home-manager { home-manager = lib.mkIf config.swarselsystems.withHomeManager { useGlobalPkgs = true; useUserPackages = true; diff --git a/modules/nixos/common/impermanence.nix b/modules/nixos/common/impermanence.nix index 3256df7..31f8641 100644 --- a/modules/nixos/common/impermanence.nix +++ b/modules/nixos/common/impermanence.nix @@ -4,8 +4,8 @@ let inherit (config.swarselsystems) isImpermanence isCrypted; in { - options.swarselsystems.modules.impermanence = lib.mkEnableOption "impermanence config"; - config = lib.mkIf config.swarselsystems.modules.impermanence { + options.swarselmodules.impermanence = lib.mkEnableOption "impermanence config"; + config = lib.mkIf config.swarselmodules.impermanence { security.sudo.extraConfig = lib.mkIf isImpermanence '' diff --git a/modules/nixos/common/lanzaboote.nix b/modules/nixos/common/lanzaboote.nix index b4c671e..8492eba 100644 --- a/modules/nixos/common/lanzaboote.nix +++ b/modules/nixos/common/lanzaboote.nix @@ -1,7 +1,7 @@ { lib, pkgs, config, minimal, ... }: { - options.swarselsystems.modules.lanzaboote = lib.mkEnableOption "lanzaboote config"; - config = lib.mkIf config.swarselsystems.modules.lanzaboote { + options.swarselmodules.lanzaboote = lib.mkEnableOption "lanzaboote config"; + config = lib.mkIf config.swarselmodules.lanzaboote { environment.systemPackages = lib.mkIf config.swarselsystems.isSecureBoot [ pkgs.sbctl diff --git a/modules/nixos/common/pii.nix b/modules/nixos/common/pii.nix index 6b8fd21..26b31d0 100644 --- a/modules/nixos/common/pii.nix +++ b/modules/nixos/common/pii.nix @@ -58,9 +58,9 @@ in description = "Exposes the loaded repo secrets. This option is read-only."; }; }; - swarselsystems.modules.pii = lib.mkEnableOption "enable pii management"; + swarselmodules.pii = lib.mkEnableOption "enable pii management"; }; - config = lib.mkIf config.swarselsystems.modules.pii { + config = lib.mkIf config.swarselmodules.pii { repo.secretFiles = let local = config.node.secretsDir + "/pii.nix.enc"; diff --git a/modules/nixos/common/settings.nix b/modules/nixos/common/settings.nix index 6edb610..57625c1 100644 --- a/modules/nixos/common/settings.nix +++ b/modules/nixos/common/settings.nix @@ -52,8 +52,8 @@ let }; in { - options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings"; - config = lib.mkIf config.swarselsystems.modules.general + options.swarselmodules.general = lib.mkEnableOption "general nix settings"; + config = lib.mkIf config.swarselmodules.general (lib.recursiveUpdate { sops.secrets.github-api-token = lib.mkIf (!minimal) { diff --git a/modules/nixos/common/sharedsetup.nix b/modules/nixos/common/sharedsetup.nix deleted file mode 100644 index 1269fdd..0000000 --- a/modules/nixos/common/sharedsetup.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, ... }: -{ - options = { - swarselsystems = { - withHomeManager = lib.mkOption { - type = lib.types.bool; - default = true; - }; - isSwap = lib.mkOption { - type = lib.types.bool; - default = true; - }; - swapSize = lib.mkOption { - type = lib.types.str; - default = "8G"; - }; - rootDisk = lib.mkOption { - type = lib.types.str; - default = ""; - }; - isCrypted = lib.mkEnableOption "uses full disk encryption"; - - isImpermanence = lib.mkEnableOption "use impermanence on this system"; - isSecureBoot = lib.mkEnableOption "use secure boot on this system"; - }; - }; -} diff --git a/modules/nixos/common/time.nix b/modules/nixos/common/time.nix index 21c951a..10e21b4 100644 --- a/modules/nixos/common/time.nix +++ b/modules/nixos/common/time.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.time = lib.mkEnableOption "time config"; - config = lib.mkIf config.swarselsystems.modules.time { + options.swarselmodules.time = lib.mkEnableOption "time config"; + config = lib.mkIf config.swarselmodules.time { time = { timeZone = "Europe/Vienna"; # hardwareClockInLocalTime = true; diff --git a/modules/nixos/common/users.nix b/modules/nixos/common/users.nix index 79d2ed5..ceb6268 100644 --- a/modules/nixos/common/users.nix +++ b/modules/nixos/common/users.nix @@ -3,8 +3,8 @@ let sopsFile = self + /secrets/general/secrets.yaml; in { - options.swarselsystems.modules.users = lib.mkEnableOption "user config"; - config = lib.mkIf config.swarselsystems.modules.users { + options.swarselmodules.users = lib.mkEnableOption "user config"; + config = lib.mkIf config.swarselmodules.users { sops.secrets.main-user-hashed-pw = lib.mkIf (!config.swarselsystems.isPublic) { inherit sopsFile; neededForUsers = true; }; users = { diff --git a/modules/nixos/common/xserver.nix b/modules/nixos/common/xserver.nix index b529f9b..556011e 100644 --- a/modules/nixos/common/xserver.nix +++ b/modules/nixos/common/xserver.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.xserver = lib.mkEnableOption "xserver keymap"; - config = lib.mkIf config.swarselsystems.modules.packages { + options.swarselmodules.xserver = lib.mkEnableOption "xserver keymap"; + config = lib.mkIf config.swarselmodules.packages { services.xserver = { xkb = { layout = "us"; diff --git a/modules/nixos/darwin/default.nix b/modules/nixos/darwin/default.nix index e7b02e6..4e4d373 100644 --- a/modules/nixos/darwin/default.nix +++ b/modules/nixos/darwin/default.nix @@ -6,8 +6,8 @@ in imports = [ ]; - options.swarselsystems.modules.darwin.general = lib.mkEnableOption "darwin config"; - config = lib.mkIf config.swarselsystems.modules.darwin.general { + options.swarselmodules.optional.darwin = lib.mkEnableOption "optional darwin settings"; + config = lib.mkIf config.swarselmodules.optional.darwin { nix.settings.experimental-features = "nix-command flakes"; nixpkgs = { hostPlatform = "x86_64-darwin"; diff --git a/modules/nixos/optional/amdcpu.nix b/modules/nixos/optional/amdcpu.nix index 39028f5..9051b9d 100644 --- a/modules/nixos/optional/amdcpu.nix +++ b/modules/nixos/optional/amdcpu.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.optional.amdcpu = lib.mkEnableOption "optional amd cpu settings"; - config = lib.mkIf config.swarselsystems.modules.optional.amdcpu { + options.swarselmodules.optional.amdcpu = lib.mkEnableOption "optional amd cpu settings"; + config = lib.mkIf config.swarselmodules.optional.amdcpu { hardware = { cpu.amd.updateMicrocode = true; }; diff --git a/modules/nixos/optional/amdgpu.nix b/modules/nixos/optional/amdgpu.nix index 59bebe3..c6aa61f 100644 --- a/modules/nixos/optional/amdgpu.nix +++ b/modules/nixos/optional/amdgpu.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.optional.amdgpu = lib.mkEnableOption "optional amd gpu settings"; - config = lib.mkIf config.swarselsystems.modules.optional.amdgpu { + options.swarselmodules.optional.amdgpu = lib.mkEnableOption "optional amd gpu settings"; + config = lib.mkIf config.swarselmodules.optional.amdgpu { hardware = { amdgpu = { opencl.enable = true; diff --git a/modules/nixos/optional/btrfs.nix b/modules/nixos/optional/btrfs.nix index 5c6e9f6..e8d3b57 100644 --- a/modules/nixos/optional/btrfs.nix +++ b/modules/nixos/optional/btrfs.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { - options.swarselsystems.modules.optional.btrfs = lib.mkEnableOption "optional btrfs settings"; - config = lib.mkIf config.swarselsystems.modules.optional.btrfs { + options.swarselmodules.optional.btrfs = lib.mkEnableOption "optional btrfs settings"; + config = lib.mkIf config.swarselmodules.optional.btrfs { boot = { supportedFilesystems = [ "btrfs" ]; }; diff --git a/modules/nixos/optional/default.nix b/modules/nixos/optional/default.nix index 9499b56..49b7058 100644 --- a/modules/nixos/optional/default.nix +++ b/modules/nixos/optional/default.nix @@ -1,10 +1,7 @@ -{ self, lib, ... }: +{ lib, ... }: let importNames = lib.swarselsystems.readNix "modules/nixos/optional"; - modulesPath = "${self}/modules"; in { - imports = lib.swarselsystems.mkImports importNames "modules/nixos/optional" ++ [ - "${modulesPath}/home/common/sharedsetup.nix" - ]; + imports = lib.swarselsystems.mkImports importNames "modules/nixos/optional"; } diff --git a/modules/nixos/optional/framework.nix b/modules/nixos/optional/framework.nix index 3627255..949cc82 100644 --- a/modules/nixos/optional/framework.nix +++ b/modules/nixos/optional/framework.nix @@ -3,8 +3,8 @@ imports = [ inputs.fw-fanctrl.nixosModules.default ]; - options.swarselsystems.modules.optional.framework = lib.mkEnableOption "optional framework machine settings"; - config = lib.mkIf config.swarselsystems.modules.optional.framework { + options.swarselmodules.optional.framework = lib.mkEnableOption "optional framework machine settings"; + config = lib.mkIf config.swarselmodules.optional.framework { services = { fwupd = { enable = true; diff --git a/modules/nixos/optional/gaming.nix b/modules/nixos/optional/gaming.nix index eafcf65..5f28872 100644 --- a/modules/nixos/optional/gaming.nix +++ b/modules/nixos/optional/gaming.nix @@ -1,7 +1,7 @@ { pkgs, lib, config, ... }: { - options.swarselsystems.modules.optional.gaming = lib.mkEnableOption "optional gaming settings"; - config = lib.mkIf config.swarselsystems.modules.optional.gaming { + options.swarselmodules.optional.gaming = lib.mkEnableOption "optional gaming settings"; + config = lib.mkIf config.swarselmodules.optional.gaming { programs.steam = { enable = true; package = pkgs.steam; diff --git a/modules/nixos/optional/hibernation.nix b/modules/nixos/optional/hibernation.nix index d013598..856b672 100644 --- a/modules/nixos/optional/hibernation.nix +++ b/modules/nixos/optional/hibernation.nix @@ -1,7 +1,7 @@ { lib, config, ... }: { + options.swarselmodules.optional.hibernation = lib.mkEnableOption "optional amd gpu settings"; options.swarselsystems = { - modules.optional.hibernation = lib.mkEnableOption "optional amd gpu settings"; hibernation = { offset = lib.mkOption { type = lib.types.int; @@ -13,7 +13,7 @@ }; }; }; - config = lib.mkIf config.swarselsystems.modules.optional.hibernation { + config = lib.mkIf config.swarselmodules.optional.hibernation { boot = { kernelParams = [ "resume_offset=${builtins.toString config.swarselsystems.hibernation.offset}" diff --git a/modules/nixos/optional/nswitch-rcm.nix b/modules/nixos/optional/nswitch-rcm.nix index 095524e..3af88db 100644 --- a/modules/nixos/optional/nswitch-rcm.nix +++ b/modules/nixos/optional/nswitch-rcm.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.optional.nswitch-rcm = lib.mkEnableOption "optional nswitch-rcm settings"; - config = lib.mkIf config.swarselsystems.modules.optional.nswitch-rcm { + options.swarselmodules.optional.nswitch-rcm = lib.mkEnableOption "optional nswitch-rcm settings"; + config = lib.mkIf config.swarselmodules.optional.nswitch-rcm { services.nswitch-rcm = { enable = true; package = pkgs.fetchurl { diff --git a/modules/nixos/optional/virtualbox.nix b/modules/nixos/optional/virtualbox.nix index 4953b74..ee5a4b7 100644 --- a/modules/nixos/optional/virtualbox.nix +++ b/modules/nixos/optional/virtualbox.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.optional.virtualbox = lib.mkEnableOption "optional VBox settings"; - config = lib.mkIf config.swarselsystems.modules.optional.virtualbox { + options.swarselmodules.optional.virtualbox = lib.mkEnableOption "optional VBox settings"; + config = lib.mkIf config.swarselmodules.optional.virtualbox { specialisation = { VBox.configuration = { virtualisation.virtualbox = { diff --git a/modules/nixos/optional/vmware.nix b/modules/nixos/optional/vmware.nix index d328f38..4236080 100644 --- a/modules/nixos/optional/vmware.nix +++ b/modules/nixos/optional/vmware.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.modules.optional.vmware = lib.mkEnableOption "optional vmware settings"; - config = lib.mkIf config.swarselsystems.modules.optional.vmware { + options.swarselmodules.optional.vmware = lib.mkEnableOption "optional vmware settings"; + config = lib.mkIf config.swarselmodules.optional.vmware { virtualisation.vmware.host.enable = true; virtualisation.vmware.guest.enable = true; }; diff --git a/modules/nixos/optional/work.nix b/modules/nixos/optional/work.nix index fdf85d4..1e7058f 100644 --- a/modules/nixos/optional/work.nix +++ b/modules/nixos/optional/work.nix @@ -25,8 +25,8 @@ let }; in { + options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings"; options.swarselsystems = { - modules.optional.work = lib.mkEnableOption "optional work settings"; hostName = lib.mkOption { type = lib.types.str; default = ""; @@ -36,7 +36,7 @@ in default = ""; }; }; - config = lib.mkIf config.swarselsystems.modules.optional.work { + config = lib.mkIf config.swarselmodules.optional.work { sops = let secretNames = [ diff --git a/modules/nixos/server/ankisync.nix b/modules/nixos/server/ankisync.nix index b7b3c6e..8f03d14 100644 --- a/modules/nixos/server/ankisync.nix +++ b/modules/nixos/server/ankisync.nix @@ -9,8 +9,8 @@ let ankiUser = globals.user.name; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { networking.firewall.allowedTCPPorts = [ servicePort ]; diff --git a/modules/nixos/server/atuin.nix b/modules/nixos/server/atuin.nix index 790a900..59714f6 100644 --- a/modules/nixos/server/atuin.nix +++ b/modules/nixos/server/atuin.nix @@ -5,8 +5,8 @@ let serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { topology.self.services.${serviceName}.info = "https://${serviceDomain}"; globals.services.${serviceName}.domain = serviceDomain; diff --git a/modules/nixos/server/croc.nix b/modules/nixos/server/croc.nix index c3d9f1d..d9c1286 100644 --- a/modules/nixos/server/croc.nix +++ b/modules/nixos/server/croc.nix @@ -15,8 +15,8 @@ let cfg = config.services.croc; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops = { secrets = { diff --git a/modules/nixos/server/emacs.nix b/modules/nixos/server/emacs.nix index 598ee6b..03e1261 100644 --- a/modules/nixos/server/emacs.nix +++ b/modules/nixos/server/emacs.nix @@ -4,8 +4,8 @@ let servicePort = 9812; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} server on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} server on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { networking.firewall.allowedTCPPorts = [ servicePort ]; diff --git a/modules/nixos/server/firefly-iii.nix b/modules/nixos/server/firefly-iii.nix index ce5e8ee..781da1a 100644 --- a/modules/nixos/server/firefly-iii.nix +++ b/modules/nixos/server/firefly-iii.nix @@ -12,8 +12,8 @@ let cfg = config.services.firefly-iii; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users = { groups.${serviceGroup} = { }; diff --git a/modules/nixos/server/forgejo.nix b/modules/nixos/server/forgejo.nix index a0ea0d5..949c2e7 100644 --- a/modules/nixos/server/forgejo.nix +++ b/modules/nixos/server/forgejo.nix @@ -11,8 +11,8 @@ let kanidmDomain = globals.services.kanidm.domain; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { networking.firewall.allowedTCPPorts = [ servicePort ]; diff --git a/modules/nixos/server/freshrss.nix b/modules/nixos/server/freshrss.nix index 2e6e657..7f9362c 100644 --- a/modules/nixos/server/freshrss.nix +++ b/modules/nixos/server/freshrss.nix @@ -9,8 +9,8 @@ let inherit (config.swarselsystems) sopsFile; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "users" ]; diff --git a/modules/nixos/server/immich.nix b/modules/nixos/server/immich.nix index f0d7bf1..a3e9eee 100644 --- a/modules/nixos/server/immich.nix +++ b/modules/nixos/server/immich.nix @@ -6,8 +6,8 @@ let serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "video" "render" "users" ]; diff --git a/modules/nixos/server/jellyfin.nix b/modules/nixos/server/jellyfin.nix index 9762b79..296fa76 100644 --- a/modules/nixos/server/jellyfin.nix +++ b/modules/nixos/server/jellyfin.nix @@ -6,8 +6,8 @@ let serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "video" "render" "users" ]; }; diff --git a/modules/nixos/server/jenkins.nix b/modules/nixos/server/jenkins.nix index c2bdaec..c9a587e 100644 --- a/modules/nixos/server/jenkins.nix +++ b/modules/nixos/server/jenkins.nix @@ -5,8 +5,8 @@ let serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { services.jenkins = { enable = true; diff --git a/modules/nixos/server/kanidm.nix b/modules/nixos/server/kanidm.nix index 6096297..3f90e06 100644 --- a/modules/nixos/server/kanidm.nix +++ b/modules/nixos/server/kanidm.nix @@ -17,8 +17,8 @@ let nextcloudDomain = globals.services.nextcloud.domain; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { group = serviceGroup; diff --git a/modules/nixos/server/kavita.nix b/modules/nixos/server/kavita.nix index e24fdb7..e278037 100644 --- a/modules/nixos/server/kavita.nix +++ b/modules/nixos/server/kavita.nix @@ -8,8 +8,8 @@ let serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { environment.systemPackages = with pkgs; [ calibre ]; diff --git a/modules/nixos/server/koillection.nix b/modules/nixos/server/koillection.nix index d022495..8db5b0d 100644 --- a/modules/nixos/server/koillection.nix +++ b/modules/nixos/server/koillection.nix @@ -13,8 +13,8 @@ let inherit (config.swarselsystems) sopsFile; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops.secrets = { koillection-db-password = { inherit sopsFile; owner = postgresUser; group = postgresUser; mode = "0440"; }; diff --git a/modules/nixos/server/matrix.nix b/modules/nixos/server/matrix.nix index b95f03f..4f88707 100644 --- a/modules/nixos/server/matrix.nix +++ b/modules/nixos/server/matrix.nix @@ -21,8 +21,8 @@ let ''; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { environment.systemPackages = with pkgs; [ matrix-synapse lottieconverter diff --git a/modules/nixos/server/microbin.nix b/modules/nixos/server/microbin.nix index 06dc4f5..1001d69 100644 --- a/modules/nixos/server/microbin.nix +++ b/modules/nixos/server/microbin.nix @@ -11,8 +11,8 @@ let cfg = config.services.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users = { groups.${serviceGroup} = { }; diff --git a/modules/nixos/server/monitoring.nix b/modules/nixos/server/monitoring.nix index 183cb90..6a35c5c 100644 --- a/modules/nixos/server/monitoring.nix +++ b/modules/nixos/server/monitoring.nix @@ -17,8 +17,8 @@ let inherit (config.swarselsystems) sopsFile; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops = { secrets = { @@ -193,7 +193,7 @@ in sslVerify = false; scrapeUri = "http://localhost/nginx_status"; }; - nextcloud = lib.mkIf config.swarselsystems.modules.server.nextcloud { + nextcloud = lib.mkIf config.swarselmodules.server.nextcloud { enable = true; port = 9205; url = "https://${serviceDomain}/ocs/v2.php/apps/serverinfo/api/v1/info"; diff --git a/modules/nixos/server/mpd.nix b/modules/nixos/server/mpd.nix index 454fbb1..0f7afc4 100644 --- a/modules/nixos/server/mpd.nix +++ b/modules/nixos/server/mpd.nix @@ -8,8 +8,8 @@ let serviceName = "mpd"; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users = { groups = { mpd = { }; diff --git a/modules/nixos/server/navidrome.nix b/modules/nixos/server/navidrome.nix index eed687f..3d6df90 100644 --- a/modules/nixos/server/navidrome.nix +++ b/modules/nixos/server/navidrome.nix @@ -7,8 +7,8 @@ let serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { environment.systemPackages = with pkgs; [ pciutils alsa-utils diff --git a/modules/nixos/server/nextcloud.nix b/modules/nixos/server/nextcloud.nix index 143c677..1deeb81 100644 --- a/modules/nixos/server/nextcloud.nix +++ b/modules/nixos/server/nextcloud.nix @@ -10,8 +10,8 @@ let serviceDomain = config.repo.secrets.common.services.domains.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops.secrets = { nextcloud-admin-pw = { inherit sopsFile; owner = serviceUser; group = serviceGroup; mode = "0440"; }; diff --git a/modules/nixos/server/nfs.nix b/modules/nixos/server/nfs.nix index 93f21b7..d2d97da 100644 --- a/modules/nixos/server/nfs.nix +++ b/modules/nixos/server/nfs.nix @@ -3,8 +3,8 @@ let nfsUser = globals.user.name; in { - options.swarselsystems.modules.server.nfs = lib.mkEnableOption "enable nfs on server"; - config = lib.mkIf config.swarselsystems.modules.server.nfs { + options.swarselmodules.server.nfs = lib.mkEnableOption "enable nfs on server"; + config = lib.mkIf config.swarselmodules.server.nfs { services = { # add a user with sudo smbpasswd -a samba = { diff --git a/modules/nixos/server/nginx.nix b/modules/nixos/server/nginx.nix index 354e444..97caafb 100644 --- a/modules/nixos/server/nginx.nix +++ b/modules/nixos/server/nginx.nix @@ -5,8 +5,8 @@ let in { - options.swarselsystems.modules.server.nginx = lib.mkEnableOption "enable nginx on server"; - config = lib.mkIf config.swarselsystems.modules.server.nginx { + options.swarselmodules.server.nginx = lib.mkEnableOption "enable nginx on server"; + config = lib.mkIf config.swarselmodules.server.nginx { environment.systemPackages = with pkgs; [ lego ]; diff --git a/modules/nixos/server/oauth2-proxy.nix b/modules/nixos/server/oauth2-proxy.nix index 401cd6b..d74a441 100644 --- a/modules/nixos/server/oauth2-proxy.nix +++ b/modules/nixos/server/oauth2-proxy.nix @@ -13,7 +13,7 @@ let in { options = { - swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; # largely based on https://github.com/oddlama/nix-config/blob/main/modules/oauth2-proxy.nix services.nginx.virtualHosts = lib.mkOption { type = lib.types.attrsOf ( @@ -121,7 +121,7 @@ in ); }; }; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops = { secrets = { diff --git a/modules/nixos/server/packages.nix b/modules/nixos/server/packages.nix index 136245a..6f5f744 100644 --- a/modules/nixos/server/packages.nix +++ b/modules/nixos/server/packages.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, ... }: { - options.swarselsystems.modules.server.packages = lib.mkEnableOption "enable packages on server"; - config = lib.mkIf config.swarselsystems.modules.server.packages { + options.swarselmodules.server.packages = lib.mkEnableOption "enable packages on server"; + config = lib.mkIf config.swarselmodules.server.packages { environment.systemPackages = with pkgs; [ gnupg nix-index diff --git a/modules/nixos/server/paperless.nix b/modules/nixos/server/paperless.nix index 9d52754..3172fd9 100644 --- a/modules/nixos/server/paperless.nix +++ b/modules/nixos/server/paperless.nix @@ -13,8 +13,8 @@ let kanidmDomain = globals.services.kanidm.domain; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "users" ]; diff --git a/modules/nixos/server/pipewire.nix b/modules/nixos/server/pipewire.nix index faf8e90..b6b315a 100644 --- a/modules/nixos/server/pipewire.nix +++ b/modules/nixos/server/pipewire.nix @@ -1,6 +1,6 @@ { lib, config, ... }: { - config = lib.mkIf (config?swarselsystems.modules.server.mpd || config?swarselsystems.modules.server.navidrome) { + config = lib.mkIf (config?swarselmodules.server.mpd || config?swarselmodules.server.navidrome) { security.rtkit.enable = true; # this is required for pipewire real-time access diff --git a/modules/nixos/server/postgresql.nix b/modules/nixos/server/postgresql.nix index b2bc7e1..3cfa47d 100644 --- a/modules/nixos/server/postgresql.nix +++ b/modules/nixos/server/postgresql.nix @@ -4,8 +4,8 @@ let postgresVersion = 14; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { services = { ${serviceName} = { enable = true; diff --git a/modules/nixos/server/radicale.nix b/modules/nixos/server/radicale.nix index 4d22aae..c9a1a8e 100644 --- a/modules/nixos/server/radicale.nix +++ b/modules/nixos/server/radicale.nix @@ -11,8 +11,8 @@ let cfg = config.services.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops = { secrets.radicale-user = { inherit sopsFile; owner = serviceUser; group = serviceGroup; mode = "0440"; }; diff --git a/modules/nixos/server/restic.nix b/modules/nixos/server/restic.nix index 804b18a..eb492b1 100644 --- a/modules/nixos/server/restic.nix +++ b/modules/nixos/server/restic.nix @@ -3,8 +3,8 @@ let inherit (config.swarselsystems) sopsFile; in { - options.swarselsystems.modules.server.restic = lib.mkEnableOption "enable restic backups on server"; - config = lib.mkIf config.swarselsystems.modules.server.restic { + options.swarselmodules.server.restic = lib.mkEnableOption "enable restic backups on server"; + config = lib.mkIf config.swarselmodules.server.restic { sops = { secrets = { diff --git a/modules/nixos/server/settings.nix b/modules/nixos/server/settings.nix index 11ddcac..31e7225 100644 --- a/modules/nixos/server/settings.nix +++ b/modules/nixos/server/settings.nix @@ -3,14 +3,15 @@ let inherit (config.swarselsystems) flakePath; in { + + options.swarselmodules.server.general = lib.mkEnableOption "general setting on server"; options.swarselsystems = { - modules.server.general = lib.mkEnableOption "general setting on server"; shellAliases = lib.mkOption { type = lib.types.attrsOf lib.types.str; default = { }; }; }; - config = lib.mkIf config.swarselsystems.modules.server.general { + config = lib.mkIf config.swarselmodules.server.general { environment.shellAliases = lib.recursiveUpdate { diff --git a/modules/nixos/server/shlink.nix b/modules/nixos/server/shlink.nix index e388ad3..59815c0 100644 --- a/modules/nixos/server/shlink.nix +++ b/modules/nixos/server/shlink.nix @@ -10,9 +10,9 @@ let in { options = { - swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; }; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + config = lib.mkIf config.swarselmodules.server.${serviceName} { sops = { secrets = { diff --git a/modules/nixos/server/spotifyd.nix b/modules/nixos/server/spotifyd.nix index 1de618a..ef4babd 100644 --- a/modules/nixos/server/spotifyd.nix +++ b/modules/nixos/server/spotifyd.nix @@ -6,8 +6,8 @@ let serviceGroup = serviceUser; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.groups.${serviceGroup} = { gid = 65136; }; diff --git a/modules/nixos/server/ssh.nix b/modules/nixos/server/ssh.nix index cb8b7ad..a588edf 100644 --- a/modules/nixos/server/ssh.nix +++ b/modules/nixos/server/ssh.nix @@ -1,7 +1,7 @@ { self, lib, config, ... }: { - options.swarselsystems.modules.server.ssh = lib.mkEnableOption "enable ssh on server"; - config = lib.mkIf config.swarselsystems.modules.server.ssh { + options.swarselmodules.server.ssh = lib.mkEnableOption "enable ssh on server"; + config = lib.mkIf config.swarselmodules.server.ssh { services.openssh = { enable = true; startWhenNeeded = lib.mkForce false; diff --git a/modules/nixos/server/syncthing.nix b/modules/nixos/server/syncthing.nix index ef32693..26128a2 100644 --- a/modules/nixos/server/syncthing.nix +++ b/modules/nixos/server/syncthing.nix @@ -11,8 +11,8 @@ let cfg = config.services.${serviceName}; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { users.users.${serviceUser} = { extraGroups = [ "users" ]; diff --git a/modules/nixos/server/transmission.nix b/modules/nixos/server/transmission.nix index 9c3376d..64c2199 100644 --- a/modules/nixos/server/transmission.nix +++ b/modules/nixos/server/transmission.nix @@ -20,8 +20,8 @@ let prowlarrPort = 9696; in { - options.swarselsystems.modules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} and friends on server"; - config = lib.mkIf config.swarselsystems.modules.server.${serviceName} { + options.swarselmodules.server.${serviceName} = lib.mkEnableOption "enable ${serviceName} and friends on server"; + config = lib.mkIf config.swarselmodules.server.${serviceName} { # this user/group section is probably unneeded users = { diff --git a/modules/home/common/sharedsetup.nix b/modules/shared/sharedsetup.nix similarity index 93% rename from modules/home/common/sharedsetup.nix rename to modules/shared/sharedsetup.nix index ce37e10..13c96a2 100644 --- a/modules/home/common/sharedsetup.nix +++ b/modules/shared/sharedsetup.nix @@ -1,16 +1,36 @@ -{ self, config, lib, pkgs, globals, minimal, ... }: +{ self, config, lib, pkgs, ... }: { options.swarselsystems = { + withHomeManager = lib.mkOption { + type = lib.types.bool; + default = true; + }; + isSwap = lib.mkOption { + type = lib.types.bool; + default = true; + }; + swapSize = lib.mkOption { + type = lib.types.str; + default = "8G"; + }; + rootDisk = lib.mkOption { + type = lib.types.str; + default = ""; + }; + mainUser = lib.mkOption { + type = lib.types.str; + default = "swarsel"; + }; + isCrypted = lib.mkEnableOption "uses full disk encryption"; + + isImpermanence = lib.mkEnableOption "use impermanence on this system"; + isSecureBoot = lib.mkEnableOption "use secure boot on this system"; isLaptop = lib.mkEnableOption "laptop host"; isNixos = lib.mkEnableOption "nixos host"; isPublic = lib.mkEnableOption "is a public machine (no secrets)"; isDarwin = lib.mkEnableOption "darwin host"; isLinux = lib.mkEnableOption "whether this is a linux machine"; isBtrfs = lib.mkEnableOption "use btrfs filesystem"; - mainUser = lib.mkOption { - type = lib.types.str; - default = if (!minimal) then globals.user.name else "swarsel"; - }; sopsFile = lib.mkOption { type = lib.types.str; default = "${config.swarselsystems.flakePath}/secrets/${config.node.name}/secrets.yaml"; @@ -264,6 +284,5 @@ }; }; }; - }; } diff --git a/profiles/home/chaostheatre/default.nix b/profiles/home/chaostheatre/default.nix index 37bd0c4..2288a8a 100644 --- a/profiles/home/chaostheatre/default.nix +++ b/profiles/home/chaostheatre/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; - config = lib.mkIf config.swarselsystems.profiles.chaostheatre { - swarselsystems.modules = { + options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; + config = lib.mkIf config.swarselprofiles.chaostheatre { + swarselmodules = { packages = lib.mkDefault true; ownpackages = lib.mkDefault true; general = lib.mkDefault true; diff --git a/profiles/home/darwin/default.nix b/profiles/home/darwin/default.nix deleted file mode 100644 index 29c8307..0000000 --- a/profiles/home/darwin/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ lib, config, ... }: -{ - options.swarselsystems.profiles.darwin = lib.mkEnableOption "is this a darwin host"; - config = lib.mkIf config.swarselsystems.profiles.darwin { - swarselsystems.modules = { - general = lib.mkDefault true; - }; - }; - -} diff --git a/profiles/home/framework/default.nix b/profiles/home/framework/default.nix index cbde9f0..b4c28e2 100644 --- a/profiles/home/framework/default.nix +++ b/profiles/home/framework/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.framework = lib.mkEnableOption "is this a framework brand host"; - config = lib.mkIf config.swarselsystems.profiles.framework { - swarselsystems.modules = { + options.swarselprofiles.framework = lib.mkEnableOption "is this a framework brand host"; + config = lib.mkIf config.swarselprofiles.framework { + swarselmodules = { optional = { framework = lib.mkDefault true; }; diff --git a/profiles/home/localserver/default.nix b/profiles/home/localserver/default.nix index 2a87f51..d906701 100644 --- a/profiles/home/localserver/default.nix +++ b/profiles/home/localserver/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.server.local = lib.mkEnableOption "is this a local server"; - config = lib.mkIf config.swarselsystems.profiles.server.local { - swarselsystems.modules = { + 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; diff --git a/profiles/home/minimal/default.nix b/profiles/home/minimal/default.nix index 1cca691..bea6b11 100644 --- a/profiles/home/minimal/default.nix +++ b/profiles/home/minimal/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.minimal = lib.mkEnableOption "is this a personal host"; - config = lib.mkIf config.swarselsystems.profiles.minimal { - swarselsystems.modules = { + 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; diff --git a/profiles/home/personal/default.nix b/profiles/home/personal/default.nix index 5177629..91d44aa 100644 --- a/profiles/home/personal/default.nix +++ b/profiles/home/personal/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.personal = lib.mkEnableOption "is this a personal host"; - config = lib.mkIf config.swarselsystems.profiles.personal { - swarselsystems.modules = { + options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; + config = lib.mkIf config.swarselprofiles.personal { + swarselmodules = { packages = lib.mkDefault true; ownpackages = lib.mkDefault true; general = lib.mkDefault true; diff --git a/profiles/home/reduced/default.nix b/profiles/home/reduced/default.nix index 48ca3ce..7daec76 100644 --- a/profiles/home/reduced/default.nix +++ b/profiles/home/reduced/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.reduced = lib.mkEnableOption "is this a reduced personal host"; - config = lib.mkIf config.swarselsystems.profiles.reduced { - swarselsystems.modules = { + 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; diff --git a/profiles/home/toto/default.nix b/profiles/home/toto/default.nix index a434b37..2f1473a 100644 --- a/profiles/home/toto/default.nix +++ b/profiles/home/toto/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.toto = lib.mkEnableOption "is this a toto (setup) host"; - config = lib.mkIf config.swarselsystems.profiles.toto { - swarselsystems.modules = { + options.swarselprofiles.toto = lib.mkEnableOption "is this a toto (setup) host"; + config = lib.mkIf config.swarselprofiles.toto { + swarselmodules = { general = lib.mkDefault true; sops = lib.mkDefault true; ssh = lib.mkDefault true; diff --git a/profiles/home/work/default.nix b/profiles/home/work/default.nix index 4653f87..a89b300 100644 --- a/profiles/home/work/default.nix +++ b/profiles/home/work/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.work = lib.mkEnableOption "is this a work host"; - config = lib.mkIf config.swarselsystems.profiles.work { - swarselsystems.modules = { + options.swarselprofiles.work = lib.mkEnableOption "is this a work host"; + config = lib.mkIf config.swarselprofiles.work { + swarselmodules = { optional = { work = lib.mkDefault true; }; diff --git a/profiles/nixos/amdcpu/default.nix b/profiles/nixos/amdcpu/default.nix index 7d6177b..e0576d5 100644 --- a/profiles/nixos/amdcpu/default.nix +++ b/profiles/nixos/amdcpu/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.amdcpu = lib.mkEnableOption "is this a host with amd cpu"; - config = lib.mkIf config.swarselsystems.profiles.amdcpu { - swarselsystems.modules = { + options.swarselprofiles.amdcpu = lib.mkEnableOption "is this a host with amd cpu"; + config = lib.mkIf config.swarselprofiles.amdcpu { + swarselmodules = { optional = { amdcpu = lib.mkDefault true; }; diff --git a/profiles/nixos/amdgpu/default.nix b/profiles/nixos/amdgpu/default.nix index 339451f..91810b8 100644 --- a/profiles/nixos/amdgpu/default.nix +++ b/profiles/nixos/amdgpu/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.amdgpu = lib.mkEnableOption "is this a host with amd gpu"; - config = lib.mkIf config.swarselsystems.profiles.amdgpu { - swarselsystems.modules = { + options.swarselprofiles.amdgpu = lib.mkEnableOption "is this a host with amd gpu"; + config = lib.mkIf config.swarselprofiles.amdgpu { + swarselmodules = { optional = { amdgpu = lib.mkDefault true; }; diff --git a/profiles/nixos/btrfs/default.nix b/profiles/nixos/btrfs/default.nix index ec959ed..4e09c66 100644 --- a/profiles/nixos/btrfs/default.nix +++ b/profiles/nixos/btrfs/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.btrfs = lib.mkEnableOption "is this a host using btrfs"; - config = lib.mkIf config.swarselsystems.profiles.btrfs { - swarselsystems.modules = { + options.swarselprofiles.btrfs = lib.mkEnableOption "is this a host using btrfs"; + config = lib.mkIf config.swarselprofiles.btrfs { + swarselmodules = { optional = { btrfs = lib.mkDefault true; }; diff --git a/profiles/nixos/chaostheatre/default.nix b/profiles/nixos/chaostheatre/default.nix index 4c677eb..cedf6d9 100644 --- a/profiles/nixos/chaostheatre/default.nix +++ b/profiles/nixos/chaostheatre/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; - config = lib.mkIf config.swarselsystems.profiles.chaostheatre { - swarselsystems.modules = { + options.swarselprofiles.chaostheatre = lib.mkEnableOption "is this a chaostheatre host"; + config = lib.mkIf config.swarselprofiles.chaostheatre { + swarselmodules = { packages = lib.mkDefault true; general = lib.mkDefault true; home-manager = lib.mkDefault true; diff --git a/profiles/nixos/framework/default.nix b/profiles/nixos/framework/default.nix index cbde9f0..b4c28e2 100644 --- a/profiles/nixos/framework/default.nix +++ b/profiles/nixos/framework/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.framework = lib.mkEnableOption "is this a framework brand host"; - config = lib.mkIf config.swarselsystems.profiles.framework { - swarselsystems.modules = { + options.swarselprofiles.framework = lib.mkEnableOption "is this a framework brand host"; + config = lib.mkIf config.swarselprofiles.framework { + swarselmodules = { optional = { framework = lib.mkDefault true; }; diff --git a/profiles/nixos/hibernation/default.nix b/profiles/nixos/hibernation/default.nix index 6105cae..b529ff1 100644 --- a/profiles/nixos/hibernation/default.nix +++ b/profiles/nixos/hibernation/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.hibernation = lib.mkEnableOption "is this a host using hibernation"; - config = lib.mkIf config.swarselsystems.profiles.hibernation { - swarselsystems.modules = { + options.swarselprofiles.hibernation = lib.mkEnableOption "is this a host using hibernation"; + config = lib.mkIf config.swarselprofiles.hibernation { + swarselmodules = { optional = { hibernation = lib.mkDefault true; }; diff --git a/profiles/nixos/localserver/default.nix b/profiles/nixos/localserver/default.nix index 6cb9a55..e3577e5 100644 --- a/profiles/nixos/localserver/default.nix +++ b/profiles/nixos/localserver/default.nix @@ -1,47 +1,45 @@ { lib, config, ... }: { - options.swarselsystems.profiles.server.local = lib.mkEnableOption "is this a local server"; - config = lib.mkIf config.swarselsystems.profiles.server.local { - swarselsystems = { - modules = { + options.swarselprofiles.server.local = lib.mkEnableOption "is this a local server"; + config = lib.mkIf config.swarselprofiles.server.local { + 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; + sops = lib.mkDefault true; + server = { 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; - sops = lib.mkDefault true; - server = { - general = lib.mkDefault true; - packages = lib.mkDefault true; - nfs = lib.mkDefault true; - nginx = lib.mkDefault true; - ssh = 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; - }; + packages = lib.mkDefault true; + nfs = lib.mkDefault true; + nginx = lib.mkDefault true; + ssh = 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; }; }; }; diff --git a/profiles/nixos/minimal/default.nix b/profiles/nixos/minimal/default.nix index 9b948fa..d7afc1e 100644 --- a/profiles/nixos/minimal/default.nix +++ b/profiles/nixos/minimal/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.minimal = lib.mkEnableOption "declare this a minimal host"; - config = lib.mkIf config.swarselsystems.profiles.minimal { - swarselsystems.modules = { + 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; diff --git a/profiles/nixos/moonside/default.nix b/profiles/nixos/moonside/default.nix index d1403c0..34674fd 100644 --- a/profiles/nixos/moonside/default.nix +++ b/profiles/nixos/moonside/default.nix @@ -1,27 +1,25 @@ { lib, config, ... }: { - options.swarselsystems.profiles.server.moonside = lib.mkEnableOption "is this a moonside server"; - config = lib.mkIf config.swarselsystems.profiles.server.moonside { - swarselsystems = { - modules = { + 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; + server = { 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; - 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; - }; + 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; }; }; }; diff --git a/profiles/nixos/personal/default.nix b/profiles/nixos/personal/default.nix index d1c806c..f29e106 100644 --- a/profiles/nixos/personal/default.nix +++ b/profiles/nixos/personal/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.personal = lib.mkEnableOption "is this a personal host"; - config = lib.mkIf config.swarselsystems.profiles.personal { - swarselsystems.modules = { + options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; + config = lib.mkIf config.swarselprofiles.personal { + swarselmodules = { packages = lib.mkDefault true; pii = lib.mkDefault true; general = lib.mkDefault true; diff --git a/profiles/nixos/reduced/default.nix b/profiles/nixos/reduced/default.nix index 3993fac..7c0f529 100644 --- a/profiles/nixos/reduced/default.nix +++ b/profiles/nixos/reduced/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.reduced = lib.mkEnableOption "is this a reduced personal host"; - config = lib.mkIf config.swarselsystems.profiles.reduced { - swarselsystems.modules = { + 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; diff --git a/profiles/nixos/syncserver/default.nix b/profiles/nixos/syncserver/default.nix index a784c87..7c28a4b 100644 --- a/profiles/nixos/syncserver/default.nix +++ b/profiles/nixos/syncserver/default.nix @@ -1,25 +1,23 @@ { lib, config, ... }: { - options.swarselsystems.profiles.server.syncserver = lib.mkEnableOption "is this a oci syncserver server"; - config = lib.mkIf config.swarselsystems.profiles.server.syncserver { - swarselsystems = { - modules = { + 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; + server = { 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; - 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; - }; + packages = lib.mkDefault true; + nginx = lib.mkDefault true; + ssh = lib.mkDefault true; + forgejo = lib.mkDefault false; + ankisync = lib.mkDefault false; }; }; }; diff --git a/profiles/nixos/toto/default.nix b/profiles/nixos/toto/default.nix index 3647d2e..17532b0 100644 --- a/profiles/nixos/toto/default.nix +++ b/profiles/nixos/toto/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.toto = lib.mkEnableOption "is this a toto (setup) host"; - config = lib.mkIf config.swarselsystems.profiles.toto { - swarselsystems.modules = { + 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; diff --git a/profiles/nixos/work/default.nix b/profiles/nixos/work/default.nix index dca896e..0894635 100644 --- a/profiles/nixos/work/default.nix +++ b/profiles/nixos/work/default.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { - options.swarselsystems.profiles.work = lib.mkEnableOption "is this a work host"; - config = lib.mkIf config.swarselsystems.profiles.work { - swarselsystems.modules = { + options.swarselprofiles.work = lib.mkEnableOption "is this a work host"; + config = lib.mkIf config.swarselprofiles.work { + swarselmodules = { optional = { work = lib.mkDefault true; };