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

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

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
FILE/etc/slim.conf
1
2
3
4
5
6
7
8
9
# ...
# ...

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

# ...
# ...

Perhatikan baris ke-6, pastikan sudah enable (tidak ada tanda # dibagian paling depan).

Bagian inilah yang akan mengaktifkan pilihan session pada saat login.

(Perbaikan dari: Harry Kurn)

Penting! untuk menambahkan baris di bawah ini pada file ~/.xinitrc.

FILE$HOME/.xinitrc
1
2
3
4
# ...
# ...

exec $1

Tujuannya agar inputan yang dipilih menggunakan F1 akan dieksekusi.

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
FILE/etc/slim.conf
1
2
3
4
5
6
7
8
9
# ...
# ...

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

# ...
# ...

Perhatikan! pada baris ke-6. 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

FILE$HOME/.xinitrc
1
2
3
4
5
6
7
# ...
# ...
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

Perhatian

(Perbaikan dari: Harry Kurn)

Cara keren ini sudah tidak direkomendasikan lagi.

FILE$HOME/.xinitrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ...
# ...

# 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.

FILE/etc/slim.conf
1
2
3
4
5
# 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
Informasi

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

gambar_9

Gambar 9 - Themes: darky_pink

gambar_10

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
FILE/etc/slim.conf
1
2
3
4
5
6
7
8
9
# ...
# ...

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

# ...
# ...

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.

Terima Kasih

Terima kasih, Bro Harry Kurn.

gambar_11

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

bandithijo

My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.

- Rizqi Nur Assyaufi

d98d8237fef8f1017d0be931b6e291341cbe6ca8