1

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

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

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

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

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


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

XAnalogTV работает правильно (оконный)

XAnalogTV Edges Cut-Off (развернуто)

XAnalogTV Edges Cut-Off (полноэкранный режим)

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

1 ответ1

4

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

  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:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .