如何通过 bash 向程序发送快捷方式?
How to send a shortcut by bash to a program?
我想将刷新标签页的快捷方式发送到 Firefox。
我有:
- 我有一个 Linux,带有工作终端、Firefox 并安装了 xdotool
我发现/尝试过的:
在活动工作区上按键盘上的 F5 刷新活动 Firefox 上的活动选项卡
在键盘上按 Ctrl + R 也会在活动工作区刷新活动 Firefox 上的活动选项卡
资料来源:https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly?redirectslug=Keyboard+shortcuts&redirectlocale=en-US
它应该能够通过 xdotool 将 F5 或 Ctrl + R 发送到活动工作区上活动 Firefox 的活动选项卡
我在终端上尝试了什么(没有收到错误消息,它在寻找我,就像我没有真正重新加载网页一样)。它可以将终端的输出发送到终端而不是 firefox。:
xdotool key F5
xdotool key Ctrl + R
问题:
- 如何通过终端在活动工作区的活动 Firefox 活动选项卡上执行此操作?
- 如何在工作区 2 上执行此操作 运行在工作区 1 上的活动 Firefox 上为活动选项卡设置终端?
备注和新知识:
现在我找到了以下内容,它能够从 Debian 上的 Firefox 浏览器重新加载活动的标签页(不知道它也适用于其他浏览器)
目前还不知道它可以在一个或多个工作区的多个浏览器上运行,也不知道如何将它用于一个特定的工作区,比如 运行 这个在终端上或 bash 在工作区 2 上,并将其用于工作区 1 上的一个或多个 Firefox。
xdotool search --onlyvisible --classname Navigator windowactivate --sync key F5
现在我稍微更改了 MarcoLucidi 的代码。现在它重新加载一个活动选项卡(可以在工作区 1 上的活动浏览器上)。我明天会测试一下。请参阅以下内容:
xdotool key --window "$(xdotool search --classname Navigator | head -1)" F5
通过 bash 将 F5 发送到浏览器的示例,用于重新加载页面:
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync key F5
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync keyup F5
通过 bash 将 Ctrl+F5 发送到浏览器的示例,用于重新加载缓存和页面:
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync key Ctrl+F5
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync keyup Ctrl
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync keyup F5
备注:
keyup 稍微修复了 buggy xdotool。
现在在错误跟踪器上发现了错误:
发现错误原因如下:
“xdotool 似乎不起作用的事实可能与检测和丢弃合成事件的应用程序有关:
Sending keystrokes to a specific window uses a different API than simply typing to the active window.
[...]
Many programs observe this flag and reject these events."
来源:Automatic web-page refresh using xdotool - not sending key after window focus
找到以下解决方案:
“考虑到这一点,我能够使用下面的一系列命令让它工作。这会重新加载 Chromium 和 Firefox。
cwid=$(xdotool getwindowfocus) # Save the current window
twid=$(xdotool search --name somename)
xdotool windowactivate $twid
sleep 0.1 # The key event might be sent before the window has been fully activated
xdotool key --window $twid F5
xdotool windowactivate $cwid # Done, now go back to where we were
”
资料来源:Automatic web-page refresh using xdotool - not sending key after window focus
我想将刷新标签页的快捷方式发送到 Firefox。
我有:
- 我有一个 Linux,带有工作终端、Firefox 并安装了 xdotool
我发现/尝试过的:
在活动工作区上按键盘上的 F5 刷新活动 Firefox 上的活动选项卡
在键盘上按 Ctrl + R 也会在活动工作区刷新活动 Firefox 上的活动选项卡 资料来源:https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly?redirectslug=Keyboard+shortcuts&redirectlocale=en-US
它应该能够通过 xdotool 将 F5 或 Ctrl + R 发送到活动工作区上活动 Firefox 的活动选项卡
我在终端上尝试了什么(没有收到错误消息,它在寻找我,就像我没有真正重新加载网页一样)。它可以将终端的输出发送到终端而不是 firefox。:
xdotool key F5
xdotool key Ctrl + R
问题:
- 如何通过终端在活动工作区的活动 Firefox 活动选项卡上执行此操作?
- 如何在工作区 2 上执行此操作 运行在工作区 1 上的活动 Firefox 上为活动选项卡设置终端?
备注和新知识:
现在我找到了以下内容,它能够从 Debian 上的 Firefox 浏览器重新加载活动的标签页(不知道它也适用于其他浏览器)
目前还不知道它可以在一个或多个工作区的多个浏览器上运行,也不知道如何将它用于一个特定的工作区,比如 运行 这个在终端上或 bash 在工作区 2 上,并将其用于工作区 1 上的一个或多个 Firefox。
xdotool search --onlyvisible --classname Navigator windowactivate --sync key F5
现在我稍微更改了 MarcoLucidi 的代码。现在它重新加载一个活动选项卡(可以在工作区 1 上的活动浏览器上)。我明天会测试一下。请参阅以下内容:
xdotool key --window "$(xdotool search --classname Navigator | head -1)" F5
通过 bash 将 F5 发送到浏览器的示例,用于重新加载页面:
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync key F5
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync keyup F5
通过 bash 将 Ctrl+F5 发送到浏览器的示例,用于重新加载缓存和页面:
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync key Ctrl+F5
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync keyup Ctrl
xdotool sleep 0.5 search --onlyvisible --classname Navigator windowactivate --sync keyup F5
备注: keyup 稍微修复了 buggy xdotool。
现在在错误跟踪器上发现了错误:
发现错误原因如下:
“xdotool 似乎不起作用的事实可能与检测和丢弃合成事件的应用程序有关:
Sending keystrokes to a specific window uses a different API than simply typing to the active window.
[...]
Many programs observe this flag and reject these events."
来源:Automatic web-page refresh using xdotool - not sending key after window focus
找到以下解决方案:
“考虑到这一点,我能够使用下面的一系列命令让它工作。这会重新加载 Chromium 和 Firefox。
cwid=$(xdotool getwindowfocus) # Save the current window
twid=$(xdotool search --name somename)
xdotool windowactivate $twid
sleep 0.1 # The key event might be sent before the window has been fully activated
xdotool key --window $twid F5
xdotool windowactivate $cwid # Done, now go back to where we were
” 资料来源:Automatic web-page refresh using xdotool - not sending key after window focus