请解释 xset 中的参数“noexpose”和“cycle”

请解释 xset 中的参数“noexpose”和“cycle”

我一直在尝试避免屏幕每 20 分钟黑屏一次。我知道有许多相互关联的应用程序层可以做到这一点,而且实现这种行为并不是一件容易的事情。以下是背景阅读的一个很好的资源:

Ubuntu 12.10 “不活动时关闭屏幕:永不”仍然关闭

我不明白 xset 控制的某些参数。一个是 'expose' 或 'noexpose' 设置。另一个是 'cycle' 时间。

Screen Saver:
  prefer blanking:  no    allow exposures:  no
  timeout:  0    cycle:  0

您可以通过输入“xset s reveal”或“xset s noexpose”来更改“allow exposed”的值。另外,您可以使用“xset s 0 0”控制“timeout”和“cycle”的值。但是,我无法在任何地方找到这些参数的作用的合理解释。如果您谷歌一下,您只会发现一群人修改这些参数以防止屏幕空白,却不了解它们的作用。如果您阅读“xset”手册页,您会看到以下内容:

The 'expose' flag sets the preference to  allow  window
exposures  (the  server  can  freely  discard window contents),
while 'noexpose' sets the preference to  disable  screen  saver
unless  the  server  can regenerate the screens without causing
exposure events.  

我不明白这一点。哪个值更适合禁用消隐?

它继续说:

The length  and  period  parameters  for  the
screen  saver  function  determines how long the server must be
inactive for screen saving  to  activate,  and  the  period  to
change  the background pattern to avoid burn in.

我猜他们所说的“周期参数”是指“第二个数值参数,xset s N N其描述为cyclexset q?这只与 xscreensaver 的某种交替模式有关?同样,我主要想知道哪个值最适合禁用屏幕消隐。

答案1

好的,我相信暴露的参数与窗口及其内容是否显示在屏幕保护程序后面有关(这将与某些在屏幕上绘制的屏幕保护程序等有关)。简而言之,您的桌面是否暴露。这是一个有根据的猜测,我认为使用的术语很奇怪。

我确实理解这一点,xset s N N正如你引用的那样,工作原理如下,

xset s 60 10

将设置屏幕保护程序在 60 秒不活动后启动,由变量 60 表示,而 10 将强制背景图像(如果您使用 ,则为桌面xset s expose)每 10(分钟或秒)更改一次。这在手册中称为 s [Length[Period]](不活动的长度和刷新之间的时间间隔)

其他一些有趣的命令是s blank / s noblank这些命令负责如果您希望屏幕淡出为黑色而不是屏幕保护程序。

xset s blank

预装要启用此功能或

xset s default

设定出厂默认设置

如果你想要尽可能地关闭它,你可以一次执行一个

sudo -i

xset default

xset s noexpose

xset s noblank

xset s off

答案2

请深入研究 X11 Protokoll 中与暴露事件有关的部分。

虽然 X11 服务器可以存储窗口的内容,但是当应用程序窗口的一部分(包括全部)变得可见时,大多数应用程序都会收到公开事件。

通常当没有干扰(例如屏幕保护程序、屏幕消隐)时,不需要重绘此类窗口的内容。如果窗口被遮挡后又变得可见 - 即再次“暴露”,X11 服务器将再次向应用程序发送暴露事件。

更多信息:https://tronche.com/gui/x/xlib/events/exposure/expose.html

因此,xset 中的 noexpose 参数可导致屏幕保护程序被禁用,但仅当特定的图形驱动程序实现(或电源设置)无法在取消空白时恢复屏幕内容(大多数可以做到)时才会发生。

你的,

延斯

相关内容