如何为自定义 nemo 操作添加键盘快捷键?

Posted

技术标签:

【中文标题】如何为自定义 nemo 操作添加键盘快捷键?【英文标题】:How to add keyboard shortcut for custom nemo action? 【发布时间】:2016-12-29 13:46:04 【问题描述】:

我有一个自定义 nemo 操作,如下所述: https://wiki.archlinux.org/index.php/Nemo#Nemo_Actions

如何为此操作添加快捷方式?

(如果可以在~/.gnome2/accels/nemo 中添加一行,那么我还有一个额外的问题是,在我的系统上,这个文件是在每次重新启动时自动生成的,所以在这里编辑一些东西没有帮助。我有 Cinnamon 3.2.7和 nemo 3.2.2.)

有什么建议吗?提前致谢! :)

【问题讨论】:

【参考方案1】:

尼莫行动

首先,您应该将myaction.nemo_action 放在~/.local/share/nemo/actions/ 下。

然后,要进行击键,请在您想要的字母前面加上下划线 _。例如在Hello _Shortcut 中,s 是关键。所以你按右键然后s

下面是我使用 Atom 打开文件和目录的操作示例:

# Custom action for Nemo File Manager for Cinnamon.
# Adds right-click open file/files or directory with Atom.
# Place it under: ~/.local/share/nemo/actions/atom.nemo_action
# For more info: https://github.com/linuxmint/nemo/blob/master/files/usr/share/nemo/actions/sample.nemo_action

[Nemo Action]
Active=true
Name=Open in _Atom
Comment=Open %F in Atom
Exec=atom %F
Icon-Name=atom
Selection=any
Extensions=any;
Dependencies=atom;
Quote=double

全局快捷方式

如果您想要一个全局快捷方式,您应该使用 System settings 下的 Cinnamon Keyboard 设置,转到第二个选项卡并添加您的自定义快捷方式。 或者,如果您希望对 CLI 进行更多控制,您可以使用 dconf。比如下面的配置会添加快捷方式Shift><Alt>a

/org/cinnamon/desktop/keybindings/custom-keybindings/custom0/name
  'Open Atom'
/org/cinnamon/desktop/keybindings/custom-keybindings/custom0/command
  'atom'
/org/cinnamon/desktop/keybindings/custom-keybindings/custom0/binding
  ['<Shift><Alt>a']
/org/cinnamon/desktop/keybindings/custom-list
  ['custom0']

【讨论】:

有什么方法不需要额外的右键单击和菜单导航?我不想只是快速地在菜单中找到该项目 - 那不是很有用。相反,我想选择文件,然后只需按下键盘快捷键,就好像我右键单击并单击了操作一样。这可能吗?【参考方案2】:

我试图回复 Duncan Marshall,但帖子最终出现在主线程中。是的,这是可能的。您的文件 ~/.gnome2/accels/nemo 可以包含如下一行,当按下 F4 时,它将执行一个名为 edit.sh 的脚本文件。脚本文件必须位于此特殊路径 (~/.local/share/nemo/scripts) 中,并且必须通过用户界面>编辑>首选项>插件>脚本中的复选框启用。我也无法指定脚本路径,例如 ~/... 而不是 /home/username... 当 accels/nemo 文件中的语法不正确时,nemo 会在不正确的行前面加上 ;它还将删除行尾的键码,它还喜欢在 accels 文件中使用行。当键码已在另一行中使用时,我也会关闭一行。所以要做到这一点再困难不过了。

(gtk_accel_path "<Actions>/ScriptsGroup/script_file:\\s\\s\\shome\\sUSERNAME\\s.local\\sshare\\snemo\\sscripts\\sedit.sh" "F4")

脚本文件可能如下所示

#!/bin/bash
export FILETOEDIT="$1"
FILEOWNER=$(stat -c %U "$1")
if [ "$FILEOWNER" = "$USER" ]; then
  subl "$1"
else
  sudo xed -w "$FILETOEDIT"
fi

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何为自定义 nemo 操作添加键盘快捷键?的主要内容,如果未能解决你的问题,请参考以下文章

如何为不同的键盘布局使用默认快捷键?

如何为 OSX 菜单额外启用复制和粘贴

如何为快捷键实现键盘处理程序 cefSharp

如何为visual studio更改ctrl + space

如何为Notepad++增加行删除快捷键

在LINUX如何用键盘复制,粘贴啊、