{ lib, pkgs, config, ... }: let inherit (lib) mkIf mkDefault; inherit (lib.my) mkBoolOpt' mkDefault'; cfg = config.my.server; uname = if config.my.user.enable then config.my.user.config.name else "root"; in { options.my.server.enable = mkBoolOpt' false "Whether to enable common configuration for servers."; config = mkIf cfg.enable { services = { getty.autologinUser = mkDefault uname; kmscon.autologinUser = mkDefault uname; resolved.llmnr = mkDefault "false"; }; systemd = { timers = { fstrim = mkIf config.services.fstrim.enable { timerConfig = { # Upstream unit has these at crazy high values that probably # make sense on desktops / laptops AccuracySec = "1min"; RandomizedDelaySec = "5min"; }; }; }; }; my = { gui.enable = false; user.homeConfig = { my.gui.enable = false; }; }; documentation.nixos.enable = mkDefault' false; environment.systemPackages = with pkgs; [ tcpdump ]; }; meta.buildDocsInSandbox = false; }