Manajemen Sesi dan Seat
Manajemen sesi tidak wajib untuk semua setup, namun berguna untuk:
- Membuat direktori runtime sementara secara aman.
- Memberikan akses ke perangkat hardware.
- Mendukung multi-seat.
- Mengontrol shutdown sistem.
D-Bus
D-Bus adalah mekanisme IPC (inter-process communication) yang digunakan oleh perangkat lunak di Linux. D-Bus menyediakan dua jenis bus:
| Jenis | Fungsi | Cara Aktifkan |
|---|---|---|
| System bus | Komunikasi antar proses sistem | Aktifkan layanan dbus |
| Session bus | Komunikasi spesifik per sesi pengguna | Jalankan program dengan dbus-run-session |
Mengaktifkan System Bus
ln -s /etc/sv/dbus /var/service/
Mungkin perlu reboot agar berfungsi dengan benar.
Session Bus
Desktop environment yang diluncurkan melalui display manager biasanya sudah menginisiasi session bus sendiri. Untuk memeriksanya:
echo $DBUS_SESSION_BUS_ADDRESS
Jika variabel ini terdefinisi, session bus sudah aktif.
Ekspor Variabel Display ke D-Bus
Saat menggunakan session bus, mungkin perlu mengekspor variabel display:
# Untuk X / XWayland
dbus-update-activation-environment DISPLAY
# Untuk Wayland
dbus-update-activation-environment WAYLAND_DISPLAY
elogind
elogind mengelola login pengguna dan daya sistem — versi standalone dari systemd-logind. Berguna untuk:
- Sebagian besar desktop environment dan Wayland compositor.
- Xorg tanpa root (rootless Xorg).
Baca bagian Manajemen Daya sebelum menginstal elogind, terutama soal konflik dengan
acpid.
Instalasi
sudo xbps-install -S elogind
Pastikan system D-Bus sudah aktif, lalu login ulang.
Jika mengalami masalah, aktifkan layanan elogind secara eksplisit (menunggu aktivasi D-Bus dapat menyebabkan error):
ln -s /etc/sv/elogind /var/service/
turnstile
turnstile adalah session manager alternatif yang bisa digunakan dengan atau tanpa elogind.
Dengan elogind
Nonaktifkan manajemen XDG_RUNTIME_DIR di /etc/turnstile/turnstiled.conf:
manage_rundir=no
elogind dan turnstile saat ini bisa berjalan berdampingan, namun hal ini bisa berubah di versi mendatang.
Tanpa elogind
Pertimbangkan untuk menginstal dan mengaktifkan:
seatd— untuk manajemen seat.acpid— untuk manajemen daya.
Mengaktifkan turnstile
ln -s /etc/sv/turnstiled /var/service/
Lalu login ulang.
turnstile juga dapat mengelola per-user services termasuk menjalankan session bus D-Bus, sehingga tidak perlu lagi membungkus sesi grafis dengan
dbus-run-session.
seatd
seatd adalah daemon manajemen seat yang minimal — alternatif ringan dari elogind, terutama untuk wlroots compositor (Sway, Hyprland, dll.).
sudo xbps-install -S seatd
ln -s /etc/sv/seatd /var/service/
Untuk mengizinkan user non-root mengakses sesi seatd:
sudo usermod -aG _seatd <nama_user>
Berbeda dengan elogind,
seatdhanya menangani manajemen seat — tidak lebih.
XDG_RUNTIME_DIR
XDG_RUNTIME_DIR adalah variabel environment yang menentukan direktori runtime milik pengguna sesuai spesifikasi XDG Base Directory.
Otomatis
Instal elogind atau turnstile — keduanya akan mengatur XDG_RUNTIME_DIR secara otomatis.
Manual
Buat direktori dan set permission yang tepat:
mkdir -p /run/user/$(id -u)
chmod 700 /run/user/$(id -u)
Ekspor variabel di profil shell (~/.bashrc atau ~/.zshrc):
export XDG_RUNTIME_DIR=/run/user/$(id -u)
Ringkasan Pilihan
| Tool | Fungsi Utama | Cocok untuk |
|---|---|---|
elogind | Sesi, daya, XDG_RUNTIME_DIR | DE lengkap, Wayland, rootless Xorg |
turnstile | Sesi, per-user services | Alternatif elogind, bisa dikombinasikan |
seatd | Manajemen seat saja | wlroots compositor (Sway, Hyprland) |