seatd and libseat

seat management

seatd and libseat is a minimal seat management daemon, and a universal seat management library, respectively.

Supports Linux and FreeBSD, and depends only on libc if logind support is disabled.


libseat provides a simple API for seat management to be used by user shells. It provides rootless seat management through (e)logind and seatd, and rooted standalone seat management through an embedded seatd instance.

All backends are transparent to the user shell, support runtime selection and auto-detection, and can be compile-time enabled/disabled.


seatd is a daemon for providing rootless seat management in a multi-seat, multi-session environment.

It's what logind could have been if focus was portability, modularity, minimalism and maintainability.

How to get seatd and libseaet


Refer to the seatd(1) manpage as well as the libseat header file for more information.


What is seat management?

A service that mediates access to shared devices (inputs, graphics) in a rootless manner.

Why is it called a "seat"?

The "seat" refers to the literal seat of the user, around which the user input/output devices are located.

What is "multi-session" and "multi-seat"?

Multi-session refers to the ability to switch between sessions on a seat. Multi-seat refers to the ability of having multiple seats on a machine with each their own isolated sessions.


© 2020, Kenny Levinsen