見出し画像

Mac ユーザー必見!作業・開発効率を向上させる方法(キーボード入力編)

この記事は Atrae Engineers Advent Calendar 2024 の 8 日目の記事です。
前回は Mutsumi くんによる「Androidアプリエンジニアからフルスタックエンジニアになった話 a.k.a. バックエンドの学び方【後編】」でした。


はじめに

この記事では、Mac 環境における作業・開発効率化の話をしたいと思います。本当は実務で書いてる Ark-UI とか Panda CSS について書きたかったんですが、書く時間を作れなかった(ただの言い訳)ので、それは年末年始になにがなんでも書きます

自己紹介

まず、軽く自己紹介させてください。2024/12/01 に株式会社アトラエに入社したデザイナー・エンジニアの加藤です。入社したばかりですが、せっかくの良い機会なので「自分もアドカレでなにか書きたい!」と思って参戦しました。
快く受け入れてくれた社内のみなさん、ありがとう!

業務では、ダッシュボードを作ったり、DesignOps を推進したり、Design System を開発しています。

なぜこのテーマなのか?

どうして作業・開発効率化の話を書くかというと、純粋に自分が好きな領域だし、社内のメンバーに「効率厨」と言われることがあったので、自分でも書けるかも?と思ったからです。
そして、社内外問わず色んな人に作業・開発効率化を布教して「便利!」とか「速過ぎワロタw」と感動してもらいたいと思ったからです。

色々書きたいんですが、全部書くと情報量がとんでもないことになることがわかったので、少しずつ切り分けて公開したいと思います。
この記事では、「キーボードでの文字入力」にフォーカスして Mac の設定や Karabiner-Elements 等について書きたいと思います。

Mac の設定

まずは、Mac の設定からです。
みなさん、Mac デフォルトの文字入力の速度に疑問を持ったことはありませんか?具体的には、キーボードを指で押下してからその内容が実際に画面上に反映されるまでの速度のことです。

僕は疑問どころか苛立ちを隠せませんでした。「なんでこんな遅いねん!」って。では早速その悩みの種を破壊していきましょう。

結論を知りたい方は、先にこの記事を読むことをオススメします。

それでは Mac System Settings から Keyboard の設定に移動してください。
そして、"Key repeat rate" と "Delay until repeat" のスライダーを右にドラッグすればキー入力の速度を速めることができます。

Mac の "Keyboard" 設定画面を表示しており、"Key repeat rate" と "Delay until repeat" のスライダー設定が赤枠で強調されています。
Mac の "Keyboard" 設定の "Key repeat rate" と "Delay until repeat"

え?そんなのじゃ満足できないって?
なら爆速にしていきましょう⚡
イメージ画像として界王拳を使う悟空の画像を引用、添付します。

アニメ・ドラゴンボールにて界王拳を使う孫悟空。悟空の全身が赤いオーラに包まれており、今にも敵を倒そうとしている。
出典: ドラゴンボール(鳥山明)

まず、ターミナルに移動して以下のコマンドを入力してみてください。

defaults read -g KeyRepeat

これはなにをしているかというと、現在 Mac に適用されているキーのリピート(さっきの "Key repeat rate")の速度を出力します。"Key repeat rate" のスライダーを最大にしている場合は "2" という数字が返ってくると思います。
これは少し古いネットの情報や Chat-GPT の回答を参考にしているので、環境によって変わるかもです。

この数字が小さければ小さいほどあなたが求めている速度に近づきます。
試しにこれを "1" にしてましょう。筆者も "1" にしています。

再度ターミナルに移動して以下のコマンドを入力してみてください。

defaults write -g KeyRepeat -int 1

これであなたが求めているキー速度に一歩近づきました。
ただ、すこし手間なのですが、この設定を反映させるためにはログアウトや再起動をする必要があります。

そこのせっかちなあなた、ちょっと待ってください。ほかにも試してほしい内容があるので、まだ再起動はしないでください。

