xrandr-1.2 sweetness



Wraz z nowymi Xami przychodzi nowsza wersja rozszerzenia X11 Resize and Rotate. W wydaniu 1.2 możliwy jest hot-plug i hot-unplug oraz rekonfiguracja w locie położenia i rozdzielczości ekranów. Oto krótki przewodnik obrazkowy z mnóstwem literek, pisany w stanie sporego niewyspania.

Zaczyna się normalnie.

Jeden wyświetlacz, zewnętrzny LCD nie podłączony. Tak też raportuje xrandr:
% xrandr
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 2720 x 1924
VGA disconnected (normal left inverted right)
LVDS connected 1440x900+0+0 (normal left inverted right) 303mm x 190mm
   1440x900       60.0*+   50.0  
   1280x800       60.0  
   1280x768       60.0  
   1024x768       60.0  
   800x600        60.3  
   640x480        60.0     59.9  
TV disconnected (normal left inverted right)

Podłączam więc zewnętrzny monitor. Fakt ten zostaje wykryty, poprzez DDC zostają odczytane parametry:

% xrandr
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 2720 x 1924
VGA connected (normal left inverted right)
   1280x1024      60.0 +   75.0     59.9  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0     59.9  
   832x624        74.6  
   800x600        72.2     75.0     60.3     59.9     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
LVDS connected 1440x900+0+0 (normal left inverted right) 303mm x 190mm
   1440x900       60.0*+   50.0  
   1280x800       60.0  
   1280x768       60.0  
   1024x768       60.0  
   800x600        60.3  
   640x480        60.0     59.9  
TV disconnected (normal left inverted right)
Zewnętrzny monitor podłączony jest do wyjścia VGA, ale ponieważ nie jest włączony, nie został wyświetlony tryb, w jakim pracuje. Pora go więc włączyć.
% xrandr --auto; xrandr
Screen 0: minimum 320 x 200, current 1440 x 1024, maximum 2720 x 1924
VGA connected 1280x1024+0+0 (normal left inverted right) 338mm x 270mm
   1280x1024      60.0*+   75.0     59.9  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0     59.9  
   832x624        74.6  
   800x600        72.2     75.0     60.3     59.9     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
LVDS connected 1440x900+0+0 (normal left inverted right) 303mm x 190mm
   1440x900       60.0*+   50.0  
   1280x800       60.0  
   1280x768       60.0  
   1024x768       60.0  
   800x600        60.3  
   640x480        60.0     59.9  
TV disconnected (normal left inverted right)
--auto powoduje włączenie wszystkich wyjść, gdzie jest coś podłączone i ustawienie na nich optymalnych trybów graficznych. Jednocześnie obydwa wyjścia wyświetlająten sam obszar, z dokładnością do różnic w rozdzielczościach. Jeśli dobrze się przypatrzeć, widać, że pasek gnome-panela dopasował się do najmniejszej szerokości 1280 pikseli. Tryb taki przydaje się, jeśli chcemy na obydwu monitorach pokazywać to samo.

Przy dwóch monitorach sensowne jest stworzenie z nich jednego dużego pulpitu. Można to osiągnąć ustawiając obraz z zewnętrznego nad wbudowanym w laptopa LCD:

% xrandr --output VGA --above LVDS
(wklejony screenshot został zrobiony troszkę później niż zdjęcie, bo zapomniałem). Analogicznie można ustawiać wyjścia poleceniami --below, --left-of, --right-of. Do dyspozycji jest także parametr --pos, którym można wymusić zachodzenie na siebie wyjść. Np. rogami:
% xrandr --output VGA --pos 500x500
Na obydwu ekranach działają takie rzeczy jak np. akceleracja XVideo czy OpenGL:
Jednym z zastosowań może być pomoc przy prezentacjach. Na rzutniku podłączonym do zewnętrznego wyjścia pokazany jest tylko fragment ekranu ze slajdem, na panelu laptopa widać resztę ekranu, z notatkami i podglądem kolejnych stron prezentacji:
% xrandr --output VGA --mode 800x600 --pos 300x100

