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
Sebagai pengguna GNU/Linux, tentu pernah mendapati beberapa aplikasi membawa default theme yang terkadang tidak sesuai dengan theme yang sedang kita gunakan. Sekedar informasi sedikit, tampilan engine untuk GUI (Graphical User Interface) pada GNU/Linux yang banyak digunakan biasanya GTK+ atau Qt. GTK+ biasanya digunakan oleh aplikasi yang dipaketkan bersama Gnome, sedangkan Qt biasanya digunakan oleh aplikasi yang dipaketkan bersama KDE.
Sekitar tahun 2005, saya masih merasakan KDE sebelum versi KDE 4. Disaat itu , saya benar-benar jatuh cinta dengan Desktop Environment ini. Namun begitu memasuki KDE 4, yang saya masih ingat disaat itu adalah kepopuleran UI (User Interface) yang berdesain glass look. Saya tidak begitu menyukai desain-desain bergaya glass look ini. Sekitar tahun 2009, saya mulai beralih menggunakan Ubuntu dengan Gnome yang menggunakan engine GTK+, saya merasa cocok dengan tampilan UI dari GTK+ ini, hingga sekarang (2018). Meskipun saat ini saya sudah tidak menggunakan Gnome, tapi saya masih lebih memilih menggunakan paket-paket program aplikasi yang menggunakan GTK+.
Karena alasan tersebut di atas yang mendorong saya untuk menuliskan dokumentasi ini, bagaimana saya mengadaptasikan apikasi yang menggunakan engine Qt agar terlihat seperti aplikasi native GTK+. Sekaligus juga bagaimana mengganti theme hanya pada aplikasi tertentu saja.
Prasyarat
Ada beberapa paket yang perlu kita sediakan untuk menunjang pengaturan ini. Beberapa paket ini mungkin tidak langsung dipasang secara default pada distro Arch Linux kalian. Paket-paket tersebut adalah :
adwaita-qt4
(AUR) *adwaita-qt5
(AUR) *qt5ct
Paket optional ( * ), tidak wajib dipasang.
Kalian dapat melihat bahwa saya juga memasang theme adwaita-qt4
dan adwaita-qt5
, karena saya menyukai theme Adwaita. Jadi untuk kedua paket ini bersifat optional.
Sedangkan paket qt5ct
adalah paket wajib yang akan kita gunakan untuk mengatur environtment GUI untuk semua aplikasi yang menggunakan Qt5. Untuk aplikasi yang menggunakan Qt4, terdapat aplikasi bernama qtconfig-qt4
, namun sepertinya palikasi ini sudah jadi satu bundle apabila memasang engine Qt4. Saya kurang begitu paham.
Pasang paket-paket yang dibutuhkan. Paket wajib,
$ sudo pacman -S qt5ct
Paket tambahan,
$ pacaur -S adwaita-qt4 adwaita-qt5
Atau
$ yaourt adwaita-qt4; yaourt adwaita-qt5
Penerapan
Kita dapat melakukan dua macam konfigurasi. Penerapan konfigurasi secara global atau penerapan hanya pada aplikasi tertentu.
Global
GTK+
Karena saya sudah menggunakan desktop environment yang mayoritas menggunakan engine GTK+, baik 2 maupun 3, makan untuk konfigurasi global, saya cukup menggunakan Settings atau Preferences yang disediakan oleh desktop environment untuk mengganti theme yang saya mau. Selain itu juga dapan menggunakan aplikasi bernama lxappearance
.
Qt5
Untuk penerapan konfigurasi ini, dampaknya adalah semua aplikasi yang menggunakan engine Qt5 akan terpengaruh.
Konfigurasinya cukup mudah karena kita menggunakan aplikasi GUI yang bernama Qt5 Settings (qt5ct
).
Tampilan GUI Qt5 Settings seperti pada Gambar 1. Kalian dapat melihat pada bagian “Style” saya menggunakan Adwaita theme.
Dengan menggunakan Qt5 Settings, kalian dapat mengatur Appearance, Fonts, Icon Theme, Interface, dan Style Sheets.
Qt5 Settings ini sendiri menggunakan engine Qt5, sehingga juga akan ikut terpengaruh terhadap perubahan pengaturan yang dilakukan.
Specific Apps
Untuk penerapan konfigurasi pada aplikasi spesifik yang kita inginkan, kita dapat mengaturnya dengan mengedit nilai dari parameter Exec=
pada file .desktop
dari aplikasi tersebut.
Kita perlu menyesuaikan nilai yang kita tulis pada parameter Exec=
sesuai dengan engine yang digunakan oleh aplikasi tersebut. Apakah menggunakan GTK+2, GTK+3, atau Qt5?
Langkah-langkah awalnya sebagai berikut.
-
Cek lokasi .desktop
Launcher dari aplikasi biasanya tersimpan pada dua lokasi yang berbeda. Global dan lokal.
- Global tersimpan pada
/usr/share/applications/
- Lokal tersimpan pada
.local/share/applications/
Yang akan kita modifikasi adalah
.desktop
yang ada pada lokal, jadi kita lakukan pengecekan pada direktori.local/share/applications/
apakah terdapat file bernamaorg.gnome.Nautilus.desktop
.Apabila tidak ditemukan, kita lanjut melakukan pencarian ke lokasi global di
/usr/share/applications/
. - Global tersimpan pada
-
Copy ke direktori lokal
Setelah ketemu, copy file
org.gnome.Nautilus.desktop
ke direktori lokal yaitu di.local/share/applications/
.PertanyaanMengapa harus dicopy ke direktori local?
Agar apabila sewaktu-waktu apabila kita memerlukan kembali, kita dapat mengeditnya kembali tanpa memerlukan _sudo permission_. Dengan mecopy ke dalam direktori lokal, maka tidak akan merusak pengaturan `.desktop` asli yang tersimpan pada direktori global.
Saya lebih merekomendasikan cara ini.
GTK+3
Saya mencontohkan dengan menggunakan aplikasi nautilus
. Kalian dapat mencoba pada aplikasi yang lain. Tentu saja yang juga menggunakan GTK+3.
Untuk langkah awal, dapat di lihat pada langkah 1 dan 2 yang sudah dijelaskan pada baris di atas.
-
Edit isi .dekstop
Untuk dapat mengubah pengaturan theme secara spesifik pada aplikasi tertentu, kita akan mengedit isi dari
.desktop
aplikasi yang kita ingin ubah.$ vim .local/share/applications/org.gnome.Nautilus.desktop
-
Modifikasi nilai dari parameter Exec=
Cari baris yang berawalan
Exec=
, kemudian tambahkan nilai seperti contoh di bawah, sesuai dengan engine yang digunakan oleh aplikasi tersebut.Untuk aplikasi yang menggunakan GTK+3 tambahkan,
Exec=env GTK_THEME=namatema ...
Karena Nautilus adalah aplikasi yang menggunakan GTK+3, maka akan seperti di bawah ini hasilnya.
$ vim .local/share/applications/org.gnome.Nautilus.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Nautilus
...
...
Exec=env GTK_THEME=Adwaita nautilus --new-window %U
...
...Adwaita juga memiliki dark theme, kita dapat menggunakannya dengan cara seperti ini.
$ Exec=env GTK_THEME=Adwaita-dark nautilus --new-window %U
GTK+2
Saya mencontohkan dengan menggunakan aplikasi inkscape
. Kalian dapat mencoba pada aplikasi yang lain. Tentu saja yang juga menggunakan GTK+2 seperti gimp
atau dia
.
Untuk langkah awal, dapat di lihat pada langkah 1 dan 2 yang sudah dijelaskan pada baris di atas.
-
Edit isi .dekstop
Untuk dapat mengubah pengaturan theme secara spesifik pada aplikasi tertentu, kita akan mengedit isi dari
.desktop
aplikasi yang kita ingin ubah.$ vim .local/share/applications/inkscape.desktop
-
Modifikasi nilai dari parameter Exec=
Cari baris yang berawalan
Exec=
, kemudian tambahkan nilai seperti contoh di bawah, sesuai dengan engine yang digunakan oleh aplikasi tersebut.Untuk aplikasi yang menggunakan GTK+2 tambahkan,
Exec=env GTK2_RC_FILES=/tema_yang_mempunyai/gtkrc ...
Karena Inkscape adalah aplikasi yang menggunakan GTK+2, maka akan seperti di bawah ini hasilnya.
$ vim .local/share/applications/inkscape.desktop
[Desktop Entry]
Name=Inkscape
...
...
Exec=env GTK2_RC_FILES=/usr/share/themes/NumixSolarizedLightBlue/gtk-2.0/gtkrc inkscape %F
...
...
Qt5
Saya akan mencontohkan dengan menggunakan aplikasi vokoscreen
. Kalian dapat mencoba pada aplikasi yang lain. Tentu saja yang juga menggunakan Qt5.
Untuk langkah awal, dapat di lihat pada langkah 1 dan 2 yang sudah dijelaskan pada baris di atas.
-
Edit isi .dekstop
Untuk dapat mengubah pengaturan theme secara spesifik pada aplikasi tertentu, kita akan mengedit isi dari
.desktop
aplikasi yang kita ingin ubah.$ vim .local/share/applications/vokoscreen.desktop
-
Modifikasi nilai dari parameter Exec=
Cari baris yang berawalan
Exec=
, kemudian tambahkan nilai seperti contoh di bawah, sesuai dengan engine yang digunakan oleh aplikasi tersebut.Untuk aplikasi yang menggunakan Qt5 tambahkan,
Exec=env QT_STYLE_OVERRIDE=Adwaita ...
Karena Vokoscreen adalah aplikasi yang menggunakan Qt5, maka akan seperti di bawah ini hasilnya.
$ vim .local/share/applications/vokoscreen.desktop
[Desktop Entry]
Name=vokoscreen
...
...
Exec=env QT_STYLE_OVERRIDE=Adwaita vokoscreen
...
...PerhatianSaya menggunakan tema Adwaita yang khusus untuk Qt, maka dari itu di awal dokumentasi ini, paket
adwaita-qt4
danadwaita-qt5
, saya ikut sertakan untuk dipasang.Untuk penggunaan tema lain, mungkin bisa menggunakan
breeze
atau tema Qt yang lain, saya kurang begitu paham untuk tema-tema yang digunakan pada Qt.
Nah, mudah bukan ?
Kebebasan seperti ini yang membuat saya betah menggunakan sistem operasi GNU/Linux.
Referensi
- wiki.archlinux.org/index.php/Uniform_look_for_Qt_and_GTK_applications
Diakses tanggal: 2018/01/22
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