Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●
Latar Belakang
SXHKD, adalah Daemon yang sederhana (simple) untuk keyboard shortcut (hotkey) pada lingkungan X (Xorg).
Sederhananya, SXHKD digunakan sebagai alat bantu untuk mendefinisikan “keyboard shortcut” (keybindings) pada lingkungan X.
SXHKD digunakan secara default oleh BSPWM (Binary Space Partitioning Window Manager) sebagai tempat kita mendefinisikan keyboard shortcut.
Umumnya, penggunan Window Manager –terkhusus untuk Tiling Window Manager– akan lebih sering memanipulasi window (seperti: switch window focus, resize window, move window, dll.) dan pemanggilan aplikasi hanya dengan menggunakan keyboard shortcut –tanpa perlu menggunakan mouse.
Window Manager pertama yang saya gunakan untuk beraktifitas adalah i3WM. Pada i3WM, kita dapat mendefinisikan keyboard shortcut langsung di dalam file config dari i3WM.
Berbeda dengan BSPWM, yang menggunakan SXHKD sebagai alat bantu untuk menghandle keyboard shortcut.
Keuntungan Menggunakan SXHKD
Terdapat beberapa keuntungan yang akan kita dapatkan apabila kita memanfaatkan SXHKD sebagai alat bantu untuk menghandle keyboard shortcut, diantaranya:
-
Modularity
Kita akan mendapatkan konfigurasi keyboard shortcut yang terpisah dari config yang lain. Ibarat mengklasifikasikan dan memisahkan bagian khusus (tertentu) untuk keyboard shortcut. Dengan begini, diharapkan kita akan mendapatkan keuntungan dalam hal “easy to mantain” apabila konfigurasi yang kita gunakan semakin banyak. -
Flexibility
Kita dapat menulis dan berkespresi dengan lebih bebas dalam mendifinisikan keyboard shortcut serta statement yang akan dipanggil juga menjadi lebih luwes. -
Independent
SXHKD tidak hanya untuk BSPWM, tetapi dapat digunakan untuk Window Manager atau Desktop Environment yang lain pula.
Cara Penggunaan
Untuk memanggil config sxhkd, saya lebih senang menggunakan option -c
.
Karena saya memiliki beberapa file config untuk masing-masing WM.
$ sxhkd -c $HOME/.config/sxhkd/sxhkdrc-dwm
Langkah selanjutnya, tinggal dipasang pada konfigurasi autostart yang teman-teman miliki.
Misal, contohnya seperti yang saya pergunakan di bawah ini.
Contoh Penggunaan
Berikut ini beberapa contoh isi dari konfigurasi SXHKD yang saya pergunakan.
Saya akan ambil beberapa contoh yang simple dan berbeda dengan yang lain.
1. Single Key
Ini adalah contoh yang menggnunakan single key.
Dalam contoh di atas, saya menggunakan tombol PrtScr untuk memanggil script yang bernama scrot-full
.
2. Simple Combination Sequence Key
Kita dapat menggunakan 2 atau lebih kombinasi tombol yang kita gunakan dengan cara “press & hold”.
Key1 + Key2 + KeyX
Contoh:
Ini adalah contoh 2 kombinasi untuk menggunakan command terminal.
Ini adalah contoh 2 kombinasi untuk memanggil script dmenu (custom) launcher.
Ini adalah contoh 3 kombinasi untuk memanggil program slock.
3. Simple Parenthesis
Different Statement
{F1, F2, Fx}
{statement A, statement B, statement x}
Arti dari keybind di atas adalah:
F1 untuk menjalankan statement A
.
F2 untuk menjalankan statement B
.
Dan seterusnya.
Same Statement with Different Options
{F1, F2, Fx}
statement {--option A, --option B, --option x}
Arti dari keybind di atas adalah:
F1, untuk menjalankan statement --option A
.
F2, untuk menjalankan statement --option B
.
Dan seterusnya.
Contoh:
4. Combination Sequence Key with Parenthesis
super + {_+shift} + F1
statement {--option A, --option B}
Kelihatannya ribet yaa? Tapi sebenarnya ini sangat sederhana.
Arti dari keybind di atas adalah:
Super + F1, untuk menjalankan statement --option A
. Tanda _
dapat diartikan sebagai null atau tidak ada.
Super + Shift + F1, untuk menjalankan statement --option B
.
5. Toggling On/Off
~F11
{statement on, statement off}
Ini adalah contoh dari penggunaan toggling function. Cirinya adalah penggunaan tanda tilda ~
.
Toggling artinya kita bisa berganti on/off dengan menggunakan keybind yang sama.
Kalau diperhatikan, bagian statement menggunakan parenthesis.
Penggunaannya adalah pada dua statement yang saling berlawanan atau statement yang sama namun berbeda option.
Misal, statement A, adalah statement untuk memanggil, sedangkan statement B, adalah statement untuk menutup.
Intinya, jangan terpaku pada on & off, tapi bisa beranekaragam tergantung dari kreatifitas teman-teman.
Contoh:
6. Multiline for Long Statement
super + F1
notify-send \
"Header Title" \
"Isi dari notifikasi"
Kita dapat menggunakan \
backslash untuk memisahkan satu statement panjang menjadi beberapa baris. Dengan begini, command yang kita tulis akan lebih mudah untuk dibaca.
7. Multistatement
Kita dapat menggunakan tanda ;
untuk memisahkan antar statement. Maka statement ini akan dijalankan berurutan dimulai dari yang paling depan.
8. Multiline for Multistatement
Ini adalah kombinasi dari point ke 6 & 7. Tujuannya agar statement yang kita definisikan menjadi lebih readable.
9. Etc.
Silahkan lihat pada man sxhkd
untuk fungsi-fungsi yang lain.
Contoh
Saya akan mencontohkan penggunaan yang terlihat ribet.
Tujuannya untuk menjelaskan dari keuntungan menggunakan SXHKD sesuai pada point ke-2, yaitu “Fleksibilitas”.
Penggunaan seperti ini tidak saya rekomendasikan. Saya lebih merekomendasikan dimasukkan saja ke dalam file script.
Pesan Penulis
Sepertinya, segini dulu yang dapat saya tuliskan.
Untuk repositori SXHKD milik saya, dapat teman-teman lihat di sini.
Mudah-mudahan dapat bermanfaat.
Terima kasih.
(^_^)
Referensi
- baskerville/sxhkd
Diakses tanggal: 2020/10/12
Lisensi
Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional (CC BY-NC-SA 4.0)
Penulis
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