xdotool 无法与 Gnome 键盘快捷键配合使用

xdotool 无法与 Gnome 键盘快捷键配合使用

我创建了一个自定义键盘快捷键,<ctrl> + <alt> + <shift> + T它将调用命令xdotool key --clearmodifiers ctrl+F10 e;但是,它不起作用。我知道快捷方式被正确识别,因为如果我将命令更改为gnome-terminal,终端窗口将按预期打开。因此,出于某种原因,xdotool 并没有作为命令运行。我知道该命令可以独立运行,因为如果我自己在终端中运行该命令,它就可以正常工作。

这样做的目的是我想要在当前 nautilus 工作目录中打开一个终端,您可以通过按然后ctrl_F10按来完成e,但我想使用 gnome 键盘快捷键中的另一个键盘快捷键来实现。

答案1

• 首先请注意,要使Ctrl+F10起作用,文件窗格必须处于活动状态。例如,对我来说,启动文件时快捷方式不起作用,因为键盘焦点在左侧栏中。因此,在测试时,请确保文件窗格处于焦点状态。

• 对我来说,更可靠的方法-clearmodifiers是明确清除您分配给命令的快捷键。相反,我宁愿插入keyup命令,如下所示:

xdotool keyup ctrl+alt+shift+t key ctrl+F10 e

有了这两项预防措施,我相信它应该可以起作用,尽管有时需要插入一点延迟:

xdotool keyup ctrl+alt+shift+t sleep 0.2 key ctrl+F10 e

试验命令的值sleep:也许它必须长于 0.2 秒。

一些相关评论

你问的是,什么可以被视为XY问题在这里。你真正的问题,X,如何在 Nautilus 中为“在此处打开终端”分配自定义快捷方式。然而你问了一个问题,即你认为解决问题的最佳方案是什么X

不幸的是,这样做的方法系统性地被破坏。在 Ubuntu 20.04 中的文件上,您仍然可以方便地使用文件~/.config/nautilus/scripts-accels,在其中可以定义 nautilus 脚本的快捷方式。这种方法在 Ubuntu 20.10 中也不再起作用。所以我鼓励你继续探索这个选项。但是,你最好使用一个脚本,在nautilus激活xdotool命令之前先检查当前窗口是否可用。Gnome 快捷方式定义是全局的,当你使用不同的应用程序时也会触发。

答案2

检查您的 Ubuntu 会话是 Xorg 还是 Wayland。 像 这样的工具xdotool与 Wayland 不兼容,并且 Wayland 在较新的 Ubuntu 版本中成为默认设置,因此它会在升级时切换。

$ echo $XDG_SESSION_TYPE 
wayland

您可以通过编辑配置文件切换回 Xorg:

$ sudo gedit /etc/gdm3/custom.conf

取消注释(即#从开头删除)以下行:

#WaylandEnable=false

保存文件,重新启动并尝试xdotool mousemove 50 20在终端中进行类似操作,它应该将鼠标指针传送到屏幕左上角附近。

相关内容