我有 3 台显示器,一大两小。
当我启动时cssh
,xterm 窗口覆盖所有 3 个显示器。如果xterm
窗口不与监视器边界重叠,那就没问题了。但不幸的是,我得到的基本上是xterm
窗口,其中一半在监视器 1 上,另一半在监视器 2 上。
我想限制 css 仅使用一台显示器。
我正在使用openbox
窗口管理器,并尝试将以下内容添加到我的xml
配置中:
<application title="CSSH: *">
<focus>yes</focus>
<decor>yes</decor>
<position>
<monitor>2</monitor>
</position>
</application>
使用 xml 配置,我可以更改诸如 之类的详细信息<decor>
,但<monitor>2</monitor>
没有效果。
有没有办法告诉cssh
只使用监视器2
?
答案1
不确定它如何/是否与 XML 文件配合在一起,但您应该能够在主目录中使用 .csshrc 文件并结合一些配置选项来完成您的需要。从我找到的 cssh(1) 手册页中这个网站:
screen_reserve_top = 0
screen_reserve_bottom = 60
screen_reserve_left = 0
screen_reserve_right = 0
Number of pixels from the screen side to reserve when calculating screen geometry for tiling.
Setting this to something like 50 will help keep cssh from positioning windows over your window
manager's menu bar if it draws one at that side of the screen.
因此,如果您将“screen_reserve_right”设置为左侧两个显示器的组合宽度,则终端应仅限于最右侧的显示器。如果您使用“screen_reserve_left”和“screen_reserve_right”,您应该能够将其降级到中央显示器,而“screen_reserve_left”应该允许您将其降级到最左侧的显示器。如果您已经经历过这种情况,但认为这可能值得一试,我深表歉意。
答案2
有几件事需要检查。这里列出了一些。
您的窗口管理器是否支持多屏幕。
它们都适用于多屏幕,但并非全部支持多屏幕功能,例如最大化到当前屏幕。 (我不知道 Openbox 是否有此支持)。
有些程序会坚持设置自己的位置和几何形状。
X11 有几个应用程序可以使用的坚持级别。窗口管理器可以选择尊重任何级别(全部、部分、无)。有些窗口管理器是可配置的,有些是每个应用程序可配置的(因为大多数应用程序建议良好的值,但有些则不然)。
一个例子
我使用 KDE Plasma。我按照我喜欢的方式配置了它。它适用于大多数应用程序。然后,我为几个需要它的应用程序设置了覆盖:
- 我对某些应用程序有不同的标题栏颜色。
- 忽略另一个请求的几何图形(我怀疑这可能有用)。
- 在桌面 x 上打开另一个。在屏幕 y 上打开另一个。
- 网络浏览器的最小尺寸覆盖(这样我可以使其更小,并轻松在小屏幕上测试网站)。
- 防止焦点窃取,防止另一个令人讨厌的应用程序不断抢占键盘焦点。
- ETC。
答案3
我没有 3 个不同尺寸的显示器,但有 2 个相同的显示器,当我请求打开太多窗口而它们不适合单个显示器时,我可以重现该问题,例如 4 个:
cssh $(whoami)@localhost $(whoami)@localhost $(whoami)@localhost $(whoami)@localhost
我尝试了 Openbox 和 Fluxbox,我认为它们的行为应该相当相似,我发现在这两种情况下,cssh
只有当应用程序内平铺被禁用时,所有 xterm 子窗口才会放置在窗口管理器配置中请求的监视器上-g
:
cssh $(whoami)@localhost $(whoami)@localhost $(whoami)@localhost $(whoami)@localhost -g
-g
描述于man cssh
:
--tile, -g
Toggle window tiling (overriding the config file).
您可以在 ~/.clusterssh/config 中永久禁用平铺:
window_tiling=no
如果window_tiling
启用(这是默认选项),您可以看到所有 xterm 窗口在请求的监视器上显示一段时间,但它们很快就会重新排列并分布在监视器上。我认为这是window_tiling
应该做的,但它工作得不够正确,无法处理监视器边界。