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.