次に、以下のコマンドを入力してみてください。

defaults read -g InitialKeyRepeat

察しの良い方はすでにお気づきだと思いますが、これは現在 Mac に適用されているキーのリピート入力認識までの(さっきの "Delay until repeat")の速度(時間)を出力します。"Delay until repeat" のスライダーを最大にしているひとは "15" という数字が返ってくるかと思います。

この数字が小さければ小さいほどあなたが求めている速度に近づくのですが、数字が小さすぎると人間の処理速度を超えてしまうので、これを "10" にしてみてください。筆者も "10" にしています。
("10" 未満にしている社内の方、こっそり僕に教えてください)

再度、ターミナルに移動して以下のコマンドを入力してみてください。

defaults write -g InitialKeyRepeat -int 10

それでは Mac の再起動をしてみましょう!
キー入力の速度が爆速になっているはずです🚀

先に添付しましたが、このあたりのより詳しい説明やキー入力の速度における比較動画は、改めて以下の記事に載っています。もし興味がある方は読まれることをオススメします。

該当記事が書かれた時期や OS は古いですが、筆者の経験上、macOS Catalina ~ macOS Sonoma では問題なく同じやり方で設定が適用されました。

Karabiner-Elements

次に Karabiner-Elements というアプリを紹介します。
Karabiner-Elements とは、キーボード配列を自由に設定できたり、ショートカットを自由に割り当てられるスグレモノです。

プライベート PC でもずっと使ってきたのですが、実務で特に役に立ったシーンがあるのでまずはそれをご紹介します。簡潔に書くとつまらないので順を追って説明させてください。

自己紹介では「2024/12/01 に入社した」と書いたのですが、それは正社員になった日付であって、すでに 2024/05 から業務委託としてアトラエで働いており、その時点から US キーの貸与 PC を支給してもらっていました。

ただ、業務を進めていく中でその PC では低スペックが原因で作業が滞ることが何度もあったので PC のリプレースを依頼したところ、けっこう高スペックになると聞いてルンルン気分になっていました。

しかし、いざ支給されてみると予想外のことが起きました。以前の PC では US キーを使っていたので、新しい PC も当然 US キーだろうと思っていたら、支給されたのはまさかの JIS キーでした。

驚きと恐怖の表情を浮かべたキャラクターが、「ぐにゃあっ」という擬音とともに描かれている白黒の漫画の一コマ。
出典: カイジ(福本伸行)

そもそも US 配列は常備していないとかの会社都合で JIS キーとなったとのことでした。。
はやく自分がプロダクト開発等で価値や利益創出に貢献して、今後入社してくれるひとにはその時点での最大スペックの Mac が支給されたりと、ストレスフリーに仕事ができる世界線を目指したいです。

まあ、会社都合という事情もあるし、ちゃんと確認しなかった自分のミスなので仕方ありませんね。
そこで Karabiner-Elements の出番です。

インストール等諸々のセットアップが完了したら Karabiner-Elements Settings を開いてみてください。いろいろ項目があって最初は困惑すると思いますが、今回やりたいことを達成するためには、"Virtual Keyboard" という項目を選択してみてください。

Karabiner-Elements の設定画面で、左側の "Virtual Keyboard" タブが赤枠で強調され、右側に接続されているキーボードデバイス(Apple Internal Keyboard / Trackpad、Magic Keyboard)が一覧表示されています。
Karabiner-Elements Settings の "Virtual Keyboard" を選択
Karabiner-Elements の設定画面で、"Virtual Keyboard" タブが選択され、"Keyboard Type" の設定(ANSI、ISO、JIS の選択肢)が赤枠で強調されています。
US キーの場合は Keyboard Type で "ANSI" を選択

そこで上記の添付画像のように "Keyboard Type" を "JIS" → "ANSI" にすれば、Mac 本体に搭載されているキーボードの配列をパワープレイで US 配列にすることができます。やったね!
(ハードウェアを変えられないならソフトウェアで変えよう)

