キーボードのキーを入れ替えて編集速度20%アップ
概要
キーボードのキーをソフト的に入れ替える行為を長年してきたので、ちょっとした提案ができればなと思いこの記事を書きました。この記事ではふだんよく使う移動系のキー、たとえば矢印キー(←↓↑→)をホームポジション(HJKL)に置くことで編集作業をしやすくします。設定をすることで下のようなレイアウトを追加します。ご覧の通り右手の一部のキーを使うことになります。
Karabiner ElementsとGokuのインストール
まずは準備でmacOSにキーボードリマッピングソフトを入れます。GokuはKarabiner Elementsのキー設定を簡単にするためのユーティリティになります。
Karabiner Elementsはこのサイトにあります。
Gokuはこちらにあります。
Karabiner ElementsをインストールしてGokuをインストールしたら、Karabiner Elementsを開きます。Macの場合、アクセシビリティの設定があるのでそちらを調整します。プライバシーとセキュリティから入力監視にチェックを入れてください。macを再起動すればKarabiner Elementsが使えるようになっているはずです。
SettingsからProfilesを開き、Add new ProfilesからDefaultを作成します。
以下の項目では通常の配列から変えていくので、いったん通常のキー配列を保存しておきます。
名前は仮に「通常」としておきます。これでメニューバーからいつでもキー復元できるようになります。
Goku用の設定ファイルを作成する
ターミナルに以下のコマンドを入力してGoku用のファイルを生成します。
touch ~/.config/karabiner.edn
gokuでエラーが出ることがあるため、念の為下記にも空のファイルを作っておきます。
touch ~/.config/karabiner/karabiner.json
下記コマンドでFinderを開いて、お好きなエディタでkarabiner.ednを開いてください。開くのは.jsonではなく.ednである点に注意です。
open ~/.config
以下ではこのファイルに設定を書き込みます。
英数キーを親指で押せる場合
英数キーをHyperに変換します。Hyperというのは内部的にはCommandとCtrlとOptionalとShiftの同時押しです。要は修飾キー全部押しですね。下記の通りファイルに入力して保存します。
{
:main [{:des "muhenkan"
:rules [
;;左手親指の設定
[:##japanese_eisuu :!CTOleft_shift nil {:alone :japanese_eisuu}],
;;Windowsキー用配置の設定
[:##japanese_pc_nfer :!CTOleft_shift nil {:alone :japanese_eisuu}],
[:japanese_pc_xfer :japanese_kana],
;;右手ハイパー面の設定
[:!!u :!COleft_arrow],
[:!!i :!Ctab],
[:!!o :!COright_arrow],
[:!!h :left_arrow],
[:!!j :down_arrow],
[:!!k :up_arrow],
[:!!l :right_arrow],
[:!!semicolon :delete_or_backspace],
[:!!m :page_down],
[:!!comma :page_up],
]}]}
入力したらファイルを保存して以下のコマンドを打ちます。
goku
これで「Done!」と表示されれば、Defaultプロフィールが書き換わっています。gokuでは「!!」というのがハイパー面を指します。したがって、[:!!j :down_arrow]
の意味は、「ハイパー面でのhの挙動を↓矢印にする」ということになります。英数キーを単独で押すと英数キーとして機能し、英数キー+Jキーで↓矢印になります。
パンタグラフキーボードの場合
パンタグラフキーボードの場合、スペースにHyperの機能も含めることによって同じようなことが可能になります。スペースキーを押しっぱなしでHyperにして、キーから指を離すとスペースが打たれるように設定を変更してみます。
{
:main [{:des "muhenkan"
:rules [
;;左手親指の設定
[:##spacebar :!CTOleft_shift nil {:alone :spacebar}], ;dual-role keys
;;右手ハイパー面の設定
[:!!u :!COleft_arrow],
[:!!i :!Ctab],
[:!!o :!COright_arrow],
[:!!h :left_arrow],
[:!!j :down_arrow],
[:!!k :up_arrow],
[:!!l :right_arrow],
[:!!semicolon :delete_or_backspace],
[:!!m :page_down],
[:!!comma :page_up],
]}]}
これでスペースキー+Jで「↓キー」になり、スペースキー単独ではスペースを打つことができるようになりました。
切り替えを試してみる
VS CodeやChromeでHyper+Oで右のタブへ、Hyper+Uで左のタブへ移動できるようになっているはずです。試してみましょう。
Hyper+Iでアプリ切り替えができます。アプリ切り替え中左に移動したい場合はHyper+Uです。アプリ切り替え中はHyperは押しっぱなしなのでそこは注意してください。
キーボードの記号類の出力が変わってしまったとき
設定によっては@が出力できなくなるなどの不具合が出る可能性があります。その場合、キーボード配列設定から「キーボードの種類を変更」を選択していただいて、JIS(日本)にすれば直るかもしれません。
うまく設定できない場合
もしかしたらこちらが想定しているキーコードと今試されているキーボードの出力が違うのかもしれません。その場合は、Karabiner-EventViewerを立ち上げて、置き換えたいキーを押してみてください。表示されたkey_codeが正しい置き換えたいキーのコードになるので適宜置き換えてみてください。
終わりに
キーボードリマップはキーボードに新しい「面」を作ることができ、ホームポジションから指を大きく動かさなくとも、様々なことができるようになります。このようなやり方はキーボードを選びますが、効率性の観点からはそれだけの価値があると思います。特に、ウェブミーティングなどのリアルタイムなやり取りが頻繁をする場合、速度が重要になってきます。よりカスタマイズしたい場合は、Gokuのチュートリアルをご参照ください。ではでは。
アルサーガパートナーズ株式会社のエンジニアによるテックブログです。11月14(木)20時〜 エンジニア向けセミナーを開催!詳細とご応募は👉️ arsaga.jp/news/pressrelease-cheer-up-project-november-20241114/
Discussion