🤠 Async seat managment made easy https://docs.rs/saddle
Find a file
2025-10-16 22:45:36 +02:00
examples Rename complex example to switcher 2025-02-28 21:43:23 +01:00
src Fix precise capturing on active_stream 2025-10-16 22:45:36 +02:00
.gitignore Scaffold project 2024-07-14 20:34:02 +02:00
Cargo.lock Bump version 2025-09-15 07:15:55 +02:00
Cargo.toml Bump version 2025-09-15 07:15:55 +02:00
LICENSE Scaffold project 2024-07-14 20:34:02 +02:00
README.md Rename complex example to switcher 2025-02-28 21:43:23 +01:00

Saddle

Saddle is an asynchronous Rust library designed to simplify the management of user seats in a Linux environment. It provides a Rust-native, future-based API for obtaining and releasing user sessions, opening and closing devices securely, and monitoring session state changes.

Features

  • Async-first API: Built with Tokio and designed for asynchronous applications
  • Session Management: Obtain, release, and monitor user sessions
  • Device Access: Open and close devices securely without requiring root privileges
  • VT Switching: Support for switching between virtual terminals
  • Event Streams: Monitor session state changes with async streams

Supported Backends

Currently, Saddle uses the freedesktop login1 interface as its backend, which is compatible with both systemd-logind and elogind systems.

Future releases will include support for seatd IPC interface.

Examples

For a comprehensive example demonstrating how to use Saddle with libinput for handling input devices and implementing VT switching, see the VT switcher example.

License

This project is licensed under the Apache-2.0 License. For more information, please see the LICENSE file.