Hi,
I wondered if it’s possible to get plymouth to keep showing while getty does autologin.
Currently, it goes grub → plymouth animation → quick blank screen → frozen plymouth → getty autologin. Then my fish init starts sway.
I’d like if I could keep plymouth going a little longer so I don’t see the tty prompt at all, and just go grub → plymouth (preferably doesn’t freeze but I’m not picky) → sway.
I tried setting plymouth-quit.service
(or -quit-wait
, I don’t remember which) and getty@tty1.service
as oneshot
, then having after = "getty@tty1.service"
in the plymouth serviceConfig
, which kept plymouth going for longer – in fact, too long: getty doesn’t quit when it’s done the login so plymouth showed forever.
Relevant config
{ config, lib, pkgs, home-manager, ... }:
{
boot = {
plymouth = {
enable = true;
theme = "bgrt";
font = "${pkgs.inter}/share/fonts/truetype/InterVariable.ttf";
};
consoleLogLevel = 0;
initrd.verbose = false;
kernelParams = ["splash" "quiet" "plymouth.use-simpledrm" "console=tty1" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3" "boot.shell_on_fail" "systemd.show_status=0"];
loader = {
timeout = 0;
grub = {
splashImage = null;
timeoutStyle = "hidden";
enable = true;
efiSupport = true;
device = "nodev";
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
};
initrd.systemd.enable = true;
};
...
home-manager.users.ccc = {
home.file = {
".config/fish/conf.d/sway.fish".text = ''
set TTY1 (tty)
[ "$TTY1" = "/dev/tty1" ] && exec sway
'';
};
...
systemd = {
services = {
"getty@tty1" = {
overrideStrategy = "asDropin";
serviceConfig = {
ExecStart = ["" "@${pkgs.util-linux}/sbin/agetty agetty --nonewline --skip-login --login-program ${config.services.getty.loginProgram} --autologin ccc --noclear %I $TERM"];
};
};
plymouth-quit-wait = {
overrideStrategy = "asDropin";
serviceConfig.after = ["default.target"];
};
};
};
If possible I’d also looove plymouth to show on shutdown too. Currently it shows the classic scrolling log messages.
Many thanks in advance!