【问题标题】:How to add keyboard shortcut for custom nemo action?如何为自定义 nemo 操作添加键盘快捷键?
【发布时间】: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.)

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

【问题讨论】:

    标签: cinnamon


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    相关资源
    最近更新 更多