使用twinview的2台显示器上的全屏应用程序Ubuntu 12.04 C++

问题描述:

我遇到了正在处理的应用程序的问题。基本上我希望它能够全屏显示,但只能显示在我的两台显示器中的一台上。我正在使用Nvidia图形卡并运行Twinview,将我的桌面扩展到两台显示器上。不幸的是,我所尝试的只能看到一个大型显示器是否有办法实际了解每台显示器的分辨率?我宁愿不必使用一堆外部库,我已经使用Xlib来管理窗口,但是我还没有发现任何可以看到过去Twinview的调用。使用twinview的2台显示器上的全屏应用程序Ubuntu 12.04 C++

不幸的是,我现在几乎被Twinview困住了,我真的需要解决它,而不是仅仅切换到别的东西。

感谢

编辑: 我能得到它基本上与Xinerama的工作,但更多的斗争后,这是在Xinerama已被弃用,所以我结束了代码,更简洁,我的理解,这是可能更好。

XEvent xev; 
    xev.type = ClientMessage; 
    xev.xclient.window = this->window; 
    xev.xclient.message_type = XInternAtom(this->display, "_NET_WM_STATE", False); 
    xev.xclient.format = 32; 
    xev.xclient.data.l[0] = 2; //0 is remove, 1 is add, 2 is toggle 
    xev.xclient.data.l[1] = XInternAtom(this->display, "_NET_WM_STATE_FULLSCREEN", False); 

希望这将帮助其他人有类似的问题,窗口管理器会完成所有的好听。

此选项在xorg.conf应该这样做:

Option "NoTwinViewXineramaInfo"

此选项将Xinerama的信息了。关闭窗口中的Xinerama信息 管理员认为整个MetaMode是屏幕,并且跨越两个显示器都会跨越 。当你点击最大化你的 应用程序将填满这两个屏幕,对于某些应用程序来说这是好的 对于其他人来说很烦人。我已经测试了两种方式,并且倾向于允许窗口管理器 知道有两个显示器。

编号:http://www.ublug.org/ubuntu/twinview/twinview-howto-breezy.html

+0

其实我一直在寻找一种方式,以避免在两个屏幕最大化。但是,无论如何,这是一个有用的答案,因为尽管Xinerama被关闭,我仍然可以使用libXinerama来完成它。肯定地指出我在正确的方向,谢谢。 – 2012-07-26 15:00:28