我正在处理我正在处理的应用程序。基本上我希望它全屏,但只在我的两个显示器之一。我正在使用Nvidia显卡并运行Twinview将我的桌面扩展到两个显示器上。不幸的是,我尝试的只有一台大型显示器。有没有办法真正了解每个监视器的分辨率?我宁愿不必使用一堆外部库,我已经使用Xlib来管理Windows但我还没有找到任何会看到过去的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);
希望这可以帮助其他有类似问题的人,窗口管理员可以很好地处理所有事情。
答案 0 :(得分:1)
xorg.conf中的这个选项应该这样做:
Option "NoTwinViewXineramaInfo"
此选项可关闭Xinerama Info。随着窗户的Xinerama信息 经理认为整个MetaMode都是屏幕并且会跨越 两台显示器的一切。当您单击最大化您的 应用程序将填充两个屏幕,对于某些应用程序,这是好的 对于其他人来说这很烦人。我已经对它进行了两种测试,并且更愿意允许 窗口管理器知道有两个显示器。