问题标签 [xdotool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
738 浏览

linux - 使用 xdotool 刷新桌面

您好我正在尝试刷新我的桌面,使用 xdotool 模拟“F5”/“ctrl+R”按键。

我试过了,xdotool key F5但我得到了

并按 Enter 后:

然后我试过了

得到那个id,然后尝试:

它没有刷新我的页面。

问题:我可以做些什么来刷新我的桌面?顺便说一句,我使用的是 Ubuntu 16.04。谢谢

0 投票
0 回答
198 浏览

python - 发送命令以运行 Python 脚本

我有一个运行 openCV 来播放视频的 Python 脚本。如果用户按下键盘上的“c”按钮,OpenCV 将保存用户单击“c”按钮时显示的帧。

问题是,我想通过 bash 脚本自动保存它——这意味着,在某些时候,我希望我的 bash 脚本“模拟”被按下的“c”按钮,以便它可以捕捉到那个快照。

我的(肯定是非常非 Pythonic)的方法是制作一个使用xdotool. 这是它的样子:

它找到pidpython 文件,找到窗口 ID,并模拟按下的“c”按钮。

这不起作用。可能是因为我的 bash 是错误的......

无论如何,这样做的pythonic方式什么?(不处理套接字......请......)。或者,如果您能告诉我我的 bash 脚本出了什么问题,那也太好了。但我真的只是想知道以python方式执行此操作的正确方法。我什至不需要按下按钮,可以是我发送的任何东西。

谢谢

0 投票
3 回答
1320 浏览

linux - xdotool 类型需要很长时间并导致整个桌面冻结

我过去一直在使用xdotool type只是在快捷方式上使用xdotool type '¯\_(ツ)_/¯'. 这可行,但总是需要相当长的时间,并导致整个桌面冻结(完全,不仅仅是输入)几秒钟。不过并没有打扰到我。

现在我需要一种方法来从文件中读取内容,对其进行操作,然后将其输入。我想使用 xdotool 来完成这样的任务:

发布了mycommand大约 20 行 URL。一旦我运行了脚本,我的桌面(gnome3.26,archlinux)就完全冻结了。我通过 SSH 连接到机器杀死了 bash 进程(成功),但这对冻结状态没有任何作用。十分钟后它再次运行,命令确实运行了(如,xdotool 按预期正确键入了所有内容)但我不得不重新启动 X 服务器,因为我的鼠标不再工作了。

我需要一种自动键入的方法,xdotool type但没有这种冻结行为。最好的情况是一个工具,它几乎可以立即输入我通过的整个文本。我想到了一个解决方案xclip,然后只模拟粘贴和输入的按键,但我认为必须有一个更好的解决方案。

这个问题xdotool对我来说已经存在了大约两年(一直在 gnome + archlinux 上),但直到现在我才需要它只是耸耸肩。我猜这不仅仅是我使用的版本中的错误。只是为了完整性:

$ xdotool --version xdotool version 3.20160805.1

0 投票
1 回答
156 浏览

php - Linux Ubuntu 16.04 通过 http 请求远程点击

有没有什么方法可以执行远程点击,比如说 Android 设备,到当前的 linux 会话与简单的 HTTP 请求?

到目前为止,我已经设法让 Apache 与 PHP7 一起工作,并且 xdotool 通过在 Ubuntu 16.04 VM 上调用 shell 脚本来执行左键单击。问题是该脚本仅在从当前会话中调用时才有效,但如果从 php 脚本中调用则无效。

我的猜测是 Apache 服务器是由不同的用户在不同的会话中运行的?

我的项目的目标是创建一个 Android 应用程序,它将 HTTP 请求发送到 Linux 服务器,PHP 将在该服务器上处理请求并触发执行鼠标左键单击的 shell 脚本。除此之外,我很想从服务器获得简单的响应,它会告诉我点击是否成功。

/var/www/html 文件夹

click.php
文件权限:-rw-r--r-- 1 root root 69(日期)click.php

./scripts/click.sh
文件权限:-rwxrwxr-x 1 root root 28(日期)click.php
#!/bin/bash xdotool click 1

0 投票
1 回答
1218 浏览

keyboard - 映射两个以上键的键序列

我创建了一个脚本,它使用 xdotool 在特定的 firefox 容器中打开新选项卡。我需要映射三个键,例如ctrl+y+p打开个人容器,ctrl+y+b打开银行容器等等。我找不到可以让您映射两个以上键的工具。

有没有像我描述的那样?

非常感谢。

编辑:对于任何寻找答案的人,我找到了一种方法。我使用i3,所以我只是添加了一个通过按前两个键触发的模式,然后将“b”映射到命令+转义(退出模式)。

0 投票
1 回答
2266 浏览

linux - 键+鼠标同时单击(xdotool)

是否可以在linux中同时模拟击键("N")和鼠标点击?

xdotool在 fedora linux 发行版上使用

我没有发现任何与这种可能性有关的东西

稍后编辑:

我找到了以下解决方法。我发布它是因为有人可能有类似的问题。

即使没有在单击的同时按下该键,您也可以使用:

0 投票
1 回答
500 浏览

c++ - 在 fork() 和 execl() 调用后无法识别 C++ 命令 (Linux)

我正在尝试创建一个可以打开终端浏览器并浏览网站的程序。在调用子进程之前它工作正常。出现以下错误

“xdotool:未知命令:搜索 --onlyvisible --name 终端窗口激活 keydown Down”

我已经在一个单独的终端中测试了该命令,它确实有效,但在我的代码中没有得到识别。我觉得这可能与 execl 没有返回到 main 的事实有关,但我是编程新手,所以我不确定。

这是代码

0 投票
1 回答
1208 浏览

linux - 绑定到快捷键的 xdotool 命令不起作用

我非常喜欢 VIM,我想在任何地方都使用它的键绑定。有很多 IDE 插件可以模拟这个,但我想要更多,也许是 Minecraft 中的 VIM 键绑定?:D 或 VIM 键绑定无处不在,无需下载任何插件。

我注意到每个编辑器都实现了这个键:Home, End, Ctrl+ End, Ctrl+ Left, Ctrl+Backspace等等......

我将这些键用作构建块,并为 i3wm 提出了以下配置:

该代码段有效,但不是我想要的方式。如果我不使用--release代码根本不起作用,因为这个键不重复,所以不可能按住J并向下滚动。

这似乎是一个窗口焦点问题。出于某种原因,当我按下键绑定时,窗口会失去焦点几毫秒,然后再次成为焦点。这在 Firefox 的 Url Bar 中最为明显。我发现这个问题是几年前提出的,它建议在执行之前添加一秒钟的延迟xdotool,我可以使用它,但第二次会产生巨大的输入延迟。

我也尝试过其他窗口管理器和热键守护程序sxhkb,但一切都完全相同......

0 投票
3 回答
1841 浏览

bash - 如何通过脚本或 Shell 命令将焦点切换到 Gnome 终端选项卡

我目前正在编写一个脚本来在 gnome-terminal 中打开几个选项卡,并设置它们的标题。我可以打开多个选项卡,但我需要将焦点更改为这些选项卡(以编程方式),以便从我的脚本中设置它们的标题。

我交替使用 zsh 和 bash,所以任何 bash 命令都应该可以正常工作。我开始熟悉xdotooland wmctrl,但不确定将焦点切换到打开选项卡的命令组合。

我可以使用哪些命令从 gnome-terminal CLI “切换到下一个打开的选项卡”或“切换到选项卡N ”?

0 投票
1 回答
199 浏览

debugging - 在 gstreamer 中创建点文件时是否包含日志?

我试图了解如何从 gstreamer 日志创建点文件。当我生成 gstreamer 日志时,GST_DEBUG=4它会生成大量日志。同时当我查看gstreamer生成的dot文件时,它有关于管道创建的具体信息。不是创建管道后的日志信息,如播放暂停搜索...

我有一些问题:

  1. 与完整的日志文件相比,点文件中将包含哪些信息?
  2. 如果点文件中没有包含所有日志,那么我们如何使用 dotgraph(使用 graphviz 之类的工具)调试这些日志信息?