Portál AbcLinuxu, 10. května 2025 08:27
zdravim,
trapi ma nasledovna vec. po pripojeni/odpojeni notebooku nie je problem spustit skript, ktory pomocou xrandr zapne/vypne vystup na 1 alebo 2 monitory (mozno by slo napisat aj udev rule), ale ako je to s virtual size? v xorg.conf nastavim Virtual 1280 1024, pretoze externy monitor ma vacsie rozlisenie, no ak mam aktivnu iba obrazovku laptopu, tak napr. nevidim spodny panel (pouzivam openbox). da sa teda Virtual zmen(s)it bez restartu X? dik, jose
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultColorDepth 24 SubSection "Display" Depth 24 Modes "1280x800" "1024x768" "800x600" "640x480" Virtual 2960 1050 EndSubSection EndSectionZapinani a vypinani resim dvema skripty:
# zapnuti obou monitoru (mode se zjisti napr. programem gtf) xrandr --newmode "1680x1050_60.00" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync xrandr --addmode VGA "1680x1050_60.00" xrandr --output LVDS --mode 1280x800 --dpi 96 --output VGA --mode 1680x1050_60.00 --dpi 96 --right-of LVD # vypnuti externiho xrandr --output LVDS --mode 1280x800 --dpi 96 --output VGA --off
iste, toto chapem. problem je ale prave rozdiel vysky (teda y) vacsieho a mensieho rozlisenia. potom totiz dole (alebo hore) vznika priestor, do ktoreho sice moze vstupovat kurzor mysi alebo je tam mozne umiestnit okno, ale uzivatel nic nevidi. cize to potom vyzera takto:
|-------Virtual-Screen-------------------------| | /---laptop---\ /-----externy monitor-------\ | | | | | | | | | | | | | | | | | | | | | | | | | | \------------/ | | | | | | | | tu nic | | | | nevidiet | | | | | | | | \---------------------------/ | |----------------------------------------------|
xmonad sa s tým vyrovná krásne... ale s kurzorom myši je vždy trocha problém.
openbox mi tiez zrovna umiestnuje okna do tej neviditelnej oblasti, ale ta mys obcas zamrzi (panel mam dole a tak ju musim casto "hladat")
S tím by se měl window manager už nějak vyrovnat.
urcite to nema byt uloha X?
Založí někdo bug?
pri rychlosti vyvoja Xorg bude vyrieseny tak za 100+n rokov
Podle mě jo, windows manager by se měl jen starat u umístění oken (maximalizaci). V každém případě na Windows je to vyřešené podle mě o něco lépe, tam se pod obrazovku ze shora zajet nedá.
Xka nativně podporovávala panning (funkce Virtual... ), pak to nějakou dobu nefungovalo a údajně to již zase přidali zpět.
Např. v eeebuntu 3.0 se musí pro panning volat speciální utilitka, která to do Xek přidává.
Nezná někdo detaily?
panning na mensom displeji je podla mna horsia vec ako neviditelna oblast. skusal som parkrat a fakt som si nezvykol..
Pro delší použití naprosto souhlasím. Nicméně docela užitečné je to při připojení netbooku na prezentační projektor s vyšším rozlišením - tam je běžné mít obě plochy přes sebe a zároveň dodržet vyšší rozlišení externího zobrazovače. Obvykle má člověk při prezentaci obraz projektoru za sebou, takže potřebuje koukat na displej netbooku. A minimálně ubuntu 9.04/eeebuntu 3.0 bez dalšího přiohýbání nic takového neumí.
Jenomže na netbooku to znamená rozlišení 800x600 (1024x600 projektory 4:3 neumí), což je nereálné omezení. Při prezentaci se posouvání nepotřebuje, tam člověk jen přepíná slidy. Ale spuštění prezentace, příp. otevření pomocných aplikací (stránku v browseru) před/mezi prezentacemi bez přístupu k celému UI nelze. A přepínat rozlišení mezi prezentacemi je také nereálné, protože obvykle moderuje neajtík. To posouvání je automatické, nějak mi nevadí. V dodávaných ovladačích k eeePC pro winXP toto konkrétně funguje OK. (narozdíl od jiným věcí :) ).
Obě screeny začínají v bodě 0,0, mají různou velikost a na jedné je potřeba využít celou plochu a na druhé stále umožnit zobrazení celé aplikace.
workaround pomocou xwarppointer:
difference_in_vertical_resolutions=132; x_resolution=1024; while sleep 0.4; do xwarppointer get | ( read x y; if [ $x -lt ${x_resolution} -a $y -lt ${difference_in_vertical_resolutions} ]; then xwarppointer abspos $x ${difference_in_vertical_resolutions}; fi); done
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.