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:

JenisFungsiCara Aktifkan
System busKomunikasi antar proses sistemAktifkan layanan dbus
Session busKomunikasi spesifik per sesi penggunaJalankan 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, seatd hanya 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

ToolFungsi UtamaCocok untuk
elogindSesi, daya, XDG_RUNTIME_DIRDE lengkap, Wayland, rootless Xorg
turnstileSesi, per-user servicesAlternatif elogind, bisa dikombinasikan
seatdManajemen seat sajawlroots compositor (Sway, Hyprland)

@T4n-Labs · @Gh0sT4n