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