また、筆者は Karabiner-Elements でいろいろとキーの配列等を変えています。
今回は「キーボードでの文字入力」にフォーカスしているので、中でも多用しているであろう「カーソル移動」や「テキスト編集」に絞ってその例を以下に紹介します。

・"Ctrl + S" を "Option + ←" に変換(今いるカーソルの左側に単語毎にカーソル移動)
・"Ctrl + G" を "Option + →" に変換(今いるカーソルの右側に単語毎にカーソル移動)
・"Ctrl + W" を "Option + Delete" に変換(今いるカーソルの左側へ単語毎にテキスト削除)
・"Ctrl + X" を "Fn + Option + Delete" に変換(今いるカーソルの右側へ単語毎にテキスト削除)
・"Ctrl + U" を "Cmd + Delete" に変換(今いるカーソルの左側にあるテキストを全削除)
・"Ctrl + H" を "Delete" に変換(今いるカーソルの左側へ 1 文字毎にテキスト削除)
・"Ctrl + D" を "Fn + Delete" に変換(今いるカーソルの右側へ 1 文字毎にテキスト削除)
・"Ctrl + J" を "Enter" に変換(ホームポジションを崩さず Enter できる)
・"Ctrl + P" を "↑" に変換(Mac デフォでも効いてるけど設定するといろんなアプリで便利になる)
・"Ctrl + N" を "↓" に変換(Mac デフォでも効いてるけど設定するといろんなアプリで便利になる)
・"Ctrl + I" を "PageUp" に変換(上スクロール)
・"Ctrl + ," を "PageDown" に変換(下スクロール)
・"D, F の同時押し" を "Escape" に変換(ホームポジションを崩さず Escape できる)

ただ、Karabiner-Elements はすこし癖のあるソフトウェアで、設定には特有のルールや JSON で書く必要があるというすこしハードルの高いものとなっています。

その障壁を打破する方法のひとつとして、世界中の Karabiner-Elements ユーザーが公開しているルールを自分の環境に import できるというものがあります。
公式がこういうのを用意しているなんて素晴らしいですね。

筆者もサンプルを公開しているので、もし興味のあるひとは試してみてください。方法は以下になります。

まず、Karabiner-Elements Settings の "Complex Modifications" の項目を選択してください。

Karabiner-Elements の設定画面で、"Complex Modifications" タブが左側メニューで選択され、青枠で強調されています。設定された複数の修飾キーのルールが一覧表示されています。
Karabiner-Elements Settings の "Complex Modifications" を選択

次に一番上の "Add predefined rule" を選択してください。

Karabiner-Elements の設定画面で、"Complex Modifications" タブが選択され、"Add predefined rule" ボタンが赤枠で強調されている画面です。下には設定された複数のルールが一覧表示されています。
"Add predefined rule" を選択

次に、一番上の "Import more rules from the Internet(Open a web browser)" を選択してください。

Karabiner-Elements の設定画面で、"Import more rules from the Internet (Open a web browser)" のボタンが赤枠で強調されているダイアログが表示されています。
"Import more rules from the Internet(Open a web browser)" を選択

すると、世界中の Karabiner-Elements ユーザーが公開しているルールを Web 上で確認できます。
筆者が作ったサンプルを使うには、検索窓で "super" と検索してみてください。

Karabiner-Elements の複雑な修飾キー設定のルール一覧ページで、検索バーが赤枠で強調されています。下には "Table of Contents" が表示されています。
"Karabiner-Elements complex_modifications rules" の検索窓で "super" と検索

筆者が作ったルールは "Super ctrl + cmd!" というタイトルです。

Karabiner-Elements の複雑な修飾キー設定のルールリストで、"Super ctrl + cmd!" の項目が展開され、具体的な設定内容が表示されています。"Super ctrl + cmd!" の左側が赤枠で強調されています。
"Super ctrl + cmd!" を選択

その一番右にある "Import" をクリックしてみてください。

