如何通过名称找到特定的自定义键绑定?

我可以通过以下方式检索自定义键绑定列表:

gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings 

返回的内容如下:

 ['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media keys/custom-keybindings/custom1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/'] 

但我想通过它的名字知道目标键绑定? 即shutter – > a

我找到了一个简单但不方便的方法:

 gsettings get org.gnome.settings-daemon.plugins.media-keys.custom- keybinding:/org/gnome/settin‌​gs-daemon/plugins/media-keys/custom- keybindings/custom0/ name // return the name like `shutter` gsettings get org.gnome.settings-daemon.plugins.media-keys.custom- keybinding:/org/gnome/settin‌​gs-daemon/plugins/media-keys/custom- keybindings/custom0/ binding // return the binding like `a` 

有没有人知道其他优雅的解决方案?

用于按名称查找键绑定的小脚本

当您使用快捷方式的名称作为参数运行时,下面的脚本将输出键绑定。 一个例子:

 $ python3 '/home/jacob/Bureaublad/find_keybinding.py' rename > 'r' 

如何设置

  • 将下面的脚本复制到一个空文件中,将其另存为find_keybinding.py
  • 通过命令运行它:

     python3 '/path/to/find_keybinding.py'  

说明

信息在输出中

 dconf dump / 

在自定义键盘快捷键上,这将输出如下部分:

 [org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom9] binding='r' command='/home/jacob/.local/share/nautilus/scripts/change_name' name='rename' 

如您所见,我们需要线,上面两行

 name='rename' 

…所以脚本输出那条从binding=剥离的行

剧本

 #!/usr/bin/env python3 import subprocess; import sys key = "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/" # read the output from dconf dump /, split into lines ls = [l for l in subprocess.check_output(["dconf", "dump", key]).decode("utf-8").splitlines()] # find line corresponding to searched name, print two lines higher print(ls[ls.index([l for l in ls if "name='"+sys.argv[1] in l][0])-2].replace("binding=", "")) 

另外

…你可以创建目录~/bin (如果它还不存在)并在没有扩展名的情况下保存脚本,并使其可执行 。 退出并重新登录,然后简单地:

 find_keybinding  

会做