diff options
Diffstat (limited to 'nixos/modules/tasks')
-rw-r--r-- | nixos/modules/tasks/kbd.nix | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/nixos/modules/tasks/kbd.nix b/nixos/modules/tasks/kbd.nix index 4aa4c7d22ac2..3975dd5b0ffd 100644 --- a/nixos/modules/tasks/kbd.nix +++ b/nixos/modules/tasks/kbd.nix @@ -98,12 +98,22 @@ in '') config.i18n.consoleColors} ''; + /* XXX: systemd-vconsole-setup needs a "main" terminal. By default + * /dev/tty0 is used which wouldn't work when the service is restarted + * from X11. We set this to /dev/tty1; not ideal because it may also be + * owned by X11 or something else. + * + * See #22470. + */ systemd.services."systemd-vconsole-setup" = { wantedBy = [ "sysinit.target" ]; before = [ "display-manager.service" ]; after = [ "systemd-udev-settle.service" ]; restartTriggers = [ vconsoleConf kbdEnv ]; - restartIfChanged = false; # fails when tty is inactive + serviceConfig.ExecStart = [ + "" + "${pkgs.systemd}/lib/systemd/systemd-vconsole-setup /dev/tty1" + ]; }; } |