PDA

Vollständige Version anzeigen : manuelle xinerama extension


Markus Springweiler
01-17-2008, 04:38 PM
Hallo,

der nvidia Treiber im TwinView-Modus erzeugt ja (bekanntermaßen?) einen
großen Desktop/Framebuffer, der sich über beide Monitore erstreckt, und
meldet dem Fenstermanager mittels treiberinternen Xinerama-Extensions die
tatsächlichen Größen und Positionen der Bildschirme (Xinerama selbst ist in
xorg.conf deaktiviert und muss es auch sein).

Kann man das auch ohne Treiberunterstützung bewerkstelligen? Gibt es dafür
eine Konfigurationsdatei, welche eine große Auflösung in virtuelle Screens
aufteilen kann? (So wie es der nvidia-Treiber eben bewerkstelligt, mit
Hilfe des Fenstermanagers und xinerama-awareness).

--
/\/\arkus.

Markus Springweiler
01-18-2008, 11:56 AM
Update:

> Kann man das auch ohne Treiberunterstützung bewerkstelligen? Gibt es dafür
> eine Konfigurationsdatei, welche eine große Auflösung in virtuelle Screens
> aufteilen kann? (So wie es der nvidia-Treiber eben bewerkstelligt, mit
> Hilfe des Fenstermanagers und xinerama-awareness).

Ich werde (sobald Zeit übrig ist) mal folgendes ausprobieren (wenn in der
Zwischenzeit niemand davon abraten sollte):

http://ktown.kde.org/~seli/fakexinerama/

--
/\/\arkus.

Markus Raab
01-20-2008, 06:43 PM
Markus Springweiler wrote:

> Hallo,
>
> der nvidia Treiber im TwinView-Modus erzeugt ja (bekanntermaßen?) einen
> großen Desktop/Framebuffer, der sich über beide Monitore erstreckt, und
> meldet dem Fenstermanager mittels treiberinternen Xinerama-Extensions die
> tatsächlichen Größen und Positionen der Bildschirme (Xinerama selbst ist
> in xorg.conf deaktiviert und muss es auch sein).

Also für TwinView brauchst du Xinerama nicht, aber durchaus den Teil von
Xinerama der Informationen hergibt wo sich welche Bildschirme befinden um
Fenster erfolgreich maximieren zu können.

Ich bin noch nicht ganz dahintergekommen, aber lustigerweise macht es einen
(entscheidenden) Unterschied, ob in ServerFlags
Option>->-------"Xinerama" "0"
steht (wie vom nvidia-config tool propagiert), oder
Option>->-------"Xinerama" "false"

Nur mit der zweiten Variante funktioniert es nämlich. Damit kannst du dann
Twinview haben, die Teile von Xinerama die dem Fenstermanager sagen wie
gross der Bildschirm ist funktionieren aber trotzdem.

Konfigurationsbeispiele hab ich hier:

http://www.markus-raab.org/Info/Config/Xorg

Falls das dein Problem nicht löst kann ich dir noch konkret die Config
uploaden wo genau in der einen Variante "0" vs. "false" aufgetreten ist.
(Vielleicht war es doch was anderes was ich übersehen habe)

> Kann man das auch ohne Treiberunterstützung bewerkstelligen? Gibt es dafür
> eine Konfigurationsdatei, welche eine große Auflösung in virtuelle Screens
> aufteilen kann? (So wie es der nvidia-Treiber eben bewerkstelligt, mit
> Hilfe des Fenstermanagers und xinerama-awareness).

Ja, alles davon ist in der xorg.conf möglich. Hier wird auch der nvidia
Treiber configuriert (und twinview und Bildschirmaufteilung usw.)

mfg Markus

Markus Raab
01-20-2008, 06:47 PM
Markus Springweiler wrote:

> Ich werde (sobald Zeit übrig ist) mal folgendes ausprobieren (wenn in der
> Zwischenzeit niemand davon abraten sollte):
>
> http://ktown.kde.org/~seli/fakexinerama/

Das geht natürlich auch. Aber in deinem Fall, wo du wirklich 2 Bildschirme
hast, kann der Nvidia Treiber, auch wenn er intern nur einen grossen
Desktop verwendet, durch libXinerama richtig mitteilen wie die
Bildschirmaufteilung ist.

Das Fakexinerama ist trotzdem intressant, da könnte man es ja auch für nur
einen Bildschirm bewerkstelligen. Aber sowohl preislich als auch
auflösungsmäßig ist man mit 2 Standardbildschirmen glaub ich besser dran
als mit einem Monster :-)

mfg Markus

Markus Springweiler
01-21-2008, 12:02 PM
Hallo Markus,

>> der nvidia Treiber im TwinView-Modus erzeugt ja (bekanntermaßen?) einen
>> großen Desktop/Framebuffer, der sich über beide Monitore erstreckt, und
>> meldet dem Fenstermanager mittels treiberinternen Xinerama-Extensions die
>> tatsächlichen Größen und Positionen der Bildschirme (Xinerama selbst ist
>> in xorg.conf deaktiviert und muss es auch sein).
>
> Also für TwinView brauchst du Xinerama nicht, aber durchaus den Teil von
> Xinerama der Informationen hergibt wo sich welche Bildschirme befinden um
> Fenster erfolgreich maximieren zu können.

Ich hätte deutlicher dazu schreiben sollen, daß das nvidia-Beispiel nur zur
Verdeutlichung des Umstands war, daß getrennte Monitore auch ohne xinerama
möglich sind (im konkreten handelt es sich um eine Matrox Parhelia 128
Triplehead).

Die FakeXinerama-Idee hat dafür ganz gut funktioniert, auch wenn sie sich
nicht auf den Login-Screen auswirkt, was aber nicht wirklich schlimm ist.

--
/\/\arkus.

Markus Raab
01-21-2008, 07:38 PM
Markus Springweiler wrote:

>> Also für TwinView brauchst du Xinerama nicht, aber durchaus den Teil von
>> Xinerama der Informationen hergibt wo sich welche Bildschirme befinden um
>> Fenster erfolgreich maximieren zu können.
>
> Ich hätte deutlicher dazu schreiben sollen, daß das nvidia-Beispiel nur
> zur Verdeutlichung des Umstands war, daß getrennte Monitore auch ohne
> xinerama möglich sind (im konkreten handelt es sich um eine Matrox
> Parhelia 128 Triplehead).

Alles klar :-)

mfg Markus

Markus Springweiler
01-26-2008, 04:00 PM
Markus,

>> xinerama möglich sind (im konkreten handelt es sich um eine Matrox
>> Parhelia 128 Triplehead).
>
> Alles klar :-)

Keine Sorge, meine Ti4800SE (die mich erst auf die Funktionsweise von
Twinview gebracht hat) hat bestimmt noch das Potential für offene Fragen
(vivo z.B.). *g*

--
/\/\arkus.