如何为 nautilus 脚本分配键盘快捷键?

Sum*_*ukh 10 nautilus shortcut-keys

我已经设置了一个Nautilus 脚本。我已经把脚本放进去了/home/sumeet/.local/share/nautilus/scripts,它确实出现在右键菜单中。并且也按预期工作。我只想为脚本分配一个快捷方式。


如何为我的 nautilus 脚本创建键盘快捷键?

上面问题中给出的答案针对特定版本并且已经完全过时,除了这个问题之外,我找不到关于该主题的任何其他内容。

Jac*_*ijm 6

如何做到

当您右键单击 nautilus 脚本的文件或文件夹时,所选文件将作为参数传递给脚本。在大多数情况下,通过以下方式:

import os
subject = os.getenv("NAUTILUS_SCRIPT_CURRENT_URI")
Run Code Online (Sandbox Code Playgroud)

...以最简单的形式使用python3。

如果您将其替换为:

import pyperclip

subprocess.call(["xdotool", "key", "Control_L+c"])
subject = pyperclip.paste()
Run Code Online (Sandbox Code Playgroud)

...当前选定的文件在脚本中用作参数

你需要什么

要使用此解决方案(16.04 及更高版本),您需要同时安装xdotoolpython3-pyperclip

sudo apt-get install python3-pyperclip xdotool
Run Code Online (Sandbox Code Playgroud)

完整的脚本,在评论中提到

然后变成:

sudo apt-get install python3-pyperclip xdotool
Run Code Online (Sandbox Code Playgroud)

添加这一个快捷键,可以将图标的所有目录选定一个。

将其添加到快捷键 (!)

添加快捷键、运行(使用 - 的脚本)xdotool命令以按下另一个组合键可能会很棘手。为防止两个组合键相互干扰,请使用:

/bin/bash -c "sleep 1 && python3 /path/to/script.py"
Run Code Online (Sandbox Code Playgroud)

解释

在选择文件时按下Ctrl+C时,文件路径将复制到剪贴板。我们正在模拟按键按下:

subprocess.call(["xdotool", "key", "Control_L+c"])
Run Code Online (Sandbox Code Playgroud)

pythonpyperclip模块只是生成路径,file://在使用时被删除pyperclip.paste()(这不会直接粘贴,而是使路径在脚本内可用)。