我创建了一个自定义键盘快捷键,<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
在终端中进行类似操作,它应该将鼠标指针传送到屏幕左上角附近。