Oczywiście manpipulować można dowolną liczbą wyjść. Ja w laptopie do dyspozycji mam wbudowany panel, zewnętrzny VGA i TV-out. Z żadnym nie ma problemów. Niestety, będąc w domu tak zagapiłem się na Electric Sheep uruchomione na dużym TV, że zapomniałem zrobić fotki. Nie chciało mi się także kombinować dodatkowo z pokazaniem obrotów ekranu, które również bezproblemowo działają.

Zabawę kończymy przez % xrandr --output VGA --off.

Teraz pora na minusy:

  • automatyczny panning, czyli podążanie pulpitu większego niż wyświetlany obraz za kursorem myszki; ta funkcjonalność została usunięta z Xservera, pojawi się gdy zaimplementują ją ponownie zarządcy okien;
  • sterownik dla kart Intel jeszcze (ale już nie długo) nie potrafi zmienić przydzielonej na starcie ilości pamięci na bufor ramki. Dlatego nie wszystkie kombinacje rozdzielczości i układów zadziałają z marszu. Ja obsługę kombinacji z którymi się spotykam (1280x1024 + 1440x900) załatwiłem wpisem Virtual 2720 1924 w xorg.conf; ale
  • karty Intela poniżej 965 (w tym moje 945) mają limit na wymiar akcelerowanej przez OpenGL przestrzeni do 2048. Przy większych sumach rozdzielczości nie działa DRI; rozwiązaniem jest renderowanie obrazu w kilku kawałkach po max. 2048x2048 pikseli. Ponieważ wiele osób narzeka na ten limit i inne sterowniki mają podobne ograniczenia, rozważane jest stworzenie wewnątrz Xorg infrastruktury do takiego ,,tiled rendering''.
    Układy graficzne i965 mają ograniczenie do 8192 pikseli w każdą stronę.
  • kolejność ikon i appletów na Panelu GNOME całkowicie się rozpieprza po kilku zmianach rozdzielczości; problem ten jest w trakcie naprawiania.
  • układ graficzny ma tylko 2 potoki renderujące. Można więc pokazywać tylko dwa niezależne obrazy, co oznacza, że przy aktywacji 3 wyjść, dwa z nich muszą wyświetlać to samo.
Generalnie zaś Xy w końcu oferują możliwość konfigurowania desktopów w locie, tak jak Windows pozwalał w 2001 roku.

Archived comments:

Michał Górny 2007-05-07 19:12:03

http://wiki.jogger.pl/wiki/Dzielenie_wpisow

zdz 2007-05-07 19:12:32

E, to się nie dzieje automatycznie? Beee.
No dobra, to edytujemy :)

Michał Górny 2007-05-07 19:14:30

Dzieje, ale brzydko się dzieje i w bardzo niefajnym miejscu…

Xyr 2007-05-07 19:18:52

Owce na TV bardziej mi się podobały.

x 2007-05-07 19:26:05

Szkoda, że driver radeona tak w tyle od intela :-( Nie udało mi się uzyskać miłych efektów.

zdz 2007-05-07 19:29:01

radeon się dorobi, chyba jest nawet jakaś gałąź w GIT z obsługą xrandr-1.2. Podobnie obydwa sterowniki do nvidii. I chyba matrox też już ma support do tego.

Greyer 2007-05-07 19:42:23

Peres zaczynasz wszystkim marudzić o dzielenie wpisów? ;-)

Michał Górny 2007-05-07 19:44:25

Jeszcze trochę i zrobię sobie do tego bota q ;.

Greyer 2007-05-07 19:47:47

Kup sobie może jakieś leki uspokajające? ;-)

Azrael Nightwalker 2007-05-07 21:20:54

Nie ma panningu? Buuuuu! :P

Movi 2007-05-07 23:48:23

O to czy jest clone nawet nie będę się pytał (a jeśli nie ma to biada im), ale jak jest z clonem jeśli np VLDS ma 1280x800 i jest masterem a projektor ma tylko 1024x768? Czy jest na tyle mądry żeby automatycznie VLDS wskoczył na największą wspólną rozdziałkę ?

Movi 2007-05-07 23:49:14

Ach ślepym ja.. zignoruj poprzedni comment ;]

Comments


Comments powered by Disqus