Semakin modernnya tampilan desktop setiap os membuat laptop jadul tidak bisa menjalankan aplikasi dengan performa yang maksimal. Apalagi umumnya sistem operasi saat ini memang di buat untuk mengoptimalkan penggunaan mouse,touchpad,touchscreen, jadi penggunanya lebih mudah berinteraksi dengan layar komputer tanpa perlu menghafal perintah-perintah komputer yang kompleks dan bahasanya yang asing didengar.
Penulis sendiri sudah mencoba berbagai Desktop Environment seperti XFCE, LXDE, LXQT, dan Desktop environment lain yang enteng dan tidak terlalu megah, dengan harapan tetap bisa produktif walaupun menggunakan komputer atau laptop yang jadul.
Tapi kali ini kita akan membahas tentang Window manager, dimana sama halnya dengan Desktop Environment yaitu untuk menampilkan aplikasi berbasis GUI (General User Interface) dimana kita bisa menampilan aplikasi dalam bentuk window.
Bedanya Window manager dalam kelengkapan utilitas desktopnya lebih minim dan perlu konfigurasi tambahan jika memang dibutuhkan. Sedangkan Desktop Environment sendiri lebih lengkap dengan tray icon, widget, launcher dan lain sebagainya. Umumnya desktop environment sendiri dibuat diatas salah satu window manager sebagai dasarnya.
Apa Itu Window Manager?
Seperti yang dijelaskan sebelumnya, Window Manager adalah X client yang mengatur tampilan dan sifat dari setiap frame (windows) dimana setiap tampilan dalam aplikasi digambarkan didalamnya seperti border, title bar pada jendela aplikasi, ukuran window, kemampuan jendela aplikasi untuk di resize dan masih banyak lagi.
Untuk jenisnya sendiri ada 3 jenis window manager.
- Staking (floating) window manager menyajikan tampilan dekstop pada umumnya digunakan pada sistem operasi komersil seperti Windows dan OS X. Dimana jendela (window) dapat di tumpuk satu sama lainnya. Untuk contoh di Linux sistem contohnya CWM, Fluxbox, FVWM, OpenBox, dan masih banyak lagi. Jika kamu menggunakan Desktop environment XFCE maka kamu juga menggunakan XFWM.
- Tiling (tile) window manager membagi tampilan layar berdasarkan jendela aplikasi (window) yang dibuka. Biasanya jenis ini lebih banyak menggunakan kombinasi tombol keyboard dibanding menggunakan mouse. Adapun contohnya yaitu Bspwm, Ratpoison, EXWM dan yang populer yaitu i3wm.
- Dynamic window manager. Sama halnya dengan tiling window manager, Bedanya Dinamic window manager bisa pindah dari tiling ke floating dan sebaliknya. Adapun contohnya yaitu Awesome, Xmonad, Qtile, yang akan kita bahas (DWM) dan masih bayak lagi.
Apa Itu DWM (Dinamic Window Manager)?
Nama dari window manager yang satu ini sama dengan jenis window managernya sendiri yaitu DWM (Dinamic Window Manager). DWM sendiri adalah salah satu software buatan komunitas suckless dan banyak digunakan sebagai inspirasi proyek dinamic window manager lainnya seperti awesome, dwl, qtile,xmonad dan dinamic window manager lainnya.
Di DWM jendela aplikasi di atur dalam mode tilled (membagi layar), monocle (semua jendela ditampilkan satu layar penuh), dan floating (jendela bisa ditaruh diatas jendela lain atau ditumpuk). Semua layout dapat di gunakan secara dinamis untuk mengoptimalkan penggunaan aplikasi dan tugas yang dijalankan oleh aplikasi tersebut.
Setiap window di dwm di kelompokkan menggunakan tag (dari 1 sampai 9) sifatnya hampir sama dengan workspace pada Staking window manager dimana setiap tag dapat menampung beberapa jendela aplikasi sekaligus.
DWM dapat diinstall hampir di seluruh distro linux bahkan juga ada di BSD sistem. Tapi kali ini kita akan menginstallnya di ubuntu. Penginstallanya sendiri ada dua cara yaitu dari Ubuntu Official repository dan mengkompile dari source code.
Instalasi Melalui Repositori Ubuntu
Untuk menginstall dwm di komputer kita membutuhkan beberapa software pendukung diantaranya:
dwm
window manager yang akan kita installsuckless-tools
berisi librari dan utilitas untuk menjalankan dwmdmenu
sebagai menu launcher, start menunya dwmxorg
x display server untuk menampilkan aplikasi bebasis Grafikal interfacexdm
display manager/login pengguna. opsional jika sistem yang kita install berbasis non grafikal
sudo apt-get install dwm suckless-tools dmenu xorg
Untuk kamu yang menggunakan Ubuntu desktop xdm
tidak perlu diinstall karena ubuntu desktop sudah ada gdm3
.
Mengkompile dari Source Code
Salah satu cara yang paling umum digunakan yaitu menggunakan hasil kompile dari source kode. Karena selain mendapatkan versi terbaru, kita lebih bebas untuk menambahkan fitur dan sekalian belajar bahasa C. Selain itu konfigurasi DWM hanya bisa dilakukan melalui source kode, jadi kalau kamu ingin menambahkan key binding (shortcut keyboard tambahan) di DWM disarankan pakai yang dari source kode.
adapun software pendukungnya sama dengan install dari repositori dengan tambahan:
git
untuk mengambil souce code dari suckless servernano
text editor untuk mengedit source code, atau bisa juga menggunakan kode editor bawaanvi
(vim)- x display development library
libx11-dev libxft-dev libxinerama-dev
make
untuk alat kompile source codest
teminal bawaan DWM versi kompile dari source code
sudo apt-get install git nano xorg libx11-dev libxft-dev libxinerama-dev suckless-tools dwm dmenu st make
setelah semua terinstall, clone source code menggunakan git
.
git clone https://git.suckless.org/dwm
Untuk mengkonfigurasi kamu bisa edit file config.h
atau config.def.h
. Misal untuk menambahkan key binding untuk firefox
dan vlc
seperti ini.
pada baris yang dikelompokkan commands
di file config tambahkan helper untuk menluncurkan aplikasi
--- baris kode disembunyikan ---
/* commands */
--- baris kode disembunyikan ---
static const char *termcmd[] = { "st", NULL };
static const char *xfirefox[] = { "firefox", NULL };
static const char *xvlc[] = { "vlc", NULL };
--- baris kode disembunyikan ---
Kemundian untuk meluncurkan menggunakan shortcut keyboard (key binding)nya :
--- baris kode disembunyikan ---
static Key keys[] = {
--- baris kode disembunyikan ---
{ MODKEY|ShiftMask, XK_q, quit, {0} },
{ MODKEY, XK_bracketright, spawn, {.v = xfirefox } },
{ MODKEY, XK_bracketleft, spawn, {.v = xvlc } },
};
--- baris kode disembunyikan ---
Setelah semua konfigurasi yang diinginkan sudah sesuai, simpan (nano: ctrl+s
), keluar editor (nano: ctrl+x
) dan kompile DWM:
sudo make clean install
Untuk melihat hasilnya keluar dari dwm (MODKEY+q
) dan login lagi melalui display manager dan pastikan menggunakan DWM sebagai Window managernya. Coba menjalankan firefox dengan shortcut keyboard (MODKEY+]
) dan vlc (MODKEY+[
).
Untuk memudahkan mencari kombinasi tombolnya jika kamu lupa bisa ditulis di manual (file dwm.1
) seperti berikut:
---Teks disembunyikan ---
.TP
.B Mod1\-Control\-[1..n]
Add/remove all windows with nth tag to/from the view.
.TP
.B Mod1\-]
Meluncurkan Firefox.
.TP
.B Mod1\-[
Meluncurkan VLC.
.TP
.B Mod1\-Shift\-q
Quit dwm.
---Teks disembunyikan ---
Tombol MODKEY
DWM defaultnya adalah alt
keyboard atau bisa diganti di file konfigurasi menjadi tombol start
(tombol icon window) keyboard.
Menggunakan DWM
Seperti yang telah di tulis sebelumnya tombol MODKEY
default DWM adalah alt
. Jadi keybinding lainnya di dwn yang bisa kamu coba:
- Membuka
dmenu
:alt + p
- Membuka terminal (
st
):alt +shift + enter
- Berpindah antar jendela aplikasi :
alt + j
ataualt + k
- Berpindah tag:
alt + nomor_tag
- Memindahkan jendela aplikasi ke tag tertentu:
alt + shift + nomor_tag
- Memindahkan jendela master/stack:
alt + d
ataualt + i
- Menutup jendela aplikasi:
alt + shift + c
- Layout Tile :
alt + t
- Layout Float:
alt + f
- Layout Monocle (full screen):
alt + m
- Keluar DWM:
alt + shift + q
Nomor tag di dwm yaitu dari 1
s/d 9
untuk menampilkan semua window dalam satu layar maka bisa menggunkan kombinasi alt + 0
.
Untuk kombinasi tombol (keybinding) lainnya yang mungkin telewat disini bisa dilihat di manual page dwm dengan perintah
man dwm
atau konfigurasi manual default
man dwm.default
atau untuk melihat semua manual tentang dwm
man -k dwm
Konfigurasi Tambahan
Untuk konfigurasi tambahan lainnya bisa dilakukan dengan menambahkan kode modifikasi pada source kode dwm, baik dengan menggunakan patch ataupun menulis sendiri kode di dalam source kode yang sudah di clone.
Menggunakan Patch
Perlu di perhatikan saat menggunakan patch adalah versi dwmnya, pada saat penulisan artikel ini versi yang digunakan adalah DWM versi 6.3
. Patch dari versi lama terkadang bisa digunakan dan juga ada yang gagal. tapi tidak masalah karena saat patching, file yang diubah otomatis dibackup.
Untuk patch autostart aplikasi:
download patch cool autostart
wget https://dwm.suckless.org/patches/cool_autostart/dwm-cool-autostart-6.2.diff
menggunakan patch:
patch -p1 < dwm-cool-autostart-6.2.diff
Selengkapnya tentang cara patch lihat Paduan patch DWM.
Menambahkan program pendukung (Kustomisasi)
Setelah dipatch kita bisa menggunakan fitur tersebut (dalam praktik ini autostart).Misal untuk menampilkan custom tampilan background menggunakan xsetroot
atau statusbar menggunakan slstatus
pada file config.def.h
tambahkan:
static const char *const autostart[] = {
"st", NULL,
"slstatus", NULL,
NULL /* terminate */
};
Selanjutnya install slstatus
atau clone dan compile dari source code. slstatus
adalah tools yang juga disediakan komunitas suckless jadi proses konfigurasinya dan sama dengan dwm.
Setelah semuanya terkonfigurasi sesuai keinginan dan aplikasi yang akan di jalankan di startup sudah terinstall, maka tinggal restart dwm dengan relogin ke sistem.
Rekomendasi Patch Lainnya
- systray - untuk menampilkan tray icon aplikasi (seprti
nm-applet
untuk konek ke jaringan) - mpdcontrol - untuk kontrol musik deamon
mpd
Selengkapnya tentang cara patch lihat Paduan patch dan memperbaiki gagal patch DWM.