如何为新浏览器窗口指定几何图形(例如1280x720)?

问题描述 投票:2回答:2

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 applicationman xdotool的阅读:

这将在单击它以选择后调整窗口大小:

xdotool selectwindow windowsize 1280 720

启动指定像素尺寸的浏览器窗口有什么更简单或更清晰的东西吗?

linux shell browser x11
2个回答
4
投票

我不知道你是否可以启动具有指定大小的网络浏览器,但你可以使用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`

1
投票

如上所列=> https://peter.sh/experiments/chromium-command-line-switches/

设置初始窗口大小。提供格式为“800,600”的字符串。 ↪

© www.soinside.com 2019 - 2024. All rights reserved.