我希望使用 shell 命令以特定大小和屏幕位置打开 Firefox 窗口,例如:
firefox myfile.html size 800x600 location bottom-left
有这样的命令吗?
答案1
您可以使用名为的工具xdotool
来控制窗口的大小和位置。不仅如此,您bash
使用编写的任何脚本xdotool
都可以设置为使用完全最大化的窗口,并且可以通过操作mousemove
和click
命令来编写脚本来设置窗口大小和 x:y 坐标。
查找窗口 ID:
xdotool search --onlyvisible --name firefox
设置窗口大小
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
移动窗口
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
例如,如果 Firefox 的窗口 ID 是 123,您将执行以下操作:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
左下角的位置必须根据您的屏幕分辨率来确定。
答案2
据我所知,这是不可能的,因为 Firefox 不接受控制窗口的命令。这也是(主要)窗口管理器的责任,所以我怀疑是否会有参数来做到这一点。但是,您可以使用以下命令控制窗口控制面板,但这会有点困难:
#!/usr/bin/env bash
firefox -new-instance -new-window "http://www.reddit.org" &
# Process ID of the process we just launched
PID=$!
# Window ID of the process...pray that there's
# only one window! Otherwise this might break.
# We also need to wait for the process to spawn
# a window.
while [ "$WID" == "" ]; do
WID=$(wmctrl -lp | grep $PID | cut "-d " -f1)
done
# Set the size and location of the window
# See man wmctrl for more info
wmctrl -i -r $WID -e 0,50,50,250,250
可能有更聪明的方法来做到这一点,并且与 Firefox 存在一些互操作性问题(例如,没有其他实例正在运行),但它应该可以帮助您继续。
答案3
这并不能解决位置问题,但至少你可以设置尺寸:
firefox -width 200 -height 500
答案4
我一直这样做。不过,我使用 DevilsPie2,因为它更强大。它使用LUA脚本语言,这不是很困难。
这是我的 Thunderbird lua 脚本,我想在它打开时在最左边的显示器(笔记本电脑屏幕)上打开它:
if (get_window_name()=="Mozilla Thunderbird") then
pin_window()
set_window_geometry( 50, 10, 1220, 780 )
end
where 50 = X coordinate (for upper-left corner of the window)
10 = Y coordinate ( " " )
1220 = window width
780 = window height
要进行此设置,您可以在主配置中(在类似 Ubuntu 的发行版上)创建一个名为 Devilspie2 的目录,例如 /home/$USERNAME/.config/devilspie2
对于 Thunderbird,我创建了 Thunderbird.lua,尽管文件名并不重要。我为每个应用程序都有不同的文件名,但如果您愿意,您可以将所有内容放入一个脚本文件中。设置 Devilspie2 在登录时自动启动,例如 /home/$USERNAME/.config/autostart/devilspie2.desktop
下面是一个关于 lua 脚本可用的各种选项的好页面的链接:https://github.com/gusnan/devilspie2/blob/master/README
请注意:脚本不必是可执行的。我的是664,工作正常。我控制的其他一些程序包括 openconnect、pidgin、RecordMyDesktop、timeshift、xeyes、xload 和 yad。我对它们使用 pin_window,以便它们出现在所有桌面上,以及取决于应用程序的其他命令。