エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

まだマウスで消耗してるの? キーマップを変えるだけで人生はうまくいく

【デジカルチーム ブログリレー4日目】デジカルチームの末永(asmsuechan)です。最近は7年ぶりに陸上競技にハマっています。

みなさん。キーボードはお好きですか?弊社にはキーボードに情熱を注ぐエンジニアが多数在籍しており、私もそのうちの1人です。エムスリーエンジニアのキーボードについては以下の記事で書かれています。百式Kinesisの存在感が輝いていますね。

www.m3tech.blog

さて数年前、キーボードが好きな私はPC操作の全てをキーボードのみで行いたい衝動に駆られていました。というのも、ラップトップに外部キーボードを繋げて好きなキーボードを使っていてもキーボードとトラックパッド(マウス)の間で手を移動しなくてはいけないことがストレスだったためです。

このストレスを解消するために様々な工夫をした結果、何とかキーボードのみでPCを操作できるようになりました。

この記事ではどうやってこれを実現しているのかについて、試していることを具体的に紹介します。各項目の星の数は難易度を表しており、星の数が少ないとお手軽で、多いと大変です。

なお前提として、操作はmacOSで行っているものとします。

★☆☆☆☆ ショートカットを使う

一番お手軽にキーボードでPCを操作する方法はショートカットの活用です。私がよく使うショートカットの一部をリストアップします。ショートカットはいつも手癖で使っているのでいざ思い出すとなると浮かんでこないですね。

  • テキスト操作
    • Cmd-c, Cmd-v, Cmd-x: コピペ、切り取り
    • Cmd-Shift-v: スタイルを合わせて貼り付け
    • Ctrl-a, Ctrl-e: 行頭、行末に移動
    • Option-delete: 1単語削除
  • Ctrl-Space: Spotlight検索
  • Ctrl-左右キー: 仮想デスクトップの移動
  • Ctrl-上下キー: Mission Controlを開閉
  • Google Chrome
    • Cmd-Shift-t: 閉じたタブの復元
    • Cmd-l: URLバーをフォーカス(ここからGoogle検索している)
    • Option(alt)+Cmd+i: 開発者ツールを開く

Spotlight検索の入力欄では簡単な四則演算もできるので計算したい時にもよく使っています。

Spotlightで計算をしている様子

★★☆☆☆ VimiumでGoogle Chromeを操作する

VimiumはVimのキーバインドでブラウザを操作できる拡張機能です。Google ChromeだけではなくFirefox、Edge、Safafriに対応しています。

https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb

Vimiumの機能から私がよく使っているものを紹介します。

  • 画面のスクロール
    • j, k: ページを上下にスクロールする
    • d, u: ページを半ページ分上下にスクロールする
    • gg: ページの一番上にジャンプする
    • Shift-g: ページの一番下にジャンプする
  • p: クリップボードの中身のURLにジャンプする or クリップボードの中身のキーワードで検索する
  • Shift-p: pの結果を新しいタブで開く
  • yy: 開いているURLをコピーする
  • タブ操作
    • t: 新しいタブを開く
    • x: タブを閉じる
    • Shift-x: 閉じたタブを復元する
    • Shift-h: 1つ先のページに進む
    • Shift-l: 1つ前のページに戻る
    • Shift-j: 左のタブに移動する
    • Shift-k: 右のタブに移動する
    • Shift-t: 開いているタブの中から検索する

画面のスクロールとpでの検索は特によく使っています。

他にもVisualモードというモードがあってテキスト選択に便利なのですがあまり使いこなせていません。

★★★☆☆ アプリケーションのショートカットを変更する

macOS自体のショートカットだけではなくGoogle Chromeなどの各アプリケーションのショートカットも編集できます。

キーボードの都合などによって押しにくく感じるがよく使うショートカットなどを変更するとより快適になります。

以前Linuxマシンを日常的に使っていた頃の名残でCmdをCtrlに変更しています。Cmd、地味に押しにくい位置にあるんですよね・・・

ショートカットの設定

