Don't Repeat Yourself

Don't Repeat Yourself (DRY) is a principle of software development aimed at reducing repetition of all kinds. -- wikipedia

JISキーボードからUSキーボードに切り替えた

小学生の頃にパソコンというものを触り始めてから社会人になってソフトウェアエンジニアとして働いて10年近く、ずっとJISキーボードを使ってきました。「日本語を打つのになぜUSキーボードをわざわざ使うのだ」という考えからずっと使ってきましたが、最近ついにUSキーボードに変えてしまいました。

買ったキーボード

Nuphy Halo75

Nuphyの「Halo75 Wireless Mechanical Keyboard」というものに変えました。Night Breeze軸の音と軽さがちょうどよかったのでこれにしました。あんまり指の力が強くないので軽めのものがタイプです。ただ軽すぎると押したつもりもないのに押した判定されてそれはそれでストレスなので、35g〜45gくらいがちょうどいいなと思っています。この辺りの条件にフィットしたのがNight Breeze軸でした。

テンキーは不要というかデスクのスペースを取りすぎるので96は選択肢にはありませんでした。

以前はHHKBを使っていたので、これに近い65のものも迷いました。しかし、写真をみた限りで「`~」がESCと同じ位置にあって、多分何かのキーと複合で押す形になるんでしょうが、プログラマ的には「```」を結構使用する関係で絶対面倒に感じるだろうなと思ってやめました。これさえなんとかなっていれば65を選んでたくらいには好みでしたが。

HHKBから切り替えて困ってしまったことといえば、JISのHHKBに戻すと思い出すのに時間がかかるのと持ち運びができないことです。近年はオフィスはフリーアドレスで自席がないことが多いですし、カフェなどで作業したい際にはやっぱり外付けのいいキーボードで作業したいなというのがあり、持ち運び用のものはどうしようか悩んでいます。USのHHKBを買うか、もしくはAirを買うかで頭を悩ませています。Airの方はロープロファイルなのであんまり好きじゃないかも、みたいな点で悩んでいます。JISをメルカリで売ってから考えてもいいかもしれません🤔

切り替え時にやったこと

さて本題ですが、切り替え時にやったことです。前提として、私は仕事プライベート含め、macOSしか使いません。なので、前提としてMacの話になります。

JISからUSへの切り替えですが、Karabinarを使うと比較的楽にできます。しかし変えたら変えたで苦労した点もあり、この辺りをまとめておきます。ポイントは下記でした。

  • 「かな」と「英数」の切り替えをCmd単体でできるように
  • Cmd単体操作の微調整&「Cmd+Q」を数秒押さないと稼働しないように
  • CapsLockと左下のCtrlの入れ替え

MacのUS配列標準では、「Fn」キーを単体で押すとトグル方式でかな入力と英数入力(というかIMEの入力言語でしょうか?)を切り替えられるほか、「Control + Space」でもトグル方式で切り替え可能です。しかしWindowsの「半角/かな」キーをはじめとしたステートフルなこの切り替え方式は好きではなく、MacのJIS配列にあった「英数」「かな」の切り替えが非常に良いデザインだと思っています。なのでこれをUS配列でも再現したいわけですが、一方でUS配列には「かな」「英数」の切り替え専用のキーはありません。

これを実現するためには、いくつか手段がありますが、私が最も有力かなと感じたのは「左のCmdキーを単体で押したら英数入力に切り替え、右のCmdキーを単体で押したらかな入力に切り替える」というものです。これならJIS配列のときと切り替え方法をほぼ変えずに済みます。これを実現するには、Karabinarというソフトウェアを使いつつ、このソフトウェアに追加の設定を行う必要があります。

やり方は下記のサイトに書いてあり、こちらを参照するか

misc-log.com

私のdotfilesのリポジトリを参照することでも確認できます。Karabinarは設定をJSON形式でエクスポートでき、普段はエクスポートしたものをdotfilesに置いて管理しています。

github.com

