Ubuntu Studio Linux 14.04.1 LTS
从Linux shell脚本,我想启动一个确切大小的浏览器窗口,例如作为自动录制截屏视频的步骤。
我的第一个想法是使用Xwindows -geometry
设置,这曾经是Xwindows中所有应用程序的共同点,并保存在Gnome options
#!/bin/bash -e
chromium-browser -geometry 1280x720 # ignores the spec
# firefox -geometry 1280x720 ignores the spec too
我在FreeBSD论坛中找到this post,也说firefox忽略了-geometry
设置。建议在启动时使用Javascript,如下所示:
% firefox javascript:%20resizeTo\(1280,720\)
在JS中调用window.resizeTo()。测试,也不起作用。来自MDN的链接页面指出,除了少数例外,这在Firefox 7后不起作用。
@helloV向我指出:Launch Google Chrome from the command line with specific window coordinates
这是关于位置不大小。尽管如此,通过它挖掘出来的这些想法也是行不通的
没有:
chromium-browser --window-size=800,600
chromium-browser --window-size="800,600"
chromium-browser --window-size=800x600
chromium-browser -window-size=800,600
chromium-browser -window-size=800x600
我们总是可以阅读Firefox Command Line Options page(提示:窗口大小不存在)或the Chrome switches source code,我们将在那里找到--window-size=w,h
,并在上面尝试过。
来自:setting the window dimensions of a running application和man xdotool
的阅读:
这将在单击它以选择后调整窗口大小:
xdotool selectwindow windowsize 1280 720
启动指定像素尺寸的浏览器窗口有什么更简单或更清晰的东西吗?
我不知道你是否可以启动具有指定大小的网络浏览器,但你可以使用wmctrl后重新调整它,但我猜它类似于xdotool
方法(没有点击)所以它可能不是你想要的。
E.g
#!/bin/sh
wid=`wmctrl -l | grep Firefox | grep "Stack Overflow" | cut -d " " -f 1`
wmctrl -i -r $wid -e 0,0,0,800,600 -b remove,maximized_vert,maximized_horz
如果你只有一个窗口:
wmctrl -r mozilla -e 0,0,0,800,600 -b remove,maximized_vert,maximized_horz
-e - >重力,左,上,宽度,高度
-r - > Id与-i
或窗口名称
-b - >取消最大化窗口,否则调整大小将无法正常工作
编辑
我认为你不能使用PID,因为例如使用firefox你只有一个PID,即使你有一个以上的窗口,但如果你确定不是这样的话你可以做这样的事情(我认为它)会工作):
PID=....
wid=`wmctrl -lp | grep " $PID " | cut -d " " -f 1`
wmctrl -i -r $wid -e 0,0,0,800,600 -b remove,maximized_vert,maximized_horz
wmctrl -lp
似乎按打开顺序列出窗口(真的不确定),所以你可以使用tail -n 1
来获取你正在寻找的PID的最后一个窗口。
wid=`wmctrl -lp | grep " $PID " | tail -n 1 | cut -d " " -f 1`
如上所列=> https://peter.sh/experiments/chromium-command-line-switches/
设置初始窗口大小。提供格式为“800,600”的字符串。 ↪