Pintasan keyboard adalah kustomisasi yang tidak terlihat tetapi paling terasa: satu kombinasi tombol menggantikan gerakan mouse tiga langkah. Di Linux, pintasan bisa kita definisikan di hampir semua lapisan — dari panel pengaturan desktop environment, daemon khusus, sampai pemetaan ulang tombol fisik. Pada Chapter ini kita menaiki lapisan-lapisan tersebut satu per satu: membuat shortcut kustom yang menjalankan skrip, lalu mempelajari alat klasik X11 dan compose key untuk kebutuhan mengetik sehari-hari.
Shortcut Kustom di Desktop Environment #
Semua desktop environment menyediakan editor pintasan bawaan: panel Keyboard → View and Customize Shortcuts di GNOME Settings dan modul Shortcuts di System Settings Plasma. Editor tersebut memadai untuk mengganti pintasan bawaan, tetapi mekanisme di baliknya menarik untuk dibongkar karena bisa diotomatisasi. GNOME menyimpan pintasan kustom sebagai daftar jalur diikuti tiga key per jalur. Berikut contoh tampilan pemasangan pintasan Super+D yang menjalankan skrip pembisu notifikasi:
$ gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings \
"['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"
$ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name 'Bisukan notifikasi'
$ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command 'toggle-notifikasi.sh'
$ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding '<Super>d'
Baris pertama mendaftarkan jalur custom0/ ke array custom-keybindings — pintasan kedua cukup menambah custom1/ pada array yang sama. Tiga baris berikutnya mengisi name (label di editor), command (perintah yang dijalankan), dan binding (kombinasi tombol). Nilai command dijalankan seperti diketik di terminal, sehingga nama skrip harus berada di PATH atau ditulis dengan path penuh. Di Plasma, peran serupa dipegang modul Custom Shortcuts yang menyimpan pemicu berupa kombinasi tombol maupun gerakan mouse, dengan hasil akhir tetap sebuah perintah.
Skrip yang Dipicu Shortcut #
Apa pun lapisannya, hasil akhir sebuah pintasan kustom selalu sama: satu perintah dijalankan. Karena itu beban sesungguhnya ada pada skrip yang dirancang untuk dipicu berulang. Pola yang paling berguna adalah toggle — sekali tekan menyalakan, tekan berikutnya mematikan — yang biasanya disimpan sebagai berkas status. Berikut versi latihannya:
mkdir -p ~/.local/bin
cat > ~/.local/bin/toggle-notifikasi.sh <<'EOF'
#!/bin/bash
BERKAS="$HOME/.notifikasi-dibisukan"
if [ -f "$BERKAS" ]; then
rm "$BERKAS"
echo "notifikasi: aktif kembali"
else
touch "$BERKAS"
echo "notifikasi: dibisukan"
fi
EOF
chmod +x ~/.local/bin/toggle-notifikasi.sh
~/.local/bin/toggle-notifikasi.sh
ls -a ~ | sort
~/.local/bin/toggle-notifikasi.shOutput yang Dihasilkan:
notifikasi: dibisukan
.
..
.local
.notifikasi-dibisukan
notifikasi: aktif kembaliMari kita bedah perilaku skrip tersebut:
- Baris
BERKAS="$HOME/.notifikasi-dibisukan": menetapkan berkas status; keberadaan berkas ini adalah satu-satunya sumber kebenaran kondisi. - Blok
if [ -f "$BERKAS" ]: bila berkas ada, cabang pertama menghapusnya dan mencetak pesan aktif; bila tidak ada, cabangelsemembuatnya lewattouch. - Baris
chmod +x: memberi hak eksekusi — pintasan gagal diam-diam bila skrip tidak bisa dieksekusi. ls -a ~pada tengah blok: membuktikan tekanan pertama membuat berkas status, sebelum tekanan kedua menghapusnya kembali.
Pada desktop sungguhan, isi cabang if tinggal diganti perintah sesungguhnya — misalnya dunstctl set-paused toggle untuk server notifikasi dunst — sementara kerangka toggle-nya tetap sama.
xbindkeys: Perekat Universal untuk X11 #
Editor DE menyelesaikan hampir semua kebutuhan, tetapi pada sesi window manager ringan seperti Openbox atau i3, daemon xbindkeys mengambil peran itu. Daemon kecil ini membaca ~/.xbindkeysrc, menangkap kombinasi tombol lewat server X, lalu menjalankan perintah yang dipasangkan. Format berkasnya hanya dua baris per pintasan:
cat > ~/.xbindkeysrc <<'EOF'
# Bisukan notifikasi: tekan Super+D
"/home/budi/.local/bin/toggle-notifikasi.sh"
Mod4 + d
# Tangkapan layar area: tekan Print
"gnome-screenshot -a"
Print
EOF
cat ~/.xbindkeysrcOutput yang Dihasilkan:
# Bisukan notifikasi: tekan Super+D
"/home/budi/.local/bin/toggle-notifikasi.sh"
Mod4 + d
# Tangkapan layar area: tekan Print
"gnome-screenshot -a"
PrintStruktur berkas tersebut sederhana namun ketat:
- Baris dalam tanda kutip: perintah yang dijalankan — path skrip ditulis penuh karena daemon xbindkeys tidak membaca
PATHkita. - Baris
Mod4 + d: kombinasi pemicunya;Mod4adalah nama X untuk tombol Super, danPrintadalah keysym tombol tangkapan layar. - Baris kosong antar pintasan: pemisah yang membuat berkas mudah dibaca; komentar ditandai
#. - Nama berkas: daemon membaca tepat
~/.xbindkeysrc— bukan.xbindkeyrc— dan memuat ulang berkas ini otomatis setiap kali isinya berubah.
Jalankan daemon xbindkeys sekali di awal sesi — misalnya dari berkas startup yang kita bahas di Chapter Display dan Multiple Monitors
— dan seluruh pintasan berkas ini langsung hidup. Rincian sintaksnya dirangkum di halaman Xbindkeys ArchWiki
.
Remap Tombol dengan Xmodmap #
Kebutuhan berikutnya lebih dalam: mengubah arti tombol fisik itu sendiri. Alat klasiknya adalah xmodmap, yang membaca berkas ~/.Xmodmap berisi tabel pemetaan. Kasus paling populer adalah menjadikan Caps Lock sebagai Escape — berkah bagi punggung jari kelingking pemakai Vim:
cat > ~/.Xmodmap <<'EOF'
! Jadikan Caps Lock sebagai Escape
clear lock
keycode 66 = Escape
EOF
cat ~/.XmodmapOutput yang Dihasilkan:
! Jadikan Caps Lock sebagai Escape
clear lock
keycode 66 = EscapeTiga baris tersebut bekerja sebagai berikut:
- Baris
! ...: komentar — xmodmap menandai komentar dengan tanda seru, bukan#. - Baris
clear lock: melepas semua tombol dari modifier lock sehingga Caps Lock berhenti menjadi tombol pengunci. - Baris
keycode 66 = Escape: menugaskan ulang kode tombol 66 — Caps Lock pada kebanyakan keyboard — agar mengirim keysymEscape.
Berkas diterapkan dengan xmodmap ~/.Xmodmap. Perlu dicatat xmodmap adalah alat era lama: pemetaannya berlaku mentah tanpa pemahaman layout, dan sistem modern X11 memakai XKB yang lebih benar — satu baris setxkbmap -option caps:escape mencapai hasil yang sama secara lebih aman. xmodmap tetap berguna untuk kasus aneh yang tak dijangkau opsi XKB; perbandingan keduanya dibahas di halaman konfigurasi keyboard ArchWiki
dan halaman Xmodmap ArchWiki
.
Compose Key untuk Karakter Khusus #
Lapisan terakhir bukan memicu perintah melainkan mengetik karakter. Compose key (juga disebut Multi_key) adalah tombol yang menyalakan mode urutan: tekan compose lalu dua-tiga tombol berikutnya, dan satu karakter khusus muncul — compose, o, c menghasilkan ©. Sequens bawaannya ribuan jumlahnya, dan tabelnya bisa kita perluas lewat ~/.XCompose:
cat > ~/.XCompose <<'EOF'
include "%L"
<Multi_key> <e> <m> : "[email protected]"
<Multi_key> <r> <p> <t> : "Ruang Rapat 3"
EOF
cat ~/.XComposeOutput yang Dihasilkan:
include "%L"
<Multi_key> <e> <m> : "[email protected]"
<Multi_key> <r> <p> <t> : "Ruang Rapat 3"Baris include "%L" memuat tabel bawaan sehingga sequences standar tetap bekerja; %L menunjuk lokasi tabel sistem. Setiap baris berikutnya mendefinisikan sequences baru: daftar keysym dalam kurung siku, titik dua, lalu hasil teksnya. Aplikasi GTK dan Qt menghormati berkas ini, sehingga cuplikan yang sering diketik — alamat surel, nama ruang rapat — bisa lahir dari tiga ketikan. Compose key-nya sendiri diaktifkan dari GNOME Tweaks atau setxkbmap -option compose:ralt (Alt kanan sebagai compose).
Tangan kita kini bekerja lebih sedikit berkat pintasan, remap, dan compose key. Berikutnya kita rapikan apa yang dilihat mata: resolusi layar, penyusunan multi-monitor, dan penskalaan HiDPI — materi Chapter Display dan Multiple Monitors.