Tamo negdje oko 3.16 verzije, GTK3 je dobio nove scroll barove, odnosno
novu funkciju. Sada se automatski skrivaju i pokazuju, zavisno od toga
da li lebdite mišom preko njih. Problemi su nastupili ubrzo jer su scrol
trake prekrivale čitavu liniju nakon što se automatski pojave. Mislim da
je to prvenstveno bilo zbog nevaljale GTK teme (Adwaita nema taj problem).
Pošto je Adwaita odvratna, tražio sam rješenje u vidu da povratim staru
funkcionalnost. Na sreću, potrebno je jedino eksportovati GTK_OVERLAY_SCROLLING=0
i stvari bi trebale biti u redu. Trebale.
Ispostavilo da nije baš tako jednostavno. Otvarajući tekstualne
fajlove Geditom preko Thunara skrol traka se i dalje skrivala automatski.
Prvo sam posumnjao da je kriv Thunar, čak sam otvorio i
temu na Xfce forumu, ali
se na kraju ispostavilo da nije.
Šta se tačno dešavalo?
Otvarajući Gedit iz terminala, skrol trake su bile uvijek vidljive.
Otvarajući Gedit i tekstualni fajl iz Thunara, skrol trake su se skrivale.
GTK_OVERLAY_SCROLLING je bio eksportovan uspiješno; printenv | grep GTK_OVERLAY
ga je prikazivao. Zašto su se skrivale zavisno od načina otvoranja mi
nije bilo jasno.
Pošto koristim Openbox upravljač prozora, environment variable su
eksportovane u .config/openbox/environment fajlu. Prvo, privremeno i
neprihvatljivo rješenje je bilo eksportovanje GTK_OVERLAY_SCROLLING
promjenjljive u /etc/xprofile fajlu. Nisam želio imati razbacane konfiguracione
fajlove svakuda, tako da sam dalje tražio.
Drugo, prihvatljivije rješenje
sam našao u ovoj
dretvi na Redditu. Dodavanje
gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment '{"GTK_OVERLAY_SCROLLING": "0"}'
u Openboxov environment fajl je radilo, trake su bile vidljive uvijek.
Gdbus call je bio nagovještaj za konačno rješenje problema.
Zašto se dešavalo
Dbus je kriv za sve. Otvaranje fajla Geditom preko Thunara koristi Geditov
.desktop fajl. U njemu se nalazi linija DBusActivatable=true
koja dozvoljava
da se Gedit otvori putem Dbus aktivacije. Tako otvoreni Gedit iz nekog razloga
zanemaruje ili samo koristi one environment variable koje su poznate Dbus
sesiji. Zašto Dbus sesija nije znala za GKT_OVERLAY_SCROLLING? Zato jer
se Openboxov environment fajl izvršava nakon što se Dbus pokrene i preuzme
postavljene promjenjljive.
Konačno, najčistije rješenje je ponovno importovanje promjenjljivih u Dbus sesiju
nakon pokretanja Openboxa, odnosno environment fajla. Dodao sam ovo:
dbus-update-activation-environment --systemd --all`
u openbox/environment fajl i Gedit i skrol trake se ponašaju normalno.
Ovo sam naravno skužio nakon što sam prestao koristiti Gedit.
Komentari