なお、アプリケーションのショートカットを上書きするには以下のようにショートカット名(ここでは「新しいタブ」)をそのまま日本語で入力してやる必要があり最初はこれで本当にいいのか戸惑いました。

「新しいタブ」

「新しいタブ」のショートカット追加

設定のexport/importができないため全ての端末で同じ作業をする必要があり、変更作業は結構面倒です。

★★★★★ キーボードでマウスポインタ移動、クリック、スクロールをする

これが最終形態です。キーボードにマウスポインタ移動、クリック、スクロールを割り当てます。つまりキーボードのキーマップを変更し、そういうキーとして焼いて使うというものです。正直これさえあればここまで紹介した他の操作を全部やらなくてもキーボードで全て完結します。

キーボードの様子

使っているキーボード

ErgoDox EZを使っています。上の写真のように潤沢なキー数のある分割キーボードです。

キーマップのレイヤー

まず、このタイプのキーボードにはレイヤーという概念があります。これはレイヤーを切り替えることでキーマップを変えるものです。これによって少ないキー数でもアルファベット・記号・ファンクションキーなどを網羅できます。ErgoDox EZはレイヤーが切り替わっている時に右手側にあるライトが点灯するので分かりやすいです。

イメージしやすいようにキーマップの設定のキャプチャを貼ります。ベースレイヤーではアルファベットや数字を入力し、レイヤー1では記号、レイヤー2ではマウスポインタ移動などを行なっています。

ベースレイヤーのキーマップ

レイヤー1のキーマップ

レイヤー2のキーマップ

以下のページは実際に私が使っているキーマップです。

configure.zsa.io

キーマップの詳細

では、上記のキーマップを実際にどう使っているかを説明します。

私の設定では右手親指でレイヤーを切り替えてESDFキーをWASDの要領で入力することでマウスポインタを動かしています。ESDFなのはホームポジションから指を離したくなかったからです。なおキーを同時押しすると斜め方向にも進むことができます。

右クリックは右手親指でレイヤーを切り替えてJキーを押します。左クリックは同様にレイヤーを切り替えてKキーを押します。上下スクロールもマッピングしており、レイヤー2でUを押すと上方向にスクロール、Iを押すと下方向にスクロールします。

まとめるとこのようになります。

  • マウスポインタの移動
    • レイヤ2でESDFキーを押す
  • 右クリック・左クリック
    • レイヤ2でJキーを押す、Kキーを押す
  • スクロール
    • レイヤ2でUキーを押す、Iキーを押す

正直よく分からんって感じだと思います。実際他の人に突っ込まれて目の前で操作しても何をやっているか伝わらないことがよくあります。

ちなみにマウス操作では難しい水平方向、垂直方向に真っ直ぐ移動できるのが便利です。

実演

伝わるか全然分からないのですが、キーボードでマウスポインタを操作している様子の実演動画を貼ります。数ピクセル単位で結構細かい制御が効いています。動画終盤の操作は右クリックと左クリックです。カッチャカッチャうるさいですね。録画してやっと騒がしさに気づきました。チームの皆さんごめんなさい。でも普段はずっと在宅なのでセーフです。多分。

まとめ

キーボードにマウスポインタ移動をマッピングするのはウルトラCの風情がありますが、以上のようにしてキーボードのみでPC操作をしております。もうこのスタイルにして4年は経ちますが、非常に快適です。

実は完全にトラックパッドを使っていないかと言われるとそうではなく、片手が塞がっている時にマウスポインタを操作したい場合は面倒でMacBook Proのトラックパッドを触りがちです。片手の時にレイヤーを固定すればいいだけの話なのですが、レイヤーの切り替え漏れでうまく文字入力ができず入力のリズムが崩れてしまうデメリットの方が大きいと思い許容しています。

We're hiring!

デジカルチームではキーボードで全てを操作したい人もそうでない人も絶賛大募集中です!興味のある方は以下のページにアクセスしてください!

jobs.m3.com

そして我らがデジカルチームのチーム紹介資料はこちらです!

speakerdeck.com