こんにちは、ナナオです。

今回はキーボードリマップツールのkanataを試してみます。

GitHub - jtroo/kanata: Improve keyboard comfort and usability with advanced customization

なぜリマップツールを使うのか?

最近40%キーボードに憧れており、その使用感がどのようなものなのかを試したかったからです。

分割型60%を使っていても、エンターやバックスペースまでの移動が微妙に気になっていました。

現在使用しているキーボードは、Mistel MD600 Alphaという、分割型の60%キーボードです。

Barocco Mistel MD600 Alpha RGB BT Black(英語配列) | キーボード | PCアクセサリー | 製品案内 | 株式会社プリンストン

欲しいなと思っているキーボードはtorabo-tsukiという40%レイアウトのキーボードです。

torabo-tsuki LP トラックボール付き無線分割キーボードキット - のぎけす屋 - BOOTH

大きな違いとしては、数字列がなくなることもそうですが全体的に大きくサイズダウンするところです。

サイズダウンすることで、今まで遠い位置にあったキー(エンターやバックスペースなど)がかなり近くになります。

とはいえ、いきなりこの40%キーボードに手を出すのも、本当に慣れるのか?という不安があります。

ということでリマップツールで40%レイアウトによるタイピングを導入していこうと思います。

kanataの導入

導入方法としてはwindowsの場合、二種類あります。

  • Chocolateyを使用する
  • バイナリをダウンロードする

今回はバイナリでダウンロードする方法にします。

(Chocolatey使った方法のほうがたぶん楽です。自分は後からそれに気づいたのでバイナリでやっています。)

ダウンロード

リリースページに移動します。

Releases · jtroo/kanata · GitHub

windows-binaries-xxx.zipという名前のアセットがあるので、自身のアーキテクチャに合ったものをダウンロードします。

中に入っているファイル一式を、適当なフォルダに配置します。

私は~\.local\share\kanataというディレクトリを作成してそこに配置しました。

これで中のkanata_windows_tty_winIOv2_cmd_allowed_x64.exeを実行すれば、kanata.kbdに書かれているレイアウトが適用されます。

スタートアップに登録

できれば起動時にkanataの設定を適用したいので、スタートアップに登録しましょう。

エクスプローラーでshell:startupと入力し、スタートアップのフォルダを表示します。

あとはショートカットを作成し、リンク先に先ほどのkanata_windows_tty_winIOv2_cmd_allowed_x64.exe、作業フォルダに実行フォルダを指定して終わりです。

kanata.kbdの実装

いろいろ試行錯誤中ですが、一旦以下のように実装しました!

設計としては、「ホームポジションから手を大きく動かさない」ことを最優先にしています。

特にカーソル移動と数字入力をレイヤーに寄せることで、上段や右上への移動を減らす狙いです。

(defvar
  tap-repress-timeout 200
  hold-timeout 200
  tt $tap-repress-timeout
  ht $hold-timeout
)

(defsrc
  esc  1    2    3    4    5    6    7    8    9    0    -    =    bspc
  tab  q    w    e    r    t    y    u    i    o    p    [    ]    \
  caps a    s    d    f    g    h    j    k    l    ;    '    ret
  lsft z    x    c    v    b    n    m    ,    .    /    rsft
  lctl nop0 lmet lalt      spc       ralt rmet nop1 rctl
)

(deflayer default
  esc  1    2    3    4    5    6    7    8    9    0    -    =    bspc
  tab  q    w    e    r    t    y    u    i    o    p    [    ]    \
  @cap a    s    d    f    g    h    j    k    l    ;    '    ret
  lsft z    x    c    v    b    n    m    ,    .    /    rsft
  lctl nop0 lmet lalt      @spc      @ral rmet nop1 rctl
)

(deflayer cursor
  _    f1   f2   f3   f4   f5   f6   f7   f8   f9   f10  f11  f12  _
  _    esc  _    _    _    _    grv  pgup up   pgdn -    _    _    _
  _    tab  _    _    _    _    home left down rght =    _    _
  _    lsft _    _    _    _    end  _    _    _    \    _
  _    _    _    _         _         _    _    _    _
)

;; マウスの動きを定義
(defalias
  mwu (mwheel-up 50 120)
  mwd (mwheel-down 50 120)
  mwl (mwheel-left 50 120)
  mwr (mwheel-right 50 120)

  ms↑ (movemouse-up 1 1)
  ms← (movemouse-left 1 1)
  ms↓ (movemouse-down 1 1)
  ms→ (movemouse-right 1 1)
)

(deflayer mouse
  ;; レイヤー2の内容(例:HJKLを矢印キーにするなど)
  _    f1   f2   f3   f4   f5   f6   f7   f8   f9   f10  f11  f12  _
  _    _    _    _    _    _    _    mlft @ms↑ mrgt _    _    _    _
  _    _    _    _    mlft _    _    @ms← @ms↓ @ms→ _    _    _
  _    _    _    _    _    _    _    mwd  mwu  _    _    _
  _    _    _    _         _         _    _    _    _
)

(deflayer number
  _    f1   f2   f3   f4   f5   f6   f7   f8   f9   f10  f11  f12  _
  _    _    _    _    _    _    _    7    8    9    0    _    _    _
  _    _    _    _    _    _    _    4    5    6    [    _    _
  _    _    _    _    _    _    _    1    2    3    ]    _
  _    _    _    _         _         _    _    _    _
)

(defalias
  spc (tap-hold $tt $ht spc (layer-toggle cursor))
  ral (tap-hold $tt $ht ralt (layer-toggle mouse))
  cap (tap-hold $tt $ht caps (layer-toggle number))
)

デフォルトレイヤの他にマウスレイヤ、カーソルレイヤ、数字・記号レイヤを実装しています。

マウスレイヤはキーボードでマウス操作ができるというレイヤ…ですが、ぶっちゃけあまり使っていません。(指がつる…)

なので、デフォルトレイヤ、カーソルレイヤ、数字・記号レイヤの3つのレイヤで60%キーボードの操作を賄っています。

まとめ

正直、まだ慣れていないのでタイピング速度も遅いですが、実感として指の移動距離は明らかに減っています。

(これこれ!!!!これを期待していたんだよ!!!)

まだ慣らしは必要なものの、40%キーボードが欲しいという気持ちは一層強くなりました。

40%キーボードを使うため、という目的でなくても、kanataを導入することでキーボードに手軽にレイヤー構造を導入できるのはかなり便利です。

60%、あるいはそれ以上のキーボードを使っている方も、ぜひkanataを導入してレイヤーの便利さを体感してみてください。

それでは今回はこれで。