如何让XAnalogTV xscreensaver填满我的屏幕?


1

我最近安装了xscreensaver,以及额外的/额外的屏保。许多OpenGL功能正常,按预期全屏显示。但是,出于某种原因,XAnalogTV屏幕保护程序在屏幕边缘留下了两个“空白”点。

如果我手动启动XAnalogTV,它会显示一个正确填充的窗口。当我最大化窗口时,会出现相同的效果:窗口最大化,但屏幕的两个边缘实际上是“透明的”。屏幕保护程序设置为全屏时也会出现此效果。

由于这些原因,我相信这个问题 可以 与屏幕的宽高比有关。屏幕的边缘字面上被“忽略”,没有任何东西被绘制在那里。具体来说,请注意最大化和全屏截图之间的过渡(随着垂直高度的增加,未绘制的空白缩小)。

作为参考,我在戴尔Vostro 1520(Intel P8600,Nvidia 9300M)上运行Xubuntu 12.04,显示器为1440 x 900(16:10)。我也有 设置 GetViewPortIsFullOfLies 偏爱 为真。

有没有办法迫使XAnalogTV填满我的整个屏幕?或者,我认为这个问题与宽高比有关,有什么方法可以让屏幕保护程序渲染 比我的显示器,只是丢弃额外的像素?


相关屏幕截图(分别为窗口,最大化和全屏):

XAnalogTV Working Correctly (Windowed)

XAnalogTV Edges Cut-Off (Maximized)

XAnalogTV Edges Cut-Off (Full-Screen)

您可以在最后两个中看到Firefox中的滚动条清晰可见,即使这是一个全屏幕保护程序。

Answers:


4

经过深思熟虑后,我决定自己解决这个问题。一世 在我的博客上写了一篇文章 ,详细介绍了我为解决问题所采取的步骤。要遵循的基本流程是:

  1. 下载XScreenSaver源代码。
  2. 获取所有构建依赖项,然后运行 ./configure 在你的系统上。
  3. 在源代码分发中,找到该文件 analogtv.c 文件中 hacks 目录。在该文件中,注释掉(或删除)第328和338行。这些行包括代码 wlim = hlim * max_ratiohlim = wlim / min_ratio分别负责防止屏幕保护程序从典型的4:3模拟显示器拉得太远。
  4. make 构建XScreenSaver和XAnalogTV。
  5. 替换XAnalogTV二进制文件(位于目录中 /usr/lib/xscreensaver/ 在我的系统上)与刚建成的那个。首先备份旧文件。

重启XScreenSaver守护程序后,您现在应该有一个可用的XAnalogTV屏幕保护程序:

enter image description here

有关具体命令的更多详细信息,请参阅 我的博客在这里发布


有人承诺上游!!!!!
Lodewijk

顺便说一句,这些线条已经移动了。将max_ratio设置为10000可能更容易。
Lodewijk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.