SLiM, Display Manager yang Sudah Lama Ditinggalkan

Ditulis: 2019/02/28 Diperbaharui: 2019/03/19
Arch Linux Tips Ulasan

بسم الله الرحمن الرحيم

Prakata

Mungkin sebagian dari teman-teman ada yang sudah pernah mencicipi distribusi sistem operasi GNU/Linux yang menggunakan SLiM display manager.

gambar_1

Gambar 1 - SLiM display manager dengan default theme

Dari informasi yang saya baca pada halaman Arch Wiki/SLiM. Proyek ini sudah ditinggalkan. Rilis paling akhir pada tahun 2013. Website dari proyek inipun sudah tidak ada lagi.

Pada halaman Arch Wiki tersebut juga kita disarankan untuk mempertimbangkan menggunakan Display Manager yang lain. Karena SLiM tidak secara penuh support dengan systemd, termasuk logind sessions.

Mengapa Tertarik dengan SLiM?

Sebenarnya sudah lama mencari-cari pengganti dari LightDM display manager. Saya merasa kurang fleksibel dalam mengkostumisasi sesuai preferensi sendiri. Belum lagi transisi antara verbose mode dari journalctl ke tampilan LightDM tidak begitu smooth.

Sampai beberapa waktu lalu, menemukan halaman pada Slant.co yang membahas What is the best Linux Display Manager?.

gambar_2

Saya agak heran, karena bukan LightDM yang menduduki peringkat no. 1 saat ini (2019/02/28), melainkan SLiM dengan perolehan point sebanyak 92, disusul LightDM sebesar 84.

Dengan selisih yang tidak terlampau jauh, tidak menutup kemungkinan LightDM akan segera menyusul ke peringkat pertama.

Namun, saya tetap ingin mencoba SLiM. Karena rasa penasaran saya atas apa yang membuat SLiM masih menduduki peringkat pertama, padahal telah 5 tahun ditinggalkan.

Kelebihan dan Kekurangan SLiM

gambar_8

Sumber: Slant.co - SLiM Pros and Cons

Pengecekan Paket

Karena paket SLiM display manager ini termasuk paket yang sudah tidak lagi dimaintain oleh upstream developer, tentunya akan sangat penting untuk mengetahui apakah paket yang akan kita gunakan memiliki bug reports, security reposts, dll.

Pada distribusi Arch Linux, untuk menelusuri sebuah paket sangatlah mudah. Kita hanya perlu mengunjungi archlinux.org/packages. Kemudian, mencari paket bernama slim.

Beberapa hal yang saya perhatikan adalah:

  1. Last Updated
  2. View Changes
  3. Bug Reports

Berikut ini tampilan dari ketiga hal di atas.

gambar_3

Gambar 3 - last Updated

gambar_4

Gambar 4 - View Changes

gambar_5

Gambar 5 - Bug Reports

Nah, dengan begini, kita dapat memantau, apakah paket SLiM ini tidak lagi dimaintain di Arch Linux atau memiliki bug.

Kita juga dapat sekalian mengecek apakah paket slim ini memiliki security issue atau tidak, pada halaman security.archlinux.org.

Untuk teman-teman yang menggunakan distribusi selain Arch atau turunan Arch, silahkan menyesuaikan saja yaa.

Instalasi

[ ! ] Perhatian

Saya tidak merekomendasikan untuk menggunakan SLiM Display Manager.

Apabila terjadi sesuatu yang merugikan teman-teman di kemudian hari, bukan merupakan tanggung jawab saya sebagai penulis.

Tanggung jawab sepenuhnya ada di tangan teman-teman.

Kalau setuju, yuk kita kemon!

Untuk distribusi Arch Linux, sangat saya sarankan memasang paket SLiM menggunakan package manager, dikarenakan alasan di atas. Agar paket yang kita gunakan, adalah paket yang sudah jelas ter-maintained dengan baik.

$ sudo pacman -S slim

Untuk distribusi yang lain, silahkan menyesuaikan.

Konfigurasi

Jalankan Service SLiM

Setelah memasang paket SLiM, kita perlu menjalankan slim.service.

Dikarenakan kita harus memilih salah satu Display Manager yang digunakan, karena sebelumnya saya menggunakan LightDM Display Manager, saya akan men-disable service dari LightDM terlebih dahulu.

$ sudo systemctl disable lightdm.service

Selanjutnya, baru meng-enable-kan service dari SLiM.

$ sudo systemctl enable slim.service

Sessions

SLiM dapat secara otomatis mendeteksi daftar sessions yang terdapat pada direktori /usr/share/xsessions/.

Contohnya seperti milik saya. Saya memiliki 3 sessions.

  1. i3
  2. dwm
  3. qtile
/usr/share/xsessions/
.
├── dwm.desktop
├── i3.desktop
└── qtile.desktop

Sejak versi 1.3.6-2, SLiM sudah menyediakan fitur ini.

Untuk konfigurasi “pemilihan session”, saya akan menuliskan dua cara.

  1. Dapat memilih session pada saat login
  2. Tidak dapat memilih session pada saat login

Kedua cara di atas, pada dasarnya, kita akan berurusan dengan 2 file.

  1. /etc/slim.conf
  2. ~/.xinitrc

Saya mulai dari cara pertama.

Menampilkan Pilihan Session pada saat Login

Edit file /etc/slim.conf dengan text editor favorit kalian.

$ sudo vim /etc/slim.conf
...
...

# Set directory that contains the xsessions.
# slim reads xsesion from this directory, and be able to select.
sessiondir            /usr/share/xsessions/

...
...

Perhatikan baris yang saya marking, pastikan sudah enable (tidak ada tanda # dibagian paling depan).

Bagian inilah yang akan mengaktifkan pilihan session pada saat login.

gambar_6

Kita dapat memilih session dengan menekan tombol F1.

Tidak Dapat Memilih Session pada saat Login

Untuk Cara kedua ini, dapat pula kita sebut sebagai automatic session, karena kita tidak memilih session sendiri dengan menekan tombol F1 seperti di atas. Melainkan, kita sudah terlebih dahulu mendefinisikan default session yang akan kita pergunakan.

Edit file /etc/slim.conf dengan text editor favorit teman-teman.

$ sudo vim /etc/slim.conf
...
...

# Set directory that contains the xsessions.
# slim reads xsesion from this directory, and be able to select.
#sessiondir            /usr/share/xsessions/

...
...

Perhatikan! bagian yang saya marking. Tambahkan tanda pagar #, untuk mendisable konfigurasi pada baris ini.

Selanjutnya, definisikan default session yang akan kita pergunakan.

Edit file ~/.xinitrc dengan text editor favorit kalian.

$ vim ~/.xinitrc

Ada dua cara yang saya tawarkan.

Cara Sederhana

...
...
exec i3
#exec dwm
#exec qtile
...
...

Karena saya menggunakan i3wm sebagai default session saya, maka saya meng-enable-kan dengan menghapus tanda pagar #, seperti contoh di atas.

Cara Keren

...
...

# Untuk SLiM Session
DEFAULTSESSION=i3
case "$1" in
    i3) exec i3 ;;
    sway) exec sway ;;
    dwm) exec dwm ;;
    qtile) exec qtile ;;
    bspwm) exec bspwm ;;
    *) exec $DEFAULTSESSION ;;
esac

...
...

Untuk mengganti default session yang ingin digunakan, ubah nilai dari variabel DEFAULTSESSION=.

gambar_7

System Sessions

SLiM juga dapat mengakses system sessions seperti: reboot, shutdown, suspend, exit dan console.

System Sessions
Username
Password
REBOOT reboot <root_password>
SHUTDOWN halt <root_password>
SUSPEND suspend <root_password>
EXIT exit <root_password>
CONSOLE consle <root_password>

Untuk mengaktifkan dan menonaktifkan fitur ini, teman-teman dapat melihat pada file /etc/slim.conf.


# Commands for halt, login, etc.
halt_cmd            /sbin/shutdown -h now
reboot_cmd          /sbin/shutdown -r now
console_cmd         /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
#suspend_cmd        /usr/sbin/suspend

suspend, secara default dalam keadaan tidak aktif.

Instalasi Themes

Instalasi themes pada SLiM display manager termasuk sangat mudah.

Hanya perlu memindahkan atau mengcopy paste direktori themes ke direktori /usr/share/slim/themes.

Salah satu contoh direktori SLiM themes, biasanya mengandung sedikitnya 3 file.

darky_solarized_dark_yellow
.
├── background.png
├── panel.png
└── slim.theme
[ i ] Informasi

Saya menggunakan theme darky_solarized_dark_yellow yang merupakan hasil modifikasi dari darky_pink milik GitHub/adi1090x/slim_themes

gambar_9

Themes: darky_pink

gambar_10

Themes: darky_solarized_dark_yellow

Cara instalasi themes sangat mudah.

Secara garis besar proses instalasi dibagi dalam 2 tahap.

  1. Copy direktori themes ke dalam direktori /usr/share/slim/themes/
  2. Merubah nilai dari variabel current_theme pada file /etc/slim.conf

Copy Direktori Themes

$ sudo cp -rvf <dir_themes> /usr/share/slim/themes

Sebagai contoh, saya memiliki themes bernama darky_solarized_dark_yellow.

$ sudo cp -rvf darky_solarized_dark_yellow /usr/share/slim/themes

Kemudian lakukan pengecekan pada direktori /usr/share/slim/themes/ apakah sudah berhasil dicopy.

$ ll /usr/share/slim/themes
drwxr-xr-x root root darky_solarized_dark_yellow
drwxr-xr-x root root default

Nah, kalau sudah ada, berarti sudah terinstall.

Menginisialisasi Nama Themes

Apabila langkah copy direktori themes sudah dilakukan, selanjutnya tinggal mengganti nilai dari variabel current_theme pada file /etc/slim.conf yang tadinya bernilai default menjadi <nama_theme>.

