From 0c81594a29d99d9ee9c9c88c680340d56823cfb2 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Thu, 16 Feb 2017 16:46:30 +0300 Subject: [PATCH] kbd service: use /dev/tty1 for systemd-vconsole-setup Fixes #22470 --- nixos/modules/tasks/kbd.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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" + ]; }; }