カスタムキーバインディングのリストは、次の方法で取得できます。
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
-> <primary><shift><alt>a
私は1つの単純だが便利ではないアプローチを考え出しました:
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 `<primary><shift><alt>a`
他のエレガントな解決策を知っている人はいますか?
以下のスクリプトは、ショートカットのnameを引数として実行すると、キーバインドを出力します。例:
$ python3 '/home/jacob/Bureaublad/find_keybinding.py' rename
> '<Primary><Alt>r'
find_keybinding.py
として保存します次のコマンドで実行します。
python3 '/path/to/find_keybinding.py' <shortcut_name>
情報はの出力にあります
dconf dump /
カスタムキーボードショートカットでは、次のようなセクションが出力されます。
[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom9]
binding='<Primary><Alt>r'
command='/home/jacob/.local/share/nautilus/scripts/change_name'
name='rename'
ご覧のとおり、2行上の行が必要です
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 <name>
しましょう