6

鉴于:

我在我的 Ubuntu 计算机上打开了带有[Firefox Page Title]页面的 Firefox。

这是我的命令:

xdotool search "[Firefox Page Title]" windowactivate --sync key --clearmodifiers ctrl+r

文档:

带有文档/示例的 xdotool 网站在这里

直接来自 xdotool 网站的示例:

# As of version 2.20100623, you can do this simpler version of above:
xdotool search "Mozilla Firefox" windowactivate --sync key --clearmodifiers ctrl+l

笔记:

我正在使用 xdotool 版本 2.20110530.1。

该命令正确地将我的屏幕聚焦到我选择的任何窗口标题,但它不会将 ctrl+r 键发送到窗口,因为网站不会刷新。我没有收到来自命令的错误消息。(Firefox 中的刷新快捷键是 ctrl+r

通缉行为:

该命令有望(当它工作时)应用于我的服务器计算机上 24/7 开放的 Web 服务器统计页面,我希望它自动刷新页面,这样我就可以在没有我的情况下查看我的网站的新流量做任何事。

编辑:我愿意使用其他可以提供此功能的应用程序,如果您知道其他简单/相似的东西,请提供它作为答案!如果我不能让这个工作,我将默认为下一个最好的事情。

4

7 回答 7

12

我试图将击键发送到应用程序,并且我还得出结论,xdotool 不能按描述的那样工作。我最终使用xvkbd来做同样的事情。

对于您的示例,以下命令刷新 Firefox 中的页面:

xvkbd -window Firefox -text "\Cr"
于 2013-03-23T16:49:51.543 回答
4

在尝试了几种不同的方法让 xdotool 正常工作后,我倾向于认为 xdotool 本身就是问题所在。这是我尝试过的,没有奏效。

  • 从终端运行命令(和变体 - 删除/添加参数)。
  • 从 SH 脚本运行命令(和变体 - 删除/添加参数)。
  • 在 F5 和 ctrl+r 键之间切换,因为它们都应该刷新 Firefox 页面。
  • 尝试其他参数,例如:
    • --window 设置要发送密钥的窗口。
    • --delay 在发送键之前添加延迟,在窗口聚焦之后。
    • 在窗口聚焦之后,在发送密钥之前添加睡眠。

我还在脚本中尝试了这些命令,正如 xdotool 的首页所推荐的那样,尽管它声明这是“旧”版本,因为它被分成多个命令。“新”版本是我之前尝试执行的版本,是一个命令(见问题)。

WID=`xdotool search "Firefox Page Title"`
xdotool windowactivate --sync $WID
xdotool key --clearmodifiers ctrl+r

上述所有尝试始终正确聚焦到我想要的窗口,但无论是 F5 还是 ctrl+r,它都不会发送密钥。

但是,以下工作正常:

xdotool selectwindow key ctrl+r

或者

xdotool selectwindow key F5

selectwindow命令在执行时会将光标变为矩形选择工具,此时您可以选择要聚焦的窗口,在这种情况下,可以选择将 ctrl+r 或 F5 键发送到哪个窗口。不幸的是,这不是我想要的,因为它需要用户输入才能正常工作。

最终解决方案:

我的解决方案(因为我试图使用 xdotool 不断刷新网页)是使用ReloadEvery Firefox 插件,它会在您选择的任何时间间隔内刷新您设置的任何页面。它旨在成为Opera浏览器内置自动页面刷新功能的翻版,到目前为止,它运行良好。

对于那些使用 Chrome 并正在寻找类似解决方案的人来说,还有很多附加组件可供您使用。https://chrome.google.com/webstore/search/auto%20refresh

于 2012-08-20T13:27:09.797 回答
4
xdotool search --onlyvisible --classname Navigator windowactivate --sync key F5

运行拱 linux

于 2017-12-07T21:31:03.787 回答
2

xdotool似乎不起作用的事实可能与检测和丢弃合成事件的应用程序有关:

将击键发送到特定窗口使用不同的 API,而不是简单地键入活动窗口。

[...]

许多程序观察到这个标志并拒绝这些事件。

考虑到这一点,我能够使其与下面的一系列命令一起工作。这会重新加载 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
于 2016-10-29T08:44:42.763 回答
1

我有键绑定 win + shift + s 来获取窗口 id 使用

xdotool getactivewindow getwindowgeometry

并 win + s 刷新

xdotool key --window savedWindowID ctrl+r
于 2014-04-23T06:31:31.840 回答
1

以下 xdotool 命令非常适合我(切换到第一个找到的 Firefox 窗口,刷新当前选项卡):

xdotool search "Navigator" windowactivate key 'ctrl+r'

在 xdotool 3.20140217.1 上运行 Ubuntu 14.04.1

于 2014-11-12T15:42:55.333 回答
1

对我来说,以下工作:

xdotool search --onlyvisible --class Firefox key F5

{ 
   xdotool search --onlyvisible --class Firefox windowfocus
   sleep 0.1
   xdotool key ctrl+r
}

xdotool search --onlyvisible --class Firefox key ctrl+r

xdotool search --onlyvisible --class Firefox windowfocus key ctrl+r

不工作。

因此,使用带修饰符的组合键似乎需要一点延迟,至少在 Firefox 中是这样(但是,我可以将 ctrl-keys 发送到 Emacs 而不会出现此类问题)。

于 2017-02-03T08:26:14.293 回答