ただ、この「Cmd単体で押したとき」の判定が若干シビアです。たとえば、「Cmd」を押した後にすぐ「W」を押すと、普通にショートカットキーを押した判定をされてしまい、結果文字入力中にウィンドウが閉じてイライラしてしまうことが最初多発しました。Cmdキーを単体で押した判定をさせる時間を伸ばすなど若干のカスタマイズが必要でした。完全に対策できたわけではないので時々今でも起こりますが、頻度はかなり減りました。

上記のショートカットキーを押してしまう問題で致命的だと感じるのが「Cmd+Q」(アプリケーションの終了)でした。これが起こるとたとえばターミナルが突然落ちることになるので、コーディング中などは非常に困りました。そこで、Cmd+Qだけは特別に、1秒以上両方のキーを押し続けないと終了動作が作動しないように調整を加えました。KarabinarのJSONを直接いじって対応させました。

github.com

あとUS配列に変更したこととはあまり関係ない話かもしれませんが、Nuphyは、HHKBだとControlキーの位置にCapsLockがあって、HHKBだとCapsLockの位置にCtrlがあるレイアウトになっています。普段はNeovimで作業する関係でHHKBのレイアウトになっていてくれないと非常に厳しいので、Karabinarを使って、CapsLockとCtrlを入れ替えしました。これによりこれまでの操作感を損なうことなくVimを操作できるので快適になりました。これはやっている方が多いかなとは思いますが、重要な作業だと思います。

切り替えてよかったこと・ストレスを感じること

プログラミングで出てくる記号類が、実はUS配列だと手数少なく押せると判明した点でしょうか。たとえばバックスラッシュ\なんかは、JISだと遠い位置にあって面倒だしどこにあったかもあんまり覚えてない、みたいな感じだったんですが、USだとShiftも不要で入力できてしまいます。シングルクオート'やダブルクオート"も入力するのめんどくさいランキング上位でしたが、これもUS配列だと押しやすい位置にあります。

何よりも、キーボードを選ぶ選択肢が格段に広がるというのも大きいです。YouTubeチャンネルなどでキーボードをアンボクシングする動画を見るのが結構好きなんですが、「US配列なんだよな〜〜〜」と思うものが結構多かったです。しかし、US配列に切り替えてしまった今となっては、こうした憧れのキーボードにも手が届くようになりました。散財が捗ってしまうなあと今から悩みが尽きません。

www.youtube.com (「:3ildcat」というチャンネルをよく見ていました)

ストレスを感じることとしては、まずはホームポジションの中心がJISから微妙に右にズレる?ので、まだそれに慣れません。無意識にJISの頃の位置に指を置いてしまう関係で、よく打ち間違いをします。

また、記号はまだ完全には覚えられていません。*をよく打ち間違えるのと、()のふたつもまあまあ正確に押せずにイライラします。この辺りはストレスを感じますね。

加えて、「Cmd」を使った英数とかなのモードの切り替えをしている関係で、だんだん筆が乗ってきてタイピングのスピードが上がってくると、ショートカットキーを誤って押してしまってイライラすることがあります。「Cmd+Q」による終了は制御したのでこれは起こらなくなりましたが、たとえば「Cmd+W」のウィンドウを閉じるものはしょっちゅう起きてしまいます。ただこのショートカットはQのときのように長押しにすると使い勝手が下がってしまうのでそうするわけにもいかず、ちょっと悩み中です。

あとMac本体はJIS配列のままなので、ラップトップを開いてキーボードを使う際には頭を切り替える必要があります。これは外付けキーボードを持ち歩けば解消できる話なので、今のところはあまり気にしていませんが…。

総じてJIS配列だったころと比べると打ち間違いは格段に増え誤操作も格段に増えましたが、JIS配列だった頃には得られなかった自由も手にできたので、しばらくはUS配列を利用し続けてみようかなと思っています。

追記:このリンクのコードを使うとNuphyを10% offで買えます。もしよければぜひ使ってください→nuphy.refr.cc