diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-01-05 16:44:43 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-01-08 13:55:25 +0000 |
commit | 8694e7de2593139ea46c3e6d1431d6803a2d5a8a (patch) | |
tree | cf381722b63ab2ed9b9aa9bc89905f6cdf3de7e4 /nixos/modules/services/ttys | |
parent | 306fe1c436fc5c80218150e77c63a891e158fb9a (diff) | |
download | nixlib-8694e7de2593139ea46c3e6d1431d6803a2d5a8a.tar nixlib-8694e7de2593139ea46c3e6d1431d6803a2d5a8a.tar.gz nixlib-8694e7de2593139ea46c3e6d1431d6803a2d5a8a.tar.bz2 nixlib-8694e7de2593139ea46c3e6d1431d6803a2d5a8a.tar.lz nixlib-8694e7de2593139ea46c3e6d1431d6803a2d5a8a.tar.xz nixlib-8694e7de2593139ea46c3e6d1431d6803a2d5a8a.tar.zst nixlib-8694e7de2593139ea46c3e6d1431d6803a2d5a8a.zip |
nixos/getty: add services.getty.loginOptions
This corresponds to agetty's --login-options argument. With this change, I can set services.getty.autologinUser = "qyliss"; services.getty.loginOptions = "-- \\u"; and have my username prefilled, but with my password still required (unlike the normal autologinUser behaviour).
Diffstat (limited to 'nixos/modules/services/ttys')
-rw-r--r-- | nixos/modules/services/ttys/getty.nix | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/nixos/modules/services/ttys/getty.nix b/nixos/modules/services/ttys/getty.nix index 68ab81837772..ecfabef5fb13 100644 --- a/nixos/modules/services/ttys/getty.nix +++ b/nixos/modules/services/ttys/getty.nix @@ -3,9 +3,19 @@ with lib; let + cfg = config.services.getty; + + loginArgs = [ + "--login-program" "${pkgs.shadow}/bin/login" + ] ++ optionals (cfg.autologinUser != null) [ + "--autologin" cfg.autologinUser + ] ++ optionals (cfg.loginOptions != null) [ + "--login-options" cfg.loginOptions + ]; - autologinArg = optionalString (config.services.getty.autologinUser != null) "--autologin ${config.services.getty.autologinUser}"; - gettyCmd = extraArgs: "@${pkgs.util-linux}/sbin/agetty agetty --login-program ${pkgs.shadow}/bin/login ${autologinArg} ${extraArgs}"; + gettyCmd = extraArgs: + "@${pkgs.util-linux}/sbin/agetty agetty ${escapeShellArgs loginArgs} " + + extraArgs; in @@ -30,6 +40,23 @@ in ''; }; + loginOptions = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + Template for arguments to be passed to + <citerefentry><refentrytitle>login</refentrytitle> + <manvolnum>1</manvolnum></citerefentry>. + + See <citerefentry><refentrytitle>agetty</refentrytitle> + <manvolnum>1</manvolnum></citerefentry> for details, + including security considerations. If unspecified, agetty + will not be invoked with a <option>--login-options</option> + option. + ''; + example = "-h darkstar -- \u"; + }; + greetingLine = mkOption { type = types.str; description = '' |