przystajnik

Archiwum tagów la xfwm

Xfce od dewiantów

Podczas rozmów na salonach przewija się od czasu do czasu nieśmiertelny temat „A co tam panie w Xfce”. Pytanie z natury retoryczne o zabarwieniu ironicznym oddaje nastrój w jakim tkwią użytkownicy tego środowiska graficznego. Bowiem od czasu wydania Xfce 4.12 w 2015 roku projekt jest w stanie permanentnego rozwoju bez jasno zadeklarowanych ram czasowych. Innymi słowy, nowa wersja będzie kiedy będzie. Dla wielu osób nie stanowi to większego problemu, jednak wobec obecnych standardów estetycznych można zazdrościć innym środowiskom w pełnej integracji się z GTK 3.0. Jednak „podrasowanie” czystego Xfce to nie jest jakieś karkołomne zajęcie…

Manjaro, Xfce i kontrola okien na panelu

manjaro_logo_headerJeżeli któryś z użytkowników świetnego środowiska Xfce pozazdrościł oszczędnego piękna interfejsu Unity w Ubuntu, to czas wyleczyć się z niektórych kompleksów wobec dynamicznie rozwijanego przez Canonical środowiska. Dokładniej rzecz ujmując, wykonując proste zabiegi kosmetyczne możemy zwiększyć przestrzeń użytkową naszych zmaksymalizowanych programów, przenosząc na panel zarówno belkę tytułową okna jak i przyciski zarządzania oknem (zminimalizuj, zmaksymalizuj, zamknij). I jakby to nie brzmiało skomplikowanie, powyższe sprowadza się do zainstalowania praktycznie jednego pakietu, który jednak na chwilę obecną dostępny jest tylko w repozytorium AUR dla dystrybucji Manjaro, Arch i pochodnych.

Ciosy specjalne Xfwm

Wiele osób próbujących przekonać się do Xfce (w miejsce Unity/GNOME-Shell) może nie dostrzec w początkowej fazie przygody, jakie miłe i pożyteczne udogodnienia posiada to środowisko. Choćby taki niepozorny Xfwm, będący składową Xfce i zajmujący się wyświetlaniem i obsługą okien. Czy wiecie, że:

– alt + prawy przycisk myszy zmienia rozmiary okna,- alt + lewy przycisk myszy przenosi okno,
– środkowy przycisk myszy wduszony na krawędzi okna umożliwia jego przenoszenie,
– środkowy przycisk na ikonie maksymalizacji okna maksymalizuje tylko wysokość okna,
– prawy przycisk na ikonie maksymalizacji okna maksymalizuje tylko szerokość okna,
– alt + rolka na belce okna zmniejsza/zwiększa przeźroczystość okna,
– rolka na belce okna zwija/rozwija okno

Niby proste i oczywiste rzeczy, a szczególnie dwie pierwsze funkcjonalności mnie wciąż cieszą i ułatwiają życie.

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 »