بسم الله الرحمن الرحيم

banner

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 :

  1. adwaita-qt4 (AUR) *
  2. adwaita-qt5 (AUR) *
  3. 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).

gambar_1

Gambar 1 - Qt5 Settings

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.

  1. 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 bernama org.gnome.Nautilus.desktop.

    Apabila tidak ditemukan, kita lanjut melakukan pencarian ke lokasi global di /usr/share/applications/.

  2. Copy ke direktori lokal

    Setelah ketemu, copy file org.gnome.Nautilus.desktop ke direktori lokal yaitu di .local/share/applications/.

    Pertanyaan

    Mengapa 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.

  1. 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
  2. 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
    FILE$HOME/.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.

  1. 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
  2. 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
    FILE$HOME/.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.

  1. 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
  2. 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
    FILE$HOME/.local/share/applications/vokoscreen.desktop
    [Desktop Entry]
    Name=vokoscreen
    ...
    ...
    Exec=env QT_STYLE_OVERRIDE=Adwaita vokoscreen
    ...
    ...
    Perhatian

    Saya menggunakan tema Adwaita yang khusus untuk Qt, maka dari itu di awal dokumentasi ini, paket adwaita-qt4 dan adwaita-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

  1. wiki.archlinux.org/index.php/Uniform_look_for_Qt_and_GTK_applications
    Diakses tanggal: 2018/01/22


Penulis

bandithijo

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

d98d8237fef8f1017d0be931b6e291341cbe6ca8