Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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"

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

arowM
ヤギさんとして自由に生きてるよ さくらちゃんはアーティストだから世の理不尽には頭突きしちゃうよ フリーランスUXハッカー・プログラマー(Elm, Haskell)・技術翻訳・ヤギ語翻訳 ARoW代表 http://arow.info /気吹堂(出版)代表/UZUZ CXO http://github.com/arow
https://arow.info
arow-oss
もともと法人だったけど潰しちゃったよ c.f., https://qiita.com/arowM/items/9eddd10d531154cbc065
https://arow.info
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away