異なるLinuxバージョンのターミナルからカスタムキーボードショートカットを設定するにはどうすればよいですか?
基本的に、Linuxがキーボードショートカットファイルをどこに保存し、どのように編集できるかを知りたいです。
私の調査でファイルを見つけました~/.config/compiz-1/compizconfig
が、で開こうとしたときに暗号化されていましたnano
。
コマンドラインからカスタムショートカットを追加することはできますが、少し複雑です。キーバインドごとに数ステップで実行する必要があります。一方、それは非常に単純であり、コマンドラインから何らかの方法でそれを実行したい場合は非常にうまくスクリプト化できます(それが問題でしたよね?)。
インターフェイス([システム設定]> [キーボード]> [ショートカット]> [カスタムショートカット])と同様に、カスタムキーボードショートカットはコマンドラインから次の2つの手順で作成されます。
コマンドによって返されるリストを編集(-に追加)して、キーバインドを作成します。
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
返されるリストは次のようになります(現在ショートカットが1つしかない場合)。
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']
次のコマンドで編集済みリストを適用します。
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[<altered_list>]"
(二重引用符に注意してください)
注意:リスト内の言及(例custom1
、custom2
)は一意のものである必要があると言う必要はありません。スクリプトを作成する場合、スクリプトは重複を防ぐ必要があります。この場合、編集されたリストは次のようになります。
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']
キーバインディングを1つ追加するには: custom1
そのプロパティを設定します。
名前:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ name '<newname>'
コマンド:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ command '<newcommand>'
キーの組み合わせ(例<Primary><Alt>g
):
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ binding '<key_combination>'
役立つ情報はここにあります
以下のスクリプトを使用して、コマンドラインから新しいショートカットキーの組み合わせを設定できます。次のコマンドで使用できます(キーの組み合わせが使用可能であると想定)。
python3 /path/to/script.py '<name>' '<command>' '<key_combination>'
例:
開くためのショートカットキーの組み合わせを設定するには、gedit
キーの組み合わせでAlt+を7:
python3 /path/to/script.py 'open gedit' 'gedit' '<Alt>7'
スクリプト:
#!/usr/bin/env python3
import subprocess
import sys
# defining keys & strings to be used
key = "org.gnome.settings-daemon.plugins.media-keys custom-keybindings"
subkey1 = key.replace(" ", ".")[:-1]+":"
item_s = "/"+key.replace(" ", "/").replace(".", "/")+"/"
firstname = "custom"
# get the current list of custom shortcuts
get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")
array_str = get("gsettings get "+key)
# in case the array was empty, remove the annotation hints
command_result = array_str.lstrip("@as")
current = eval(command_result)
# make sure the additional keybinding mention is no duplicate
n = 1
while True:
new = item_s+firstname+str(n)+"/"
if new in current:
n = n+1
else:
break
# add the new keybinding to the list
current.append(new)
# create the shortcut, set the name, command and shortcut key
cmd0 = 'gsettings set '+key+' "'+str(current)+'"'
cmd1 = 'gsettings set '+subkey1+new+" name '"+sys.argv[1]+"'"
cmd2 = 'gsettings set '+subkey1+new+" command '"+sys.argv[2]+"'"
cmd3 = 'gsettings set '+subkey1+new+" binding '"+sys.argv[3]+"'"
for cmd in [cmd0, cmd1, cmd2, cmd3]:
subprocess.call(["/bin/bash", "-c", cmd])
使い方:
スクリプトを空のファイルに貼り付け、名前を付けて保存しset_customshortcut.py
、上記の説明に従って実行します。
Super key: <Super>
Control key: <Primary> or <Control>
Alt key: <Alt>
Shift key: <Shift>
numbers: 1 (just the number)
Spacebar: space
Slash key: slash
Asterisk key: asterisk (so it would need `<Shift>` as well)
Ampersand key: ampersand (so it would need <Shift> as well)
a few numpad keys:
Numpad divide key (`/`): KP_Divide
Numpad multiply (Asterisk):KP_Multiply
Numpad number key(s): KP_1
Numpad `-`: KP_Subtract
等
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加