获取Linux/Gnome下多屏幕的屏幕布局

1 投票
2 回答
2571 浏览
提问于 2025-04-17 12:39

我正在尝试创建一个可以在多个屏幕上运行的应用程序,但到目前为止,我还找不到一种方法来确定第二个屏幕的位置,也就是相对于主屏幕的x和y坐标。

我更喜欢使用Python或Bash(通过库或框架也可以)。我还查看了xorg.conf文件,但它没有反映我当前的屏幕设置。

我使用的是Ubuntu 11.10(我想是默认的Gnome 2),并且使用compiz作为窗口管理器。所以再说一遍,我的问题是如何获取所有显示器的屏幕布局(相对于主屏幕的坐标),最好是通过Python或Bash来实现。

2 个回答

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的输出。看起来这应该很简单,光看一眼就能明白...

3

没关系,我改用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

撰写回答