質問: ターミナルからカスタムキーボードショートカットを設定する方法は? linuxバージョンごとにターミナルからカスタムキーボードショートカットを設定する方法基本的に、linuxがキーボードショートカットファイルを保存する場所とその編集方法を知りたいと思います。私の研究では、ファイル~/.config/compiz-1/compizconfigが見つかりましたが、nanoでファイルを開こうとすると、暗号化されていたり、暗号化されていたりしました。
回答: コマンドラインから2ステップでショートカットキーバインドを追加する(14.04+)コマンドラインからカスタムショートカットを追加することはできますが、少し複雑です。キーバインドごとに数ステップで実行する必要があります。一方、は非常に単純で、コマンドラインから何らかの方法で実行したい場合は非常にうまくスクリプト化できます(それが問題ですか?)。インターフェイスと同様([システム設定]> [キーボード]> [ショートカット]> [カスタムショートカット])、カスタムキーボードショートカットはコマンドラインから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>]" (二重引用符に注意してください) n.b。リスト内の言及(例: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として保存し、上記の説明に従って実行します。主に使用される主な言及のいくつか(実験的に発見され、guiの方法がバインディング値に加えた変更を調べています):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 等.