przystajnik

Archiwum tagów la xrender

Podróż Xfce 4.14 do krainy GTK3

Znane, lubiane, tradycyjne i zachowawcze środowisko Xfce nie oparło się szponom drapieżnego postępu. Ostatnie przecieki z obozu deweloperów są jednoznaczne – nadchodząca wersja 4.14 to będzie podróż w stronę pełnej współpracy z GTK3. Na przekór dynamice wydań, w projekcie dzieje się sporo aczkolwiek wolno. Ogrom przystosowania całego środowiska i jego komponentów do współczesnych wymagań to niebagatelne wyzwanie dla tak nielicznej ekipy, dlatego w zapowiedziach uwagę przykuwa jeszcze jeden szczegół – przyszłe wydanie nie będzie obfitowało w inne nowości.

Gala i zszargana reputacja Xfce4

xubuntu-logo Jaką sympatią by człowiek nie darzył środowisko Xfce4, to obecne zachowanie menadżera okien Xfwm4 dla wielu estetów jest nie do zaakceptowania. Chwały temu środowisku nie przysporzy spowodowane brakiem synchronizacji szarpanie krawędzi okien podczas ich przemieszczania czy odtwarzanie plików wideo z wyraźnym przesunięciem w poziomie części filmu. Prób poradzenia sobie z tym problemem było już kilka, ale nigdy mało alternatyw. Tym razem Xfwm4 zastąpi zdobywający uznanie szerokich mas menadżer okien Gala z projektu elementary OS.

Xubuntu i zdesynchronizowany Xrender

… czyli co najmniej jedna rzecz do zrobienia po zainstalowaniu Xubuntu (11.10).

Teorii czar

Błąd ten przewija się przez Launchpad, Bugzille i inne miejsca od dłuższego czasu (paru lat?). Mianowicie, korzystając z kompozytora opierającego się o Xrender, a nie OpenGL (np. Xfwm4 w Xubuntu), esteci zauważą szarpanie się krawędzi okien podczas ich przesuwania, czy też poziome lekkie przesunięcie rozdzielające na pół oglądany materiał video.

Błąd ten jest spowodowany brakiem synchronizacji vblank w Xrender. A opisując to obrazowo: zawartość ekranu jest ‚rysowana’ magicznym pisakiem od góry ekranu do dołu, linijka po linijce. Jeżeli pisak znajdzie się w połowie ekranu i zacznie rysować nasze okno, a my je w tym momencie przesuniemy, to np. połowa lewej krawędzi okna zostanie narysowana na pozycji powiedzmy, 400 piksela szerokości ekranu, a druga połowa na pozycji 410 piksela szerokości ekranu. Czyli pionowa linia będzie nierówna. Jeżeli natomiast użyjemy synchronizacji vblank, to pisak z rysowaniem efektów poczeka do następnego rozpoczęcia rysowania całości ekranu (czyli jak zakończy rysowanie na dolnej krawędzi i wróci do góry). Tyle mądrości, a co począć z tym problemem?

Plan ataku

O ile w przypadku odtwarzaczy można ratować się ustawieniem sterownika wyjścia obrazu na korzystający z OpenGL (Mplayer i pochodne – wyjście obrazu GL), o tyle w przypadku nierównych krawędzi okien mamy nieco zawężone opcje. Otwarta jest kwestia użycia innych sterowników graficznych – zamkniętych od NVIDII lub otwartych Nouveau, analogicznie w przypadku ATI, czy Intela. Jednak szybkie googlanie po sieci wykazuje, że nie zawsze jest to panaceum na nieestetyczne okna. Można też czekać na jakieś usprawnienia w Xrender, jednak strony zainteresowane wydają się trwać w impasie, patrząc wyczekująco na siebie (developerzy menadżerów okien, developerzy Xrender i developrzy od sterowników graficznych). Zatem musimy wymienić Xfwm4 na jakiś menadżer okien który sobie z tym problemem poradzi. A radzi sobie stary, dobry Compiz, wykorzystujący OpenGL do malowania zawartości naszych pulpitów.

Schemat działania jest następujący – instalujemy paczki compiz i compizconfig-settings-manager (zależności się dociągną), na próbę podmieniamy menadżera okien i sprawdzamy czy to jest to co nam pasuje. Następnie dokonujemy zmiany na stałe zastępując w ustawieniach sesji Xfwm4 Compizem.

Przemeblowanie

Najszybciej zrobimy to w terminalu, zatem otwieramy magiczne czarne okienko i bez skrępowania polecamy mu zainstalowanie Compiza:

sudo apt-get install compiz compizconfig-settings-manager

Jeżeli nic się nam nie zbuntowało, podmieniamy Xfwm4:

compiz --replace&

Jeżeli coś pójdzie nie tak (np. nie mamy wsparcia 3d w sterownikach), stosowne info wyświetli się nam w odpowiedzi na to polecenie. W innym przypadku ekran błyśnie, huknie i… Od tej pory Compiz będzie zawiadywał naszymi oknami. Sprawdzamy jak się zachowuje i jeżeli nam odpowiada, przystępujemy do stałej zamiany.

Tutaj są dwie szkoły – globalna i lokalna. Globalnie (dla każdego nowego użytkownika), zmiany dokonujemy w pliku:

sudo gedit /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml

Odnajdujemy ciąg ‚xfwm4‚ i zastępujemy go wpisując ‚compiz‚. Zapisujemy plik.

Teraz dokonujemy zmian na własne potrzeby. Możemy podłubać w pliku

gedit ~/.cache/sessions/xfce4-session-NAZWA_WASZEGO_KOMPUTERA:0

… zamieniając xfwm4 na compiz, bądź za pomocą ustawienia->menadżer ustawień->sesja i uruchamianie->sesja, wyłączyć (zaznaczamy program na liście i klikamy ‚wyłącz’) wszystkie programy zostawiając tylko Thunar, Xfdesktop, Xfce4-panel, Xfce4-settings-helper oraz Compiz. Tak zmodyfikowaną sesję zapisujemy.

Wylogowujemy się i logujemy ponownie. Wyciągamy z szafki zakurzoną plakietkę ‚Geek of the Week’, przecieramy i przypinamy sobie dumnie do piersi.


Podpowiedź nr. 1

W celu zmiany domyślnej dekoracji okna, musimy wskazać jakiś motyw Metacity. W tym celu edytujemy plik:
gedit .gconf/apps/metacity/general/%gconf.xml
… i po odnalezieniu
<entry name="theme"(...)
… w tagu:
<stringvalue></stringvalue>
… zamieniamy nazwę tematu Metacity na własną.

Translate »