image 53

Lebih Dekat Bersama Dynamic Window Manager (dwm)

Akan ada masa pengguna masuk ke tahap “ricing”. Tahap ini membuat seseorang mengotak-atik tampilan desktopnya lebih menarik. Umumnya lebih banyak pengguna window manager daripada desktop environment. Salah satu window manager yang sering digunakan adalah dynamic window manager alias dwm.

Artikel ini akan membahas lebih jauh tentang dwm. Yuk kita mulai!

Tentang dwm

dwm singkatan dari “dynamic window manager” untuk Xorg Server yang dikembangkan oleh komunitas suckless. Karena dinamis, dwm memiliki tiga tata letak standar, yaitu tiled, monocle, dan floating. Kamu bisa menambahkan tata letak yang lain dengan menyunting kode sumbernya.

Ukuran kode sumber dwm tergolong kecil. Inilah alasan mengapa dwm hanya memakan sedikit sumber daya. Saya rasa apabila dwm digabungkan dengan distro – distro untuk spesifikasi rendah akan memberi pengalaman terbaik di komputer tua kamu.

Selain itu, dwm tidak memiliki binary. Kamu harus me-compile dahulu. Tidak ada berkas .config, layaknya i3wm untuk mengonfigurai, melainkan menyunting langsung di kode sumbernya.

Install dwm di Linux

Sebelum memulai pemasangan, mari kita unduh utilitasnya.

Debian GNU/Linux

$ sudo apt install git build-essential libx11-dev libxft-dev libxinerama-dev libfreetype6-dev libfontconfig1-dev gccCode language: Shell Session (shell)

Void GNU/Linux

$ sudo xbps-install git base-devel libX11-devel libXft-devel libXinerama-devel freetype-devel fontconfig-devel gccCode language: Shell Session (shell)

Tidak direkomendasikan memasang dwm dari repositori karena terlalu polos dan sukar dimodifikasi. Bagi saya, lebih enak mengunduh kode sumbernya, contohnya dengan mengkloningnya.

$ git clone https://git.suckless.org/dwmCode language: Shell Session (shell)

Kita buat branch baru bernama pembaruan. Dengan membuat branch baru, kamu bisa mengatur modifikasi tanpa merusak konfigurasi standar dwm. Tujuannya memudahkan memperbarui dwm nantinya melalui git pull.

$ cd dwm
$ git branch pembaruan
$ git checkout pembaruanCode language: Shell Session (shell)

Konfigurasi tombol berada di berkas config.h. Meskipun ini adalah berbahasa C, kamu tidak perlu takut tidak memahaminya karena variabelnya mudah dipahami.

Ketika memasang dwm, pastikan aplikasi terminal yang digunakan telah disesuaikan. Misalnya saya menggunakan suckless terminal, saya tetapkan st di barisan termcmd.

$ vim config.hCode language: Shell Session (shell)
static const char *termcmd[]  = { "st", NULL };Code language: PHP (php)

Kita akan mengkompilasi dan memasang program sesuai berkas Makefile dengan perintah ini.

$ sudo make installCode language: Shell Session (shell)

Jika kamu tidak menggunakan display manager, diharuskan menambah dwm di berkas .xinitrc.

$ vim ~/.xinitrcCode language: Shell Session (shell)
dwm

Jalankan dwm dengan perintah startx.

Melakukan Patch dwm di Linux

Untuk melakukan patching cukup mudah, kamu bisa melakukannya seperti ini.

$ cd dwm/
$ patch -p1 < berkas-patch.diffCode language: Shell Session (shell)

Jika kamu ingin menarik patching sebelumnya, bisa menambahkan opsi -R.

$ cd dwm/
$ patch -p1 -R < berkas-patch.diffCode language: Shell Session (shell)

Daftar Patch dwm Menarik

dwm-pertag

image 53

dwm-pertag memungkinkan pengguna memiliki tata letak dari tab yang berbeda. Misalnya tab 1 sedang aktif di tata letak floating, maka kamu bisa menggunakan tiled di layout 2 tanpa mengubah layout tab 1. Tentu kemampuan seperti ini tidak tersedia bawaan dwm.

dwm-uselessgap

image 54

Pihak pengembang tidak menyertakan gaps di antara window. Maksudnya dwm tidak memiliki celah di antara window. Untuk menambahkannya, kamu bisa melakukan patch dengan berkas dwm-uselessgap.

dwm-tab-i3like

image 55

Yang saya kangenin dari i3 window manager adalah tab. Beruntungnya ada pengguna yang membagikan dwm-tab-i3like. Meskipun tidak mirip dengan i3wm yang bisa memberi tab di tiap window yang berjalan, setidaknya patch ini berguna memberi rincian nama window di tata letak monocle.

Artikel Terkait

Leave a Reply

Your email address will not be published. Required fields are marked *