我正在处理的一个应用程序遇到了问题。基本上,我想让它全屏显示,但只在我的两个显示器中的一个上。我使用的是Nvidia显卡,运行Twinview将我的桌面扩展到两台显示器上。不幸的是,我尝试的所有东西都只看到一个大监视器。有没有办法真正了解每个显示器的分辨率?我不希望使用一大堆外部库,我已经在使用Xlib来管理窗口了,但是我还没有找到任何可以在Twinview之后看到的调用。
不幸的是,目前我几乎被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);希望这能帮助任何其他有类似问题的人,窗口管理器会很好地解决所有问题。
发布于 2012-07-26 04:54:32
xorg.conf中的这个选项应该可以做到这一点:
Option "NoTwinViewXineramaInfo"
此选项将禁用Xinerama信息。随着Xinerama信息的关闭,窗口管理器相信整个MetaMode就是屏幕,并将跨越两个显示器的所有内容。当你点击最大化你的应用程序将充满两个屏幕,对于一些应用程序这是可以的,对于其他的它是恼人的。我已经对它进行了两种方式的测试,并且更倾向于让窗口管理器知道有两种显示。
https://stackoverflow.com/questions/11658380
复制相似问题