Walka z RandR w GNOME
RandR to rozszerzenie X-ów, które pozwala m.in. na dynamiczną zmianę rozdzielczości ekranu i zarządzanie monitorami. Bardzo rzadko z niego korzystam, bo na ogół albo pracuję na wbudowanej matrycy laptopa, albo podłączam zewnętrzny monitor jeszcze przed uruchomieniem systemu, a wtedy X-y same go wykryją. Oczywiście, w razie czego zawsze można skorzystać z
$ xrandr --auto
i wszystkie podłączone monitory automatycznie się skonfigurują. Z użyciem tego konsolowego programu można też pobawić się w tworzenie bardziej złożonych ustawień, typu jeden monitor nad drugim, jeden obok drugiego itp.
Żeby było nam wygodniej, przyjemniej i cieplej w plecy GNOME udostępnia GUI dla RandR. Wynalazek ten figuruje w moim menu jako Ekran i uruchamia program gnome-display-properties. Jest to narzędzie, które teoretycznie może i ułatwia życie, ale w praktyce przynosi więcej szkody niż pożytku, przynajmniej w moim wypadku.
Po uruchomieniu wspomnianej aplikacji pobawiłem się trochę ustawieniami, pochwaliłem w duchu dobry pomysł, wykrzaczyłem X-y i w końcu stwierdziłem, że mi to do szczęścia potrzebne nie jest. Niestety, w międzyczasie zdążyłem coś zmienić i cały pulpit przesunął się kilka pikseli poza obszar ekranu. Po restarcie X-y podnosiły się poprawnie, ale po zalogowaniu do GNOME-a wszystko znów się przesuwało. Była to przypadłość tylko i wyłącznie GNOME-a, więc doszedłem do wniosku, że środowisko to musi przy włączaniu ładować jakieś dziwne ustawienia. Ponieważ w autostarcie nie znalazłem nic podejrzanego, zacząłem męczyć gnome-display-properties i w końcu znalazłem przyczynę kłopotów: złą częstotliwość odświeżania. Po jej zmianie ekran przesunął się na dawne miejsce, ale… tapetę miałem rozciągniętą strasznie w dół. Podniesienie pokrywy laptopa ukazało istotę problemu: miałem ustawione dwa monitory, połączone w pionie. Niestety, ustawienia tego nie mogłem anulować, bo próba wyłączenia wbudowanego wyświetlacza kończyła się restartem X-ów.
Ponieważ tapeta jest w komputerze najważniejsza (a ponadto piekielnie niewygodny jest kursor myszy, który nie zatrzymuje się na dole ekranu, ale jedzie sobie śmiało poniżej paska zadań; że o dziwnie maksymalizujących się niektórych oknach już nie wspomnę), zabrałem się za poszukiwania tego-czegoś-co-trzeba-wyłączyć.
Na pierwszy ogień poszedł autostart. Wyłączenie Usługi ustawień środowiska GNOME pomogło, ale przecież trudno używać GNOME bez gnome-settings-daemon. Musiałem więc znaleźć miejsce, w którym nieopatrznie zmieniłem jakieś ustawienie. Oszczędzę Wam szczegółów tych poszukiwań, dość powiedzieć, że w końcu sięgnąłem nawet po hexedytor i przeglądając jedną z bibliotek GNOME-a w końcu znalazłem to, czego szukałem.
Otóż GNOME używa wątpliwej proweniencji (czyżby inspiracja rejestrem Windows?) wynalazku jakim jest GConf. Po uruchomieniu edytora gconf-editor można użyć wyszukiwarki, by znaleźć pozycję /apps/gnome_settings_daemon/plugins/xrandr. Teraz wystarczy odznaczyć opcję active i po sprawie.
Proste, prawda? Oczywiście, można by tę opcję umieścić w gnome-display-properties, ale wtedy byłoby aż za łatwo…
Na przyszłość radzę wspomnianej aplikacji nie dotykać, a w systemie przypisać jakiś łatwy skrót klawiaturowy (np. Win + x) do komendy
$ xrandr --auto
Tak na wszelki wypadek, gdyby nam kiedyś X-y oszalały po podłączeniu nowego monitora.
PS O GConf możecie poczytać u Grzglo.

środa, 22 kwietnia 2009 @ 12:33
To ja dla odmiany dodam, że ten aplet działa u mnie całkowicie bezproblemowo a często podłączam i odłączam dodatkowy monitor z pivotem ustawionym na pion :)
środa, 22 kwietnia 2009 @ 19:10
@brii: Gwoli sprawiedliwości muszę przyznać, że ostatnimi czasy w Archu były duże zmiany związane z Xorgiem i może po ostatniej aktualizacji część problemów by ustąpiła. Ale na razie nie mam zamiaru eksperymentować ;)