Logo eza.web.id

Menghilangkan Black Border pada GTK4 Apps di X11

27 Januari 2025
4 menit untuk membaca
Table of Contents

X11 / X Window System

X11 (X Window System) adalah sistem tampilan grafis yang digunakan pada banyak sistem operasi Unix dan Linux. X11 memungkinkan aplikasi untuk menampilkan antarmuka grafis di layar, mengelola input perangkat (seperti keyboard dan mouse), serta menangani interaksi antar aplikasi. Meskipun sudah lama digunakan, X11 memiliki beberapa kekurangan, seperti kompleksitas dan keterbatasan dalam mendukung efek grafis modern. Dalam beberapa kasus, seperti aplikasi GTK4, masalah seperti black border dapat muncul karena cara X11 menangani rendering grafis.

Black Border
Black Border

Untuk menangani masalah black border pada X11 cukup sederhana, hanya membutuhkan compositor.

Compositor

Compositor pada X11 adalah program yang bertanggung jawab untuk mengelola dan merender tampilan window di layar. Fungsinya untuk menggabungkan berbagai elemen grafis dari aplikasi (seperti transparansi, dan efek visual) menjadi satu gambar akhir yang ditampilkan kepada pengguna.

Karena X11 memiliki arsitektur yang lebih tua, compositor sering menghadapi masalah seperti latensi tambahan atau masalah performa untuk berinteraksi dengan protokol X11 yang kompleks. Hal ini menjadi salah satu alasan utama pengembangan Wayland, yang mengintegrasikan compositor langsung dalam desainnya untuk efisiensi yang lebih baik.

Fungsi Utama Compositor

  1. Rendering Window: Compositor bertanggung jawab untuk merender window aplikasi dan menggabungkannya menjadi satu tampilan akhir.
  2. Efek Visual: Compositor dapat menambahkan efek visual seperti bayangan, transparansi, dan animasi saat window dibuka atau ditutup.
  3. Manajemen Window: Compositor membantu dalam mengelola posisi dan ukuran window, serta memastikan bahwa window tidak saling tumpang tindih secara tidak diinginkan.

Aplikasi Compositor pada X11

  • fastcompmgr: Compositor yang sangat ringan (fork dari xcompmgr)
  • Mutter: Digunakan oleh GNOME.
  • KWin: Digunakan oleh KDE Plasma.
  • Picom: Sering digunakan pada sistem desktop ringan atau distribusi Linux berbasis tiling window manager

Composite Extensions

Sebelum menginstal compositor, pastikan sudah mengaktifkan ekstensi Composite pada Xorg. Untuk memastikan ekstensi Composite diaktifkan untuk X Server, jalankan:

Terminal window
xdpyinfo | grep Composite

Pastikan output Composite muncul seperti ini:

Terminal window
rmdhnreza ~ % xdpyinfo | grep Composite
Composite
rmdhnreza ~ %

Jika tidak ada output, tambahkan opsi Composite ke bagian Extensions pada konfigurasi Xorg:

  1. Buat file di folder /etc/X11/xorg.conf.d/ dengan nama 10-composite.conf
  2. Tambahkan baris ini untuk mengaktifkan ekstensi Composite
/etc/X11/xorg.conf.d/10-composite.conf
Section "Extensions"
Option "Composite" "true"
EndSection
  1. Restart

Install Compositor

Secara pribadi, tidak menyukai compositor atau efek eye candy, karena lebih menyukai segala sesuatunya serba instan. Oleh karena itu, disini memilih compositor yang paling ringan yang tersedia dan menonaktifkan semua efek eye candy (fade, opacity, shadow, dll.). Pilihannya ada 2:

  • xcompmgr: Compositor paling ringan, tetapi tidak memiliki banyak fitur.
  • fastcompmgr (fork dari xcompmgr dengan beberapa perbaikan)

Sebagian besar distribusi menyertakan xcompmgr di dalam package manager mereka. Untuk fastcompmgr, perlu mengkompilasinya sendiri atau mengunduh file binary-nya dari GitHub Releases. Buatlah fastcompmgr dapat dieksekusi dengan cara chmod +x ./fastcompmgr dan pindahkan ke $PATH.

Autostart Compositor

Pada dasarnya, xcompmgr dan fastcompmgr memiliki konfigurasi yang sama, jadi apa pun compositor yang digunakan, perintahnya akan sama. Untuk membuat compositor berjalan otomatis saat startup, cukup letakkan perintah ini di

  • .xinitrc jika tidak menggunakan LightDM
  • .xprofile jika menggunakan LightDM
~/.xinitrc
fastcompmgr -C -l0 -t0 -r0 -o0 -I0 -O0 -D0 &
exec dbus-run-session $(which i3)

Jika semua langkah diatas sudah benar, maka hasilnya tidak akan ada lagi black border yang biasanya muncul pada jendela pop-up

Black Border
Black Border
Dengan Compositor
Dengan Compositor