我想在符合 EWMH 的窗口管理器中按下一个组合键,并在调整大小的 Chromium 窗口下方显示一个终端

我想在符合 EWMH 的窗口管理器中按下一个组合键,并在调整大小的 Chromium 窗口下方显示一个终端

这是一个看似有简单解决方案的事情,但一旦你开始研究 PyTile、Xnee 等,就会发现它相当耗时。

我知道,我应该只使用平铺窗口管理器等,但我想它可以在符合 EWMH 的窗口管理器(如 OpenBox)中完成,我只是希望有人已经有了一个可行的解决方案。

好的,所以我想在 OpenBox 会话(更准确地说是 Lubuntu LXDE)中按下一个组合键,并让我的终端出现在我当时调整大小的 Chromium 窗口下方(比如说 ~60% Chromium 和 ~40% 终端)。

答案1

我写了一个小脚本,将 Chromium 放在屏幕的 60%,启动一个终端,并将其放在 Chromium 下:

#!/bin/bash

screen_width=` wmctrl -d | awk '{print $9}' | cut -d x -f 1`
screen_height=`wmctrl -d | awk '{print $9}' | cut -d x -f 2`
titlebar=51
browser="Chromium"
terminal_cmd="xterm"

browser_height=$[$screen_height * 60 / 100 - $titlebar]
# unmaximize browser
wmctrl -b remove,maximized_vert,maximized_horz -r "$browser"
wmctrl -r "$browser" -e "0,0,0,$screen_width,$browser_height"

# start terminal and wait till its window has appeared
$terminal_cmd &
sleep 1

# put terminal under browser
terminal_top=$[$screen_height * 60 / 100 + $titlebar]
terminal_height=$[$screen_height * 40 / 100]
wmctrl -r :ACTIVE: -e "0,0,$terminal_top,$screen_width,$terminal_height"

您可以更改某些属性(例如使用的终端和浏览器,以及窗口标题栏的高度)。请注意,$browser是浏览器(窗口)标题(的一部分)(例如“Chromium”、“Google Chrome”或“Firefox”),不是启动浏览器的命令。

如果您不想让 Chromium 调整大小,那就有点棘手了,但可以通过获取窗口坐标来完成wmctrl -G -l

我不知道如何在 OpenBox 中分配键绑定,以及它是否在该 WM 中起作用,但至少当我在命令行上运行它时它在 Unity 中起作用。

相关内容