diff --git a/modules/installer/iso.nix b/modules/installer/iso.nix index eeee5f8..28c1518 100644 --- a/modules/installer/iso.nix +++ b/modules/installer/iso.nix @@ -16,6 +16,13 @@ isoImage.volumeID = "ROUTER_INSTALL"; isoImage.squashfsCompression = "zstd -Xcompression-level 6"; + # Installing on a laptop must survive closing its lid. + services.logind.settings.Login = { + HandleLidSwitch = "ignore"; + HandleLidSwitchExternalPower = "ignore"; + HandleLidSwitchDocked = "ignore"; + }; + services.openssh = { enable = true; settings.PermitRootLogin = "prohibit-password"; diff --git a/modules/router/default.nix b/modules/router/default.nix index 96e2037..4073bc3 100644 --- a/modules/router/default.nix +++ b/modules/router/default.nix @@ -9,5 +9,6 @@ ./dhcp.nix ./dns.nix ./rollback.nix + ./power.nix ]; } diff --git a/modules/router/power.nix b/modules/router/power.nix new file mode 100644 index 0000000..79048ca --- /dev/null +++ b/modules/router/power.nix @@ -0,0 +1,12 @@ +# A router keeps routing with the lid shut: laptops make fine routers, but +# logind suspends them on lid close by default. +{ config, lib, ... }: +{ + config = lib.mkIf config.router.enable { + services.logind.settings.Login = { + HandleLidSwitch = "ignore"; + HandleLidSwitchExternalPower = "ignore"; + HandleLidSwitchDocked = "ignore"; + }; + }; +}