buffyboard: track virtual terminals with /sys/class/tty/tty0/active

This commit is contained in:
Vladimir Stoiakin 2025-07-03 14:19:10 +00:00 committed by Johannes Marbach
parent d0ec4777cc
commit c4b3729047
12 changed files with 283 additions and 335 deletions

View file

@ -52,6 +52,15 @@ result.
*-V, --version*
Print the unl0kr version and exit.
# NOTES
Some terminal commands, like _clear_ or _setfont_, can erase the keyboard or brake the layout of the terminal. In this case you should send a signal to Buffyboard or switch to another terminal to update the screen:
```
setfont solar24x32;/usr/bin/kill -s SIGUSR1 buffyboard
setfont solar24x32;chvt $((`fgconsole`+1));chvt $((`fgconsole`-1))
```
# EXAMPLES
*Execute Buffyboard using the default config*

View file

@ -45,6 +45,17 @@ for and, if found, merged in the following order:
after every draw operation. This has a negative performance impact.
Default: false.
*ignore_unused_terminals* = <true|false>
If true, buffyboard won't automatically update the layout of a new terminal and
draw the keyboard, if the terminal is not opened by any process. In this case
SIGUSR1 should be sent to buffyboard to update the layout. This quirk was introduced to resolve a race between buffyboard and systemd-logind according to the following scenario:
- A user switches to a new virtual terminal
- Buffyboard opens the terminal and changes the number of rows
- systemd-logind sees that the terminal is opened by some other process and don't start getty@.service
The race is resolved by enabling this option and installing a drop-in file
for getty@.service that sends SIGUSR1 to buffyboard. Default: true.
# SEE ALSO
*buffyboard*(1)