左手デバイスにしようと思い、テンキーを購入した。

有線のものは持ってたんだけど、ワイヤレスがほしいなと思い、メルカリで安く購入。

せっかくだから何かほかにも使い道ないかな……と考えた結果、テンキーのみで日本語入力できたら、片手で文字が打てて便利なのではと思った。

ガラケー打ちを参考に、つくってみることにした。
備忘録として、そのことを書いておく。
ちなみに環境はMacです。

こんな感じ

できあがったものの試用風景はこんな感じ。

https://twitter.com/nagoyaman1988/status/1980626569875046685?s=46&t=mdXlRI0TGPjPE_IiYIdAew

このときは有線テンキーでやってますが、無線テンキーでも同様に動きます。

各ボタンの機能は、

macでの利用前提なので、入力切替はcaps lockに割当。
ってか、caps lockで切り替えれるの初めて知った……!
(今までcommand+スペースに設定してやってた)

やり方

  1. karabiner-elementsというキーバインドソフトを入れる(Macの場合)
  2. JSONでガラケー打ち用のコードを作成
  3. karabiner-elementsに読み込ませる

流れとしてはこれだけ。
JSONのコードがネックだが、AIに書かせればノーコードでもいける……と思っていた。

実際は、文量が多すぎるため一気に書いてもらえず、分けて書いてもらう→手作業で修正、というのを繰り返したのでけっこう大変だった。

結局終盤はだんだん読めるようになってきて、自分で書いてた。AIの使い方が下手。

できあがったJSONはこちら↓

https://gist.github.com/kodokubu/a65d12becd2b5d794c33740550d193b7

これを、karabinerに入れる。

~/.config/karabiner/karabiner.json

このフォルダに。
Finder→上部「移動」→「フォルダへ移動」→上記パス貼付でいける。
その後、

  1. Karabiner-Elements を開く
  2. 上部タブの 「Complex Modifications」 をクリック
  3. 右下の 「Add rule」 を押す
  4. そこに、自分の karabiner.json に書いた設定(ルール)が表示される
  5. それを 「Enable」(有効化) すればOK

これで完了。テンキーがガラケー打ちできるようになる。

使ってみた感想

実は細かいところは甘いところがあるけれど、とりあえず実用的に使えるレベルにはなってると思う。

ただ正直、いざ使ってみると、自分の用途では別にいらないかな……という感想。
当たり前だけど、普通にキーボード入力した方が早いし楽。

意外とガラケー打ちは時間がかかるんだなと思った。
フリックだと実質一打鍵で打てるもんね。

どうしても片手で文字打ちしたい場面が多いとき(たとえばペンタブ使用中にときどき文字打ちたいとか?)の場面があると役立つかも。

実装について

AIに書いてもらったJSONを手編集して仕上げた。

内部でやってることとしては、各キーに「何回押したか」のカウンターがあって、その回数に応じて文字を消す→打つ、を繰り返している。

ハ行がちょっと面倒で、ここだけ濁点・半濁点にもカウンターがついてる。

また、他のキー打鍵に移ったときに、いったんカウンターをすべてリセットする、という処理もしている。

これに最初気づかず、たとえば「しかし」と打とうとすると、2回目の「し」を打ちたいときに1打鍵目が「す」になってしまっていた。

プログラマーなら当たり前に気づくんだろうけど、コードなんてほとんど触ったことないので、こういうことがいちいち新鮮だった。

そんなわけで、デバッグ→修正にけっこう時間かかった。
JSONは変数や配列が使えないらしいから、全部書いてあってとても長いし。

チャットAIと話しながらつくってたんだけど、途中提案されたように、pythonなど他の言語でプログラムをつくってJSONコードを吐き出してもらう、というのが、あとのメンテナンス性からもいいのかもしれない。

つくった感想

今まで、こういうやり方があるということを知っても、コードが書けず諦めていたんだけど、チャットAIのおかげでコードの読めない素人でもこういうものがつくりやすくなった。

今回は思いつきでつくってみたけど、またそのうち便利そうなアイデアが思いついたらつくってみたい。