Commit graph

15 commits

Author SHA1 Message Date
illiliti
4ad48cb305 Initial netbsd support 2022-03-16 21:39:46 +01:00
Kenny Levinsen
e2baadc230 clang-format: Fix alignment 2021-09-21 12:48:24 +02:00
Kenny Levinsen
e4c28227ec Normalize log texts a bit 2021-03-02 00:27:38 +01:00
Kenny Levinsen
0d5f48f433 terminal: Improve logging 2020-11-23 17:56:55 +01:00
Kenny Levinsen
be45c480ec terminal: Ack both release and acquire
Linux only requires acking release and ignores ack of acquire, but
FreeBSD is more stringent and will patiently wait for both to be acked.

Implement proper acking for both events.
2020-09-22 01:14:24 +02:00
Kenny Levinsen
521d95349f terminal: Fix VT numbering on FreeBSD
FreeBSD adds one to the VT number returned by the GET_ACTIVE ioctl, so
to match things up, the wrapper here subtracted by one. This lead to
ttyv0 being named VT 0. This had the side-effect of VT numbering not
matching expectations, and switching not behaving as intended.

Align numbers with expectations, and move the required subtraction to
terminal_open, so that VT 1 matches ttyv0.
2020-09-22 01:14:24 +02:00
Kenny Levinsen
27c1914625 terminal: Explain FreeBSD current_vt behavior 2020-08-28 17:46:13 +02:00
Kenny Levinsen
dbdce8a54b terminal: Construct TTY paths correctly on FreeBSD
FreeBSD TTY paths are contructed in the kernel using the %r formatter,
which in this case ends up being a base 32 encoding.

The base 32 implementation is taken more or less directly from wlroots
commit fc6c0ca12e94.
2020-08-28 17:46:13 +02:00
Kenny Levinsen
60a8e809b2 terminal: FreeBSD VT num is 1 higher than tty num
This was causing all VT and TTY changes to be applied to the wrong TTY.
2020-08-28 02:54:14 +02:00
Kenny Levinsen
8e0b58f90d terminal: Set K_RAW and term raw mode on FreeBSD
Taken from X11, weston and consolekit2 ports for FreeBSD.

Setting just K_CODE as done before makes input seemingly have no ill
effects, but it is still buffered and possibly send to the terminal
after application exit if stdin is never drained. Setting raw mode
appears to be needed to solve that issue.

A K_OFF-like VT keyboard setting like Linux has would seem more
appropriate, but that is not currently available to us on FreeBSD.
2020-08-28 02:54:14 +02:00
Kenny Levinsen
b751481e5c seat: Open/close tty on activation/deactivation
The VT and KD ioctl's are picky about the tty fd used. In order to
satisfy these, and to improve state cleanup, we now only and store the
current tty when opening a client, and use this fd to perform teardown
later. The presence of the fd is also used to signal that teardown is
needed.
2020-08-02 21:46:10 +02:00
Kenny Levinsen
b731b18e0a terminal: Correctly set K_ON on keyboard enable 2020-08-02 17:47:34 +02:00
Kenny Levinsen
2f54beb5fe client: Implement get_peer for FreeBSD 2020-08-01 16:53:44 +02:00
Kenny Levinsen
c5c036531c terminal: FreeBSD VT and KD handling 2020-08-01 16:53:44 +02:00
Kenny Levinsen
61716a2c77 Initial implementation of seatd and libseat 2020-07-31 00:22:18 +02:00