【问题标题】:Get screen layout of multiple screens on linux/Gnome在 linux/Gnome 上获取多个屏幕的屏幕布局
【发布时间】:2012-03-01 19:26:52
【问题描述】:

我正在尝试为多个屏幕创建应用程序,但是到目前为止我找不到定位辅助屏幕位置的方法(相对于主屏幕的 x 和 y 坐标)。

我更喜欢使用 python 或 bash(通过库/框架很好)。我还检查了 xorg.conf,它没有反映我当前的屏幕设置。

我使用的是 Ubuntu 11.10(我相信默认的 Gnome 2),使用 compiz 作为窗口管理器。再说一遍,我的问题是如何最好通过 python 或 bash 获取所有监视器的屏幕布局(相对于主屏幕的坐标)。

【问题讨论】:

  • 运行 xrandr 并查看是否可以使用子进程解析其中的数据。
  • 没关系,它是一个名为 python-randr 的 python 模块。 A对此一无所知。但我想它会对你有所帮助。
  • 多哈。当然是 Python-xrandr。请参阅下面的答案。

标签: python linux bash screen multiple-monitors


【解决方案1】:

Python绑定解决方案

所以,您可以从这里下载用于 python 的 xrandr 绑定:https://launchpad.net/python-xrandr

# Import the module
from xrandr import xrandr

# Get a screen object to work with
screen = xrandr.get_current_screen()

# Get the active output objects as a list
active_outputs = [o for o in screen.get_outputs() if o.is_active()]

这只是我玩的一点。我希望它能让你开始 :-) 我现在只连接了一个屏幕......

解析数据解决方案

另一个解决方案,正如我在上面的评论中提到的,是解析命令 xrandr 的输出,看起来应该很简单,只需看一眼它......

【讨论】:

  • 看来我只能在 bash 中使用 xrandr。 Python绑定没有给我位置,甚至没有screen.print_info(),你能找到吗?此外,无论屏幕位置如何, output[0]._x 和 ._y 都将始终返回 0。
  • 奇怪。但无论工作如何,qt 似乎也有很好的语法(python-xrandr did'nt)。但正如您所知,这些天 xorg 仅用于设置分辨率等最初(如果它包含数据)。 xrandr 是当时使用的。
  • 此行正在生成错误消息:ett samband mellan hur mycket N sovit senaste dygnet och
  • @WinEunuuchs2Unix Oppsie。那行与代码完全无关。我一定是不小心在里面粘贴了一些东西。我会从答案中编辑出来,但我不知道这个 8 年前的答案是否仍然有效。
  • 对不起,我没有测试你的答案,我使用gdk 代替操作系统调用xrandr --listactivemonitors | grep ...
【解决方案2】:

没关系,我用 Pyqt 代替。这是一些代码...

from PyQt4.QtGui import QApplication, QPixmap
desktop = QApplication.desktop()
screenRect = desktop.screenGeometry(1)   #2nd monitor
print screenRect.x(), screenRect.y()   #returns the x and y of that screen

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多