Nedávno jsem si domů pořídil druhé LCD a začal si užívat pohodlí, které přináší. Problém nastal hned ve chvíli, kdy jsem se chtěl koukat na film – grafika má pouze dva DVI výstupy a tak nastalo odsouvání monitoru, přehazování kabelů a přepínání rozlišení pokaždé, když jsem chtěl na něco mkrnout.
Tento článek není dokončený, průběžně budu upravovat a doplňovat informace.
Přestalo mě to bavit poměrně rychle a začaly padat řešení: koupit kartu s více výstupy, najít nějaký přepínač nebo přikoupit další slabší kartu jen na projektor. První řešení vychází dost draze, zvlášť když chcete na počítači i hrát, u druhého jsem nevěřil tomu, že nezpůsobí další problémy a tak přišel na řadu nákup další karty…
Výběr karty byl poměrně jednoduchý. X.Org sice zvládají bez problémů více karet od různých výrobců, ale proč mít zbytečně natáhnutých více ovladačů a řešit další probémy. K stávající pasivní GeForce 9600 GT se tak přidala další pasivka GeForce 8400 GS.
Co se týče výkonu, stačila by mi i mnohem slabší karta, jenže starší karty již nejsou podporovány v novějších ovladačích. Pokud budete něco podobného řešit, určitě si dejte pozor na místo v bedně, u mě to vyšlo dost natěsno, 9600 GT totiž zabírá dva sloty.
PCI Express nebo AGP sloty. Vždy můžete ale pořídit grafickou kartu do PCI. Bohužel většinou vychází podstatně dráž.
A tady přišel kámen úrazu. Se svou neoblomnou důvěrou v to, že v linuxu je možné vše jsem dopředu příliš materiálů nečetl a skončil s dosti rozporuplnými dojmy. TwinView totiž umí jen dva monitory a třetí musíte přidat jako samostatnou Screen a to ještě není všechno. Jakmile jsem přidal další screen TwinView přestalo TwinViewovat a já skončil u čtení diskuzí a experimentování.
Pokud jsem správně pochopil, tak vše funguje tak, že aplikace dostávají přes knihovnu Xineramy informace o tom, jaké rozlišení máte na které obrazovce a proto se vám správně maximalizují okna. TwinView jako takové využívá pouze jednu screen pro dva monitory, ale přes své vlastní volání aplikacím podstrkuje rozložení, které chcete.
Celý problém je v tom, že aktivuje-li se v X.Org Xinerama, TwinView přestane pro X poskytovat informace o rozložení monitorů a obraz se roztáhne přes oba monitory, stejně tak se maximalizují okna a vše ostatní. V dokumentaci se doporučuje využít volby TwinViewXineramaInfoOrderOverride, což u mě vůbec nezabralo.
Option "TwinViewXineramaInfoOrderOverride" "1680x1050+0+0, 1680x1050+1680+0, 1024x768+3360+0"
Nebudu vás napínat, doteď jsem problém plně nevyřešil, ale nejrychlejším řešením je projektík fakexinerama, který upraví knihovnu xineramy pro zjištění informací o rozložení monitorů z vašeho konfiguračního souboru. Ano, je to dosti neflexibilní a má to neodstatky, ale aspoň nějak to funguje.
V knihovně jsem si upravil cesty ke konfiguráku na globální /etc/fakexinerama, nastavil ho, zkompiloval knihovnu, restartoval X a vše relativně jede.
$ cat /etc/fakexinerama
3
0 0 1680 1050
1680 0 1680 1050
3360 0 1024 768