我有多个 Firefox 窗口,我想使用当前窗口管理器的快捷方式将当前活动 Firefox 窗口的大小调整为特定大小和位置。
xdotool命令如何实现这一点?
编辑:例如,我有一个名为的窗口管理器dwm
,并且映射了该窗口管理器的一些快捷方式,然后我可以在当前 Firefox 的窗口上按组合键。
仍将焦点放在 Firefox 窗口上。
也许我们可以使用组合键映射来调用 shell 脚本。
答案1
如果要调整具有键盘焦点的 Firefox 窗口的大小:
#! /bin/sh
fw=`xdotool getwindowfocus`
for nw in `xdotool search --classname Navigator`; do
test "$fw" = "$nw" && xdotool windowsize "$fw" 800 600
done
请注意,如果您在终端中输入脚本,这将不起作用;在这种情况下,终端才是焦点。如果您的窗口管理器支持,您可以使用getactivewindow
代替。getwindowfocus
_NET_ACTIVE_WINDOW
如果您想调整顶部第一个 Firefox 窗口的大小:
nw=`xdotool search --classname Navigator | tail -1`
test "$nw" && xdotool windowsize "$nw" 800 600
笔记
如果您正在使用dwm
,那么请考虑这一点(来自 dwm 的主页):
dwm 是通过编辑其源代码进行定制的,这使得它非常快速和安全 -它不处理任何编译时未知的输入数据,但从根窗口名称读取的窗口标题和状态文本除外。除了 C 之外,你不必学习 Lua/sh/ruby 或一些奇怪的配置文件格式(如 X 资源文件)来根据你的需要定制它:你只需要学习 C(至少为了编辑头文件)文件)。
由于dwm是通过编辑源代码来定制的,因此将其制作成二进制包是没有意义的。这使得其用户群规模较小且精英化。新手不会问愚蠢的问题。
这意味着调用外部脚本根本不起作用。您应该C
通过修改 的dwm
源代码来调整窗口大小,检查它们的类等。