Как я могу заставить XAnalogTV xscreensaver заполнить мой экран?

1353
Breakthrough

Я недавно установил xscreensaver, а также дополнительные / дополнительные заставки. Многие из OpenGL работают правильно, переходя в полноэкранный режим, как и ожидалось. Однако по какой-то причине заставка XAnalogTV оставляет два «пустых» пятна на краях моего экрана.

Если я вручную запускаю XAnalogTV, он отображает окно, которое он заполняет правильно. Когда я максимизирую окно, возникает тот же эффект: окно максимизируется, но два края экрана буквально «прозрачны». Этот эффект также возникает, когда заставка установлена ​​в полноэкранный режим.

По этим причинам я считаю, что проблема может быть связана с соотношением сторон экрана. Края экрана буквально «игнорируются», и ничто там не рисуется. В частности, обратите внимание на переход между максимизированным и полноэкранным скриншотами (при отсутствии растянутого пустого пространства при увеличении высоты по вертикали).

Для справки: я запускаю Xubuntu 12.04 на Dell Vostro 1520 (Intel P8600, Nvidia 9300M) с дисплеем 1440 x 900 (16:10). Я также установил GetViewPortIsFullOfLiesпредпочтение true.

Есть ли способ заставить XAnalogTV заполнить весь мой экран? В качестве альтернативы, поскольку я считаю, что проблема связана с соотношением сторон, есть ли способ заставить экранную заставку отображать больше, чем мой дисплей, и просто отбрасывать лишние пиксели?


Соответствующие скриншоты (оконные, развернутые и полноэкранные соответственно):

XAnalogTV Working Correctly (Windowed)

XAnalogTV Edges Cut-Off (Maximized)

XAnalogTV Edges Cut-Off (Full-Screen)

В последних двух отчетах видно, что полоса прокрутки в Firefox хорошо видна, хотя это полноэкранная заставка.

1

1 ответ на вопрос

4
Breakthrough

После некоторых размышлений я решил решить проблему самостоятельно. Я написал пост в своем блоге здесь, в котором подробно описываются шаги, которые я предпринял, чтобы решить проблему. Основной процесс для подражания:

  1. Загрузите исходный код XScreenSaver.
  2. Получите все зависимости сборки и работайте ./configureв своей системе.
  3. В исходном дистрибутиве найдите analogtv.cфайл в hacksкаталоге. В этом файле закомментируйте (или удалите) строки 328 и 338. Эти строки содержат код wlim = hlim * max_ratioи hlim = wlim / min_ratio, соответственно, которые отвечают за предотвращение слишком сильного растягивания экранной заставки от обычного аналогового дисплея 4: 3.
  4. Запустите makeдля сборки XScreenSaver и XAnalogTV.
  5. Замените двоичный файл XAnalogTV (находится в каталоге /usr/lib/xscreensaver/моей системы) на только что созданный. Сначала сделайте резервную копию старого файла.

Теперь у вас должна быть рабочая заставка XAnalogTV после перезапуска демона XScreenSaver:

enter image description here

Для получения более подробной информации, включая конкретные команды, см. Мой блог здесь .

Кто-нибудь совершить это вверх по течению !!!!! Lodewijk 9 лет назад 0
Линии, кстати, сдвинулись. Может быть проще установить max_ratio на 10000. Lodewijk 9 лет назад 0