$ sudo vim /etc/slim.conf
...
...

# current theme, use comma separated list to specify a set to
# randomly choose from
current_theme        darky_solarized_dark_yellow

...
...

Cara Mudah Instalasi Themes

Untuk mempermudah kedua tahap di atas, saya membuatkan shell script agar praktis.

$ cd <dir_themes>
$ touch install.sh
$ chmod +x install.sh
$ vim install.sh
#!/bin/env sh

: '
  ██████                           ██ ██   ██   ██      ██ ██    ██
 ░█░░░░██                         ░██░░   ░██  ░██     ░██░░    ░░
 ░█   ░██   ██████   ███████      ░██ ██ ██████░██     ░██ ██    ██  ██████
 ░██████   ░░░░░░██ ░░██░░░██  ██████░██░░░██░ ░██████████░██   ░██ ██░░░░██
 ░█░░░░ ██  ███████  ░██  ░██ ██░░░██░██  ░██  ░██░░░░░░██░██   ░██░██   ░██
 ░█    ░██ ██░░░░██  ░██  ░██░██  ░██░██  ░██  ░██     ░██░██ ██░██░██   ░██
 ░███████ ░░████████ ███  ░██░░██████░██  ░░██ ░██     ░██░██░░███ ░░██████
 ░░░░░░░   ░░░░░░░░ ░░░   ░░  ░░░░░░ ░░    ░░  ░░      ░░ ░░  ░░░   ░░░░░░
'

# Copyright (C) 2019 BanditHijo
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program. If not, see http://www.gnu.org/licenses/.

# Author  : Rizqi Nur Assyaufi
# Website : https://bandithijo.com
# Email   : bandithijo@gmail.com
# Created : 2019/02

# README
# File install.sh ini adalah shell script sederhana untuk meng-install/update
# theme yang akan kita gunakan.

# CARA INSTALASI
# File install.sh ini harus berada di dalam direktori theme.
# Kemudian, tinggal menjalankan dengan perintah:
#
# $ ./install.sh
#
# Dibutuhkan password root.

namaDir=`basename $PWD`

# mendefinisikan nama tema
namaTema=$namaDir

# membuat direktori tema pada dir. slim/themes/
sudo mkdir -p /usr/share/slim/themes/$namaTema
echo -e '\n[ DONE ] Direktori tema:' $namaTema 'berhasil dibuat!'

# mengcopy seluruh isi file ke dalam dir. slim/themes/
sudo cp * /usr/share/slim/themes/$namaTema
echo '[ DONE ] File-file tema berhasil dicopy ke dir. slim/themes'

# menginstall tema
sudo sed -i "s/^current_theme.*$/current_theme        $namaTema/g" /etc/slim.conf
echo '[ DONE ] Berhasil memasang tema:' $namaTema 'pada slim.conf'

Perhatian!, letakkan file shell script ini di dalam direktori themes.

Setelah itu, tinggal menjalankannya.

$ ./install.sh
[sudo] password for bandithijo: ******

[ DONE ] Direktori tema: darky_solarized_dark_yellow berhasil dibuat!
[ DONE ] File-file tema berhasil dicopy ke dir. slim/themes
[ DONE ] Berhasil memasang tema: darky_solarized_dark_yellow pada slim.conf

Pesan Penulis

Untuk diperhatikan, SLiM display manager tidak menggunakan ~/.profile untuk mengambil data-data aplikasi atau PATH apa saja yang harus dijalankan saat sistem startup, melainkan menggunakan ~/.xinitrc.

Hal tersebut di atas sangat berbeda dengan Display Manager seperti GDM dan LightDM yang mengambil data-data startup applications dan PATH pada ~/.profile.

Apabila hal ini tidak dikonfigurasi dengan benar, maka akan ada beberapa hal yang tidak berjalan sebagaimana mestinya.

Silahkan merujuk pada .xinitrc milik saya yang berada di GitHub/dotfiles, apabila memang diperlukan.

Sepertinya seperti ini dulu.

Mudah-mudahan dapat bermanfaat buat teman-teman.

Terima kasih.

Referensi

  1. wiki.archlinux.org/index.php/SLiM
    Diakses tanggal: 2019/02/28

  2. github.com/data-modul/slim
    Diakses tanggal: 2019/02/28

  3. www.slant.co/topics/2053/~best-linux-display-manager
    Diakses tanggal: 2019/02/28

  4. wiki.archlinux.org/index.php/GNOME/Keyring#Using_the_keyring_outside_GNOME
    Diakses tanggal: 2019/02/28

Penulis

logo_author

BanditHijo adalah nama pena saya – meminjam istilah keren dari para penulis. Teman-teman menyebut saya sebagai GNU/Linux Enthusiast. Saya memang gemar mengutak-atik sistem operasi ini. Bukan karena hobi tapi karena saya perlu untuk menggunakannya. Hehe.

- Rizqi Nur Assyaufi