読者です 読者をやめる 読者になる 読者になる

ソフトウェアとハードウェアの境界

ホビー開発に関する誰得情報満載☆

LinuxBeanでキーバインドの設定 xdotool & obkey

LinuxAutohotkeyを実現したかっただけなのに…

皆さんはどんなキーバインド、キーコンビネーションがお好みだろうか?

僕が今までUbuntuDebianその他Linuxディストリビューションをメインマシンとして使用しなかったのは、自分が好きなキーバインド、キーコンビネーションの設定ができなかったのが大きな理由だ。

もちろん他にも理由はあるが、これが結構な割合を占めてた。

僕はWindowsを使用している場合はAutohotkeyを使ってCtrl+[?]の組み合わせでvimライクな操作を実現していた。

Ctrl+hjklで方向キーを入力できないなんて嫌だ。

それなのに、何故かLinux環境ではなんか設定が難しい、というか理解しにくい。

できるにはできそうなんだが、紋切り型の方法で設定するのではなく、Google先生方もみんなそれぞれ違った記事を書いている。

xkb?

xdotool?

xbindkeys?

rc.xml?

様々な方法が書いてあったが、どれも僕のイメージに沿わない。

あくまでもキー入力は最終的に、ウィンドウマネージャが受け取り、処理したのち、アプリケーションへ送信する、というのが僕のイメージだった。

LinuxBeanを使用している僕としては、できることならばOpenBoxのキーボード・ショートカット設定ツールObkeyから設定したかった。

Ctrl+[?]によるキーコンビネーションの設定は技術的に難しいらしい、ということが、このあたりに書いてあったと思う。

しかし、最低でもAlt+[?]の形で設定したかった。

それがやっと実現できたので記述しようと思う。

 

 キーを送信するスクリプトを作成

この方の記事がわかりやすかった。

このページの"emu_keystroke.sh"をありがたく使わせていただいた。

このスクリプトシンボリックリンクを下記の名前で作成する。

 

$ cd ~/bin
$ ln -s emu_keystroke.sh emu_Up.sh
$ ln -s emu_keystroke.sh emu_Down.sh
$ ln -s emu_keystroke.sh emu_Left.sh
$ ln -s emu_keystroke.sh emu_Right.sh

 

あとはObkeyでこれらのスクリプトを設定するだけ。

 

 Obkeyでの設定

 まずは起動。

f:id:tokixy56:20150519225534p:plain

設定方法は以下。

1. 水色の□と+が縦に並んでいるボタンをクリックすると「Key」部分に新たな項目が追加される。

2. 新たに追加されたを選択し、画面右下「Actions」下のプラスをクリックする。

3. 「Actions」に新たに「Focus」が追加される。

4. 「Focus」をクリックすると、選択肢が表示されるので「Execute」を選択する。

5. 画面右上に出てくる「command」右のテキストボックスに、先ほど作成したスクリプトのパスを記入。

6. 「Key」部分を選択した状態で、もう一度クリックすると、「新たなアクセラレータ…」と表示されるので、[Alt+h]などと設定する。

以上で完了。

 

やっぱり好きだなLinux