コマンドラインでOpenboxキーバインディングを変更する

コマンドラインでOpenboxキーバインディングを変更する

私はOpenboxに基づくLXDEデスクトップ環境を使用しています。私は私を編集してキーバインディングを変更する方法を知っています~/.config/openbox/lxde-rc.xml。たとえば、次のようになります。

<keybind key="A-F11">
  <action name="ToggleFullscreen"/>
</keybind>

ただし、現在のセッションにのみ有効な非永続的な変更を実行する必要があります。 XMLファイルを編集せずにコマンドラインでこの変更を行う必要があります。

それは可能ですか?

ベストアンサー1

作成に複雑さが必要な言語であるbashのためのソリューションです!

 #!/usr/bin/bash

 RCXML='rc.xml'

 find=$(cat $RCXML | grep -i -B 1 $1 | head -2)

 editkeys=$(cat $RCXML | grep -i -B 1 $1 | head -1)

 echo ''
 echo '  FOUND THE FOLLOWING SHORTCUT:'
 echo " ${find}"
 echo ''
 echo '  EDITING ABOVE KEYBIND TO:'
 echo "     <keybind key=\"$2\">"
 echo ''
 echo '  HIT ENTER TO CONFIRM.'
 read y

 if [ -z $y ]; then
     sed -i "s/$editkeys/\ \ \ \ <keybind key=\"$2\">/g" $RCXML
 fi

使用例:

 bash rcedit.sh ToggleShowD C-S-u

注:2つの異なる項目のキーバインディングが同じ場合は、ファイルの最後の項目を使用してください。スクリプトは、ggledesktop などのジョブ名で見つかった最初のスクリプトを編集します。ただし、明らかにキーバインディングとして表示するように編集することはできますが、キーバインディングが一意である可能性はほとんどありません。

RCXML変数にフルパスを指定しない限り、スクリプトはrc.xmlと同じフォルダに配置する必要があり、globbing / tildaは変数では機能しません。

また、カスタムショートカットを編集するには、次の行を追加します。

 <action name="Execute">

次の追加行を含めるようにbashスクリプトを調整する必要があります。

 find=$(cat $RCXML | grep -i -B 2 $1 | head -3)
 editkeys=$(cat $RCXML | grep -i -B 2 $1 | head -1)

マウスショートカットを編集するには、追加の編集を行う必要があります。

アクション名エントリは入れ子になっていますが、XML形式を好むRubyを使用して何かを作成しようとしています。~へキーバインディングは、単純なソリューションをコーディングする誤った方法です。また、rc.xmlファイルにはコメント行がいっぱいで、私が試している2つのRuby XMLモジュールを混同します。しかし、それらを削除すると、ルビーで何かを作ることができるかもしれません。

.bashrcに次の行を追加することもできます。

 alias backuprcxml="~/.config/openbox/lxde-rc.xml > ~/.config/openbox/lxde-rc.xml.backup"
 alias restorercxml="~/.config/openbox/lxde-rc.xml.backup > ~/.config/openbox/lxde-rc.xml"

その後、これを一度実行してバックアップを作成します。

 backuprcxml

次に、 ~/.config/openbox/autostart に次の行を追加します。

 ~/.config/openbox/lxde-rc.xml.backup > ~/.config/openbox/lxde-rc.xml

おすすめ記事