shell Firefox从命令行刷新当前选项卡

s4n0splo  于 2023-01-26  发布在  Shell
关注(0)|答案(5)|浏览(138)

我想从命令行触发Firefox上的选项卡刷新。我正在使用一个Web应用程序,该应用程序在编译后刷新。我从IDE中的命令触发编译。它不是固定的url,也不能从IDE中打开的文件派生。因此,当前打开的url在活动选项卡中。
问题是,我在一个没有Xinerama支持的双头框中,这意味着我不能alt+tab到Firefox,相反,我必须将鼠标移动到另一个屏幕,单击Firefox,然后Ctrl+R。
我尝试了一些类似bookmarklet的东西,比如DISPLAY=':0.1' firefox -remote 'openurl(javascript:alert(1);)',但是FF不能运行。
有什么想法吗?

daupos2t

daupos2t1#

您可以使用xdotool实现自动化。在Ubuntu上安装

sudo aptitude install xdotool

然后你可以搜索窗口并发送按键或鼠标事件,完整的文档请参见man xdotool。我在Ubuntu 16.04 LTS开发期间使用了以下脚本:

WID=`xdotool search --name "Mozilla Firefox" | head -1`
xdotool windowactivate $WID
xdotool key F5

注意:在旧版本中,例如Ubuntu 14.04,标志是--title而不是--name
另请参见xdotool project site

clj7thdc

clj7thdc2#

下面是@geekQ脚本的更新版本,它会将焦点返回到之前的程序(但是,firefox窗口仍然会被拉到顶部)。

#!/bin/bash

CURRENT_WID=$(xdotool getwindowfocus)

WID=$(xdotool search --name "Mozilla Firefox")
xdotool windowactivate $WID
xdotool key F5

xdotool windowactivate $CURRENT_WID
gmxoilav

gmxoilav3#

对于OS X,您可以使用以下几行applescript来完成此操作:

activate application "Firefox"
tell application "System Events" to keystroke "r" using command down
fquxozlt

fquxozlt4#

使用手册页中的--window选项,它实际上是一行程序,而且速度更快:

#!/bin/bash

xdotool key --window $(xdotool search --name "Mozilla Firefox") F5

编辑:
..甚至 * 更好地使用inotify * 来监视文件更改:

# refresher - send an F5 to a selected window on file change events
#!/bin/bash

project_root=$(pwd)
excluded=".*\.(swp|log|.*~)"
wid=$(xdotool selectwindow)
# ..waiting for user to select browser window..

while inotifywait --quiet --event modify --recursive --exclude "$excluded" $project_root
do
  xdotool key --window $wid F5
done
guz6ccqo

guz6ccqo5#

IOPUS提供了一个很棒的工具IMACROS,你可以为浏览器编写宏,然后从脚本中调用宏。

相关问题