···11+{ config, lib, ... }: let
22+ cfg = config.cyclamen.system.minimal-size;
33+in {
44+ options.cyclamen.system.minimal-size = {
55+ enable = lib.mkEnableOption ''
66+ tweaks to the baseline settings of nixos that reduce the size of the system closure.
77+ This removes a bunch of stuff that most don't need but some might.
88+ '' // { default = true; };
99+ };
1010+1111+ config = lib.mkIf cfg.enable {
1212+ # the default package set is frankly useless. it includes only perl, rsync and strace.
1313+ # id rather declare these manually if i want them
1414+ environment.defaultPackages = lib.mkForce [ ];
1515+1616+ # services/misc/graphical-desktop.nix sets this to true when graphical desktops are enabled.
1717+ # i dont want speech synthesis by default so no thank you
1818+ services.speechd.enable = false;
1919+ # similarly services/desktop-managers/plasma6.nix enables orca when plasma is enabled.
2020+ # that depends on speechd and so it sets it to true. i also dont want orca by default
2121+ services.orca.enable = false;
2222+ };
2323+}