00:00:00キーボードのポテンシャルを最大限に引き出す、オープンソースツールの「Kanata」を紹介します。
00:00:03短くタップした時と長押しした時で別のキーとして認識させたり、
00:00:081つのキーで複数のキー入力を実行したり、
00:00:10用途に合わせてキーマップのレイヤーを切り替えたりすることができます。
00:00:12私のように、操作のほとんどをキーボードで完結させたい人間には最高のツールです。
00:00:16でも、この独特な設定構文は何なんでしょうか?
00:00:19それに、Karabinerや他の「K」から始まるツールではなく、なぜこれを使うべきなのでしょうか?
00:00:24チャンネル登録をして、さっそく中身を見ていきましょう。
00:00:27「Kanata」はイロコイ族の言葉で「村」を意味しますが、
00:00:30キーボードとは全く関係ありません。
00:00:33自作キーボードが好きな方なら、「QMK」という名前を聞いたことがあるかもしれません。
00:00:37これは有名なオープンソースのキーボードファームウェアで、
00:00:39PCに信号が送られる前に、キーボード側でキーマップを変更できます。
00:00:42KanataはQMKのような機能をソフトウェアレベルで実現するため、
00:00:46ノートPCの内蔵キーボードを含む、あらゆるキーボードに対応しています。
00:00:49また、Rustで書かれているため非常に高速で、
00:00:52タイピング時の遅延もほとんど感じられません。
00:00:55ただ、セットアップはそれほど簡単ではありません。
00:00:57Macの場合はKarabiner経由でインストールした後に――
00:01:00これについては後で詳しく説明しますが、
00:01:02Lispにインスパイアされた「S式」という構文で設定ファイルを書く必要があります。
00:01:07これが、私が今まで見た中で最も奇妙な設定構文なんです。
00:01:11通常、関数名はカッコの外に書くものですが、
00:01:16この設定ファイルでは、カッコの中の引数のすぐ隣に関数名を書きます。
00:01:21さらに関数を入れ子にすると、もっと奇妙なことになります。
00:01:24設定ではよくあることなのですが、
00:01:26関数名がすべてカッコの内側にあるため、
00:01:30最初はかなり理解しづらく感じるでしょう。
00:01:35でも、しばらくすれば慣れてきます。
00:01:36簡単なキーマップの例として、AキーをXに割り当ててみましょう。
00:01:41まず `defsource` 関数でソースキーとして「A」を指定し、
00:01:46次に少なくとも1つの `deflayer` 関数で出力キーを指定します。
00:01:50ここでは名前を「base」とし、引数に「X」を渡します。
00:01:53設定ファイルに記載されていないキーは、通常通り動作します。
00:01:57BとCを追加してXとZにマッピングすると、このようになります。
00:02:02幸いなことに空白やタブは無視されるので、
00:02:04キーの間隔を空けて、読みやすいように調整できます。
00:02:08この設定ファイルでできる面白いことを、他にもいくつか紹介します。
00:02:10「タップ・ホールド」を設定すれば、タップと長押しで別々のアクションを割り当てられます。
00:02:15タイムアウト時間を指定してから、割り当てたいキーを追加します。
00:02:19この例では、Aをタップすると「X」、長押しすると「左Shift」として認識されます。
00:02:24また、`defvar` 関数を使って変数を登録すれば、
00:02:28設定内で何度も使う値を「$」記号で参照できるようになります。
00:02:32これは、ホームポジションのキーに修飾キーを割り当てる「ホームロー・モッド」に最適です。
00:02:36正直、最初はかなり違和感がありましたが、
00:02:39今ではすっかり慣れてしまい、これなしのキーボード操作は考えられません。
00:02:42また、「editor」といった名前で新しい `deflayer` を作成し、
00:02:46動画編集専用のキーマップをまるごと設定することも可能です。
00:02:51そして、レイヤー切り替えキーを設定するだけで簡単に切り替えられます。
00:02:54さらに凝ったことをしたいなら、
00:02:58KanataのTCPサーバー機能を有効にして、他のアプリと連携させることもできます。
00:03:03私の場合、SketchyBarでKanataの信号をリッスンし、
00:03:06レイヤーを切り替えた時にデスクトップの上部に表示されるようにしています。
00:03:10ここまでの環境を作るには、確かに大量の設定を書く必要がありますが、
00:03:13AIを活用すれば難しいことではありません。
00:03:16ところで、これほど多機能なKarabiner-Elementsがあるのに、なぜあえてKanataを使うのでしょうか?
00:03:21KarabinerはKanataができることはすべてカバーしていますし、それ以上のことも可能です。
00:03:24アプリやキーボードごとのマッピング切り替え、
00:03:28直感的なイベントビューアーによる動作確認、
00:03:30ターミナル操作を好まない人のためのGUIも備わっています。
00:03:35しかし私にとって、Karabinerのタップ・ホールド機能(ホームロー・モッド用)は不十分でした。
00:03:40まともに動作させるまでに、多大な調査と設定が必要だったんです。
00:03:45しかも、苦労して設定してもKanataほど直感的には動きませんでした。
00:03:49Karabinerでは、長押しがタップとして誤認識されることがよくありました。
00:03:51一方、Kanataはこの機能を微調整なしで完璧に処理してくれました。
00:03:56それ以来、Karabinerに戻る必要性は感じていません。
00:03:59ホームロー・モッドを本気で使いたいなら、Kanataをおすすめします。
00:04:03ただ、Kanataも完璧というわけではありません。
00:04:05キーボードごとに異なるマップを使う場合、複数の設定ファイルが必要になり、
00:04:09キーボードを抜くたびに、
00:04:12コマンドを実行して設定を切り替えなければならないのが少し面倒です。
00:04:15また、私のキーボードでは再生/一時停止ボタンをF8に割り当てることができませんでした。
00:04:20Karabinerではできていたことなのですが。
00:04:22MX MasterマウスでKanataを動作させるのにも、少しコツがいりました。
00:04:26幸い、こうした問題のほとんどはコードを書いて解決できました。
00:04:30それらは将来的にオープンソースとして公開するかもしれません。
00:04:31Kanataのコミュニティがもっと大きくなることを願っています。
00:04:34この動画を友人や同僚にシェアしてもらえれば、その助けになるはずです。