Linux openbox赢得';t设置正确的窗口大小

Linux openbox赢得';t设置正确的窗口大小,linux,ubuntu,window-managers,Linux,Ubuntu,Window Managers,我要做的应该是相对简单的。我想设置一个由两个(或可选的三个)监视器组成的显示器。其中两个应该显示Chromium浏览器窗口,第三个(如果存在)将显示一些不相关的内容。所有显示器均设置为1280x1024分辨率,浏览器窗口应拉伸,使其总高度为2048像素(上半部分在显示器上绘制,下半部分在显示器上绘制)。我尝试使用名为openbox的窗口管理器设置正确的窗口坐标和大小。我将以下部分放在其配置文件rc.xml中: <applications> <application nam

我要做的应该是相对简单的。我想设置一个由两个(或可选的三个)监视器组成的显示器。其中两个应该显示Chromium浏览器窗口,第三个(如果存在)将显示一些不相关的内容。所有显示器均设置为1280x1024分辨率,浏览器窗口应拉伸,使其总高度为2048像素(上半部分在显示器上绘制,下半部分在显示器上绘制)。我尝试使用名为openbox的窗口管理器设置正确的窗口坐标和大小。我将以下部分放在其配置文件rc.xml中:

<applications>
   <application name="*">
    <decor>no</decor>
    <position>
       <x>0</x>
       <y>0</y>
    <monitor>...</monitor> //appropriate number
    </position>
    <size> 
       <width>1280</width>
       <height>2048</height>
    </size>
   </application>
</applications>

不
0
0
... //适当数量
1280
2048
虽然窗口位置正确(从顶部监视器的左上角开始),但其大小不正确。出于某种原因,浏览器窗口的大小被设置为1280x1024而不是1280x2048,以便它仅完全填充顶部监视器,而底部监视器保持为空。下面是用于运行Chromium的实际命令行:

chromium-browser --incognito --app=<MY URL>
chromium浏览器——匿名——应用程序=

如您所见,它缺少
--window position
--window size
参数,因为openbox应该为我设置这两个值,而后者的设置不正确。基本上,openbox似乎无法处理大于单个监视器高度的窗口高度。只要我将rc.xml中的窗口高度设置为小于或等于1024的任何值,一切都很好,但每当我尝试一个大于该值的值时,它就会缩小到1024,整个窗口占据顶部监视器,就像openbox不明白它应该在下面的监视器上绘制窗口的其余部分一样。当我尝试运行另一个GUI应用程序(gedit)时,效果是相同的,因此这似乎是一个一般行为,而不是仅仅由铬引起的问题。我测试的操作系统是Ubuntu 14.04 64位,浏览器是Chromium 41。欢迎提供任何帮助。

AFAIK,Openbox rc.xml中的窗口大小声明无效。xml可用于设置默认窗口原点(左上角)位置,以及基于每个ap的各种其他内容,但窗口大小不是这些内容之一。在脚本中使用wmctrl来调整窗口的大小。如果它需要适应监视器,请查看xrandr以获取rez的数字,按照您的意愿对其进行算术处理,然后使用wmctrl点击它们。不确定是否要在多个监视器上分散窗口,但这种方法适用于传统的硬件设置。

一旦窗口运行,您可以手动将其拉伸到所需的大小?不幸的是,这不是一种选择。最终用户不应该手动操作窗口大小。一旦应用程序启动,它的窗口必须具有适当的大小,无需进一步调整。这不是我问题的重点。我试图确保你想要的结果是可能的(即,X的设置是正确的,openbox支持它)。是的,openbox能够做到这一点。我能够定义一个组合键,按下该组合键时,窗口会按预期调整大小。我使用“keybind”选项和名为“MoveResizeTo”的预定义操作(这里不需要描述配置文件的确切语法)来实现这一点。然而,这种解决方案是不可接受的,因为它需要用户交互。出于某种原因,openbox“更清楚”在应用程序启动时选择的窗口大小,并忽略将窗口高度设置为大于单个监视器高度的值的请求。这对于openbox来说并不是完全不合理的事情,但在您的情况下,这肯定很烦人。您可以通过openbox钩子或其他方法了解如何编写对该resize函数的调用的脚本,作为一种解决方法。除此之外我不知道。