如何通过名称找到特定的自定义键绑定?
我可以通过以下方式检索自定义键绑定列表:
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/settings-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/settings-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
会做