LoginSignup
3
3

More than 3 years have passed since last update.

変換/無変換キーをUS配列キーボードでも使いたい

Posted at

JIS配列のキーボードにはあまり使わないキーがいっぱいあって、その代表格が変換キーと無変換キーです。
でも、スペースの両隣という最高の位置に普段使わないキーがあるのはとても便利で、
たとえばIMEのオンを変換キー、オフを無変換キーに割り当てるとプログラミングがとってもはかどります。

そんな背景で、僕はいつもJIS配列のキーボードをUS配列として認識させて使っています。
でも、わけあってUS配列キーボードを使わざるを得ない時、あの洗練されたキーボードには変換/無変換キーがありません。
そこで、無理やり変換/無変換キーを実現できるようにするのが本記事の目的です。

xdotool の導入

Linux にはキー入力やマウス操作をコマンドラインでシミュレートしてくれる xdotool コマンドがあります。
Windows とか Mac は知りません。なんか適当に同じようなやつを探してください。

xdotool で、無変換キーの押下をシミュレートするには

$ xdotool key 0xff22

変換キーの押下をシミュレートするには

$ xdotool key 0xff23

とします。

キーボードショートカットに登録

Ubuntu だったらキーボードショートカットを簡単に登録できます。
ここでは、US配列でもあまり使われないキーである「メニューキー」(右Altの隣りにあるやつ)を

$ xdotool key 0xff23

のショートカットとして登録すれば、メニューキーを押した時に無変換キーを押すことと同様の効果が得られるはずです。

しかし、これには落とし穴があって、「メニューキー」を押した瞬間に無変換キーの押下がシミュレートされてしまうので、実際には「メニューキーと無変換キーを同時に押した」と判断されてしまいます。
これを防ぐためにちょっとHackyですが

$ bash -c "sleep 0.5 && xdotool key 0xff23"

のように、スリープを挟んで「メニューキー」の押下が終わった頃に無変換キーの押下がシミュレートされるようにしましょう。

同じようにたとえば Shift + メニューキー というキーボードショートカットに

$ bash -c "sleep 0.5 && xdotool key 0xff22"

を割り当てておけば、変換キーの押下をシミュレートすることができます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3