3

问题:

我有一组额外的顶部和底部 gnome 面板用于第二台显示器。当我卸下联想 Thinkpad (T510) 时,额外的顶部和底部面板仍然存在,所以我有两个在顶部,两个在底部。我目前正在运行一个 RHEL6/Fedora (x86_64) gnome (2.28.2) 实例,其中 xmonad (0.9.1-6.1.el6) 设置为窗口管理器,使用 xmonad 扩展在 gnome 中工作。

试过:

我使用了 acpi 并找到了用于对接和取消对接的代码,但是当我尝试使用我在这篇博文中找到的脚本时,对 xrandr 的调用为零。该脚本在从终端单独调用时起作用。我尝试在自己的线程中调用一个单独的循环脚本,并且在屏幕更新很久之后,它的值一直为零。

我已经想出了如何让脚本每 X 秒循环一次,并在脚本变为零时检查是否存在文件,然后执行必要的更改,但我不喜欢这种方法。

问题:

我希望有人知道一个地方,我可以放弃对引用脚本的调用,让我的面板按照我的预期来来去去,而无需手动启动脚本。

谢谢!

更新:我添加了 50 的赏金(我能做的最大)作为答案。

4

1 回答 1

1

我猜会出现下面列出的问题之一(或两者兼而有之):

1) 看起来您的 xrandr 片段没有返回正确的值,因为 $DISPLAY 环境变量设置不正确。Acpi 处理程序脚本通常以用户身份运行,该用户不是运行当前 X 会话的用户。这样 xrandr 只是不知道$DISPLAY要访问哪个。

2) 如果$DISPLAY设置正确,acpid 用户可能仍然无法访问您正在运行的 xsession。xhost +如果您以当前正在运行当前 xsession 且脚本中指定了 $DISPLAY 的用户身份执行,您可以检查脚本是否可以在 acpi 处理程序上运行。这将禁用 X 的访问控制。您可以xhost -再次启用它。

检查一下,我希望它会有所帮助,或者至少会指出你要挖掘的方向。

于 2012-01-27T10:48:35.303 回答