greetd: terminal flicker issue

greetd/src/server.rs on line 27 calls


However TerminalMode::Terminal constructed with hardcoded switch: true or switch: false.

When greetd is started with agreety for multiple terminals, each greetd results in calling term.vt_setactivate which causes:

  • flickering from terminal to terminal
  • active terminal remains the last one greetd process is started for, then user should select Ctrl+Alt+f1 if first terminal is needed for login

I would suggest to add switch option in ConfigTerminal, and pass it to TerminalMode::Terminal, so that primary terminal could be configured to call term.vt_setactivate and others not.

Assigned to
2 years ago
2 years ago
No labels applied.

~muradm 2 years ago

Another (also arguably better) way could be delaying greetd worker until designated terminal is active.

Probably in greetd/src/server.rs right after:

    let term_mode = get_tty(&config)?;

it could be possible to wait for term_mode.vt to become active before proceeding using any of:

  • ioctl: VT_WAITACTIVE
  • inotify: /sys/devices/virtual/tty/tty0/active
  • or similar

Then if user never switches to specific tty, greetd won't start worker and greeter for it.

Register here or Log in to comment, or comment via email.