Wie kann ich den XAnalogTV xscreensaver dazu bringen, meinen Bildschirm zu füllen?

1433
Breakthrough

Ich habe vor kurzem xscreensaver sowie die zusätzlichen / zusätzlichen Bildschirmschoner installiert. Viele der OpenGL-Funktionen funktionieren ordnungsgemäß und werden wie erwartet im Vollbildmodus angezeigt. Aus irgendeinem Grund hinterlässt der XAnalogTV-Bildschirmschoner zwei "leere" Flecken an den Bildschirmrändern.

Wenn ich XAnalogTV manuell starte, wird ein Fenster angezeigt, das korrekt ausgefüllt wird. Wenn ich das Fenster maximiere, tritt der gleiche Effekt auf: Das Fenster maximiert, aber die beiden Bildschirmränder sind buchstäblich "transparent". Dieser Effekt tritt auch auf, wenn der Bildschirmschoner auf Vollbild eingestellt ist.

Aus diesen Gründen glaube ich, dass das Problem möglicherweise mit dem Seitenverhältnis des Bildschirms zusammenhängt. Die Bildschirmränder werden buchstäblich "ignoriert", und es wird nichts gezeichnet. Beachten Sie insbesondere den Übergang zwischen den maximierten und Vollbild-Screenshots (wobei der nicht gezeichnete Leerraum mit zunehmender vertikaler Höhe kleiner wird).

Als Referenz verwende ich Xubuntu 12.04 auf einem Dell Vostro 1520 (Intel P8600, Nvidia 9300M) mit einem 1440 x 900-Display (16:10). Ich habe auch die GetViewPortIsFullOfLiesPräferenz auf wahr gesetzt.

Gibt es eine Möglichkeit, XAnalogTV zu zwingen, meinen gesamten Bildschirm auszufüllen? Wenn ich jedoch glaube, dass das Problem in Bezug auf das Seitenverhältnis steht, gibt es eine Möglichkeit, den Bildschirmschoner größer als meine Anzeige zu rendern und die zusätzlichen Pixel einfach zu verwerfen?


Relevante Screenshots (jeweils mit Fenstern, maximiert und im Vollbildmodus):

XAnalogTV Working Correctly (Windowed)

XAnalogTV Edges Cut-Off (Maximized)

XAnalogTV Edges Cut-Off (Full-Screen)

In den letzten beiden Fällen sehen Sie, dass die Bildlaufleiste von Firefox deutlich sichtbar ist, auch wenn dies ein Bildschirmschoner mit vollem Bildschirm ist.

1

1 Antwort auf die Frage

4
Breakthrough

Nach einiger Überlegung entschied ich mich, das Problem selbst zu lösen. Ich habe hier in meinem Blog einen Beitrag geschrieben, der die Schritte beschreibt, die ich zur Behebung des Problems unternommen habe. Der grundlegende Prozess, der folgen soll, ist:

  1. Laden Sie den XScreenSaver-Quellcode herunter.
  2. Erhalten Sie alle Build-Abhängigkeiten und führen Sie sie ./configureauf Ihrem System aus.
  3. Suchen Sie in der Quelldistribution die analogtv.cDatei im hacksVerzeichnis. In dieser Datei, kommentieren Sie (oder löscht) Linien 328 und 338. Diese Leitungen umfassen den Code wlim = hlim * max_ratiound hlim = wlim / min_ratioverbunden, die von einer typischen zu weit zur Verhinderung der Bildschirmschoner verantwortlich ist aus Stretching 4: 3 Analoganzeige.
  4. makeStarten Sie, um XScreenSaver und XAnalogTV zu erstellen.
  5. Ersetzen Sie die XAnalogTV-Binärdatei (die sich im Verzeichnis /usr/lib/xscreensaver/auf meinem System befindet) durch die gerade erstellte. Erstellen Sie zuerst eine Sicherungskopie der älteren Datei.

Sie sollten jetzt einen funktionierenden XAnalogTV-Bildschirmschoner haben, nachdem Sie den XScreenSaver-Daemon neu gestartet haben:

Weitere Einzelheiten einschließlich bestimmter Befehle finden Sie hier in meinem Blogeintrag .

Jemand bekennt sich dazu Upstream !!!!! Lodewijk vor 9 Jahren 0
Die Linien haben sich übrigens verschoben. Es könnte einfacher sein, max_ratio auf 10000 zu setzen. Lodewijk vor 9 Jahren 0