Karabiner-Elements の複雑な修飾キー設定のルールリストを表示したウェブページで、"Super ctrl + cmd!" の横にある "Import" ボタンが赤枠で強調されています。
"Super ctrl + cmd!" 右にある "Import" を選択

すると、再度 Karabiner-Elements Settings に戻って以下のような画面になると思います。そこでも "Import" をクリックしてみてください。

Karabiner-Elements の設定画面で、"Complex Modifications" タブ内の "Super ctrl + cmd!" 設定をインポートする確認ダイアログが表示されており、"Import" ボタンが赤枠で強調されています。
"Super ctrl + cmd!" の Karabiner-Elements ルールの JSON を Import

そうすると該当ルールが反映されているのでぜひ試してみてください。
また、不要なルールは Switch を off にしたり、自分で設定を加筆・修正してみてください。この辺りについては以下の記事が参考になると思います。

Karabiner-Elements のルールはすこし複雑なので、社内の人は遠慮なく僕に Slack でメンション飛ばして質問していただけるとうれしいです!
答えられるかはわかりませんが、一緒に調べたり考えたりします!

また、余談ですが、カーソル移動のショートカットは Mac デフォルトで搭載されているので絶対に覚えましょう!
覚えると作業効率が段違いです。

Google 日本語入力

最後に、Google 日本語入力の紹介です。
Google 日本語入力はキーボード入力変換ツールです。Google 日本語は Mac 標準のものと比べて以下の点が優れていると思います。

  1. 高い変換精度

    • 大量のデータを元に学習されているため、変換精度が非常に高い

    • 特に長文や複雑な日本語の変換に強い

  2. カスタマイズ性

    • ユーザー辞書の登録だけでなくカスタムキー設定などの豊富なカスタマイズオプションがある

筆者の経験上、Mac 標準の日本語入力ソースは変換がめちゃくちゃだし、ライブ変換も不便だったので圧倒的に Google 日本語入力がオススメです。
ただ、最後に Mac 標準のものを試したのは半年ほど前なので、それからアップデートして使いやすくなってるよとかあれば教えてください🙏

また、Google 日本語入力のセットアップについてはすこし手間・わかりにくいので、参考記事を添付します。

以下では筆者の設定の一例を紹介します。
まず、Mac Menubar にある Google 日本語入力のアイコンをクリックしてください。そうするとメニューが開くと思うので、その中から "Preferences" を選択してください。


Mac のメニューバーで Google 日本語入力のメニューを開いた状態で、左上の入力モードアイコン("A")が赤枠で強調されている画面です。
Mac Menubar から Google 日本語入力のアイコンを選択
Mac のメニューバーで Google 日本語入力のメニューを開いた状態で、"Preferences..." が赤枠で強調されている画面です。
Google 日本語入力の "Preferences" を選択

そうすると設定画面が開くと思います。
その設定の "General" の "Candidate selection shortcut" を添付画像のように "A-L" にしてみてください。そうすると、補完候補をアルファベットで選択できるようになります。楽チン!

Google 日本語入力の設定画面で、"Candidate selection shortcut(候補選択ショートカット)" が赤枠で強調されている設定画面です。
"General" の "Candidate selection shortcut" から "A-L" に選択

次に "Suggest" の "Maximum number of suggestions" を最大の "9" にしてみてください。そうすると、補完候補が 9 個表示されるようになります。最高!

Google 日本語入力の設定画面で、"Maximum number of suggestions(候補表示の最大数)"が赤枠で強調されている設定画面です。
"Suggest" の "Maximum number of suggestions" から "9" を選択

さいごに

今回紹介したのはほんの一部です。また別の記事で Karabiner-Elements で設定している他のショートカットやランチャーアプリ Raycast 等の紹介ができればいいなと思っています。
もし内容が誤っていたら社内の方教えてくれるとうれしいです🙏

速さは正義!

(note のアイコンは「将来イケオジになっていてほしい」という願望を込めた数十年後の自分です)


いいなと思ったら応援しよう!