获取Linux/Gnome下多屏幕的屏幕布局
我正在尝试创建一个可以在多个屏幕上运行的应用程序,但到目前为止,我还找不到一种方法来确定第二个屏幕的位置,也就是相对于主屏幕的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