前書き

Linuxエンジニアの中には、マウスを嫌う人が居ます。なるべくキーボードで操作を完結させる事を美徳と考える人(変人)です。しかし、マウスを完全に排除したくても、マウス(マウスポインタ)で無ければ操作できないタイミングがあります。

そんなケースに備えて、本記事ではマウスポインタをキーボードで操作可能なkeynavを紹介します。

検証環境

       _,met$$$$$gg.          nao@debian 
    ,g$$$$$$$$$$$$$$$P.       ---------- 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux 10 (buster) x86_64 
 ,$$P'              `$$$.     Kernel: 4.19.0-6-amd64 
',$$P       ,ggs.     `$$b:   Uptime: 46 minutes 
`d$$'     ,$P"'   .    $$$    Packages: 2476 (dpkg) 
 $$P      d$'     ,    $$P    Shell: fish 3.0.2 
 $$:      $$.   - ,d$$'    Resolution: 2560x1080 
 $$;      Y$b._   _,d$P'      DE: Cinnamon 3.8.8 
 Y$$.    `.`"Y$$$$P"'         WM: Mutter (Muffin) 
 `$$b      "-.__              WM Theme: cinnamon (Albatross) 
  `Y$$                        Theme: BlackMATE [GTK2/3] 
   `Y$$.                      Icons: gnome [GTK2/3] 
     `$$b.                    Terminal: gnome-terminal 
       `Y$$b.                 CPU: Intel i3-6100U (4) @ 2.300GHz 
          `"Y$b._             GPU: Intel HD Graphics 520 
              `"""            Memory: 2974MiB / 32060MiB 

keynavのインストール

keynavはパッケージマネージャ経由で取得できます。X11(Unixグラフィック環境)に依存しているため、iOS/Android環境では動きません。

$ sudo apt update
$ sudo apt install keynav 

keynavの起動

Terminalで"keynav"を実行すれば、起動できます。しかし、普通に起動するとTerminalを占有するため、バックグラウンドプロセスとして起動した方が良いです。

$ keynav &       (注釈):"&"=バックグラウンド実効

keynavを起動してから、“Ctrl + ;“でマウスポインタを操作するモードに移行し、ESCキーでマウスポインタ操作モードから抜けます。マウスポインタを操作するモードに入ると、下図のように赤い十字線が画面に表示されます。

keynav標準

なお、画面の比率が標準でない理由は、私の使用しているモニタがウルトラワイド(比率21:9)だからです。

keynavの操作方法

keynavは、

  • 赤十字線の中心=マウスポインタ
  • 赤十字線の領域を縮小可能(例:領域の左側だけ残して縮小)
  • 赤十字線の全体を移動可能(マウスポインタを動かすイメージ)

といった特徴を持ちます。

キー操作説明
Ctrl + ;マウスポインタ操作モードに移行(画面上に赤十字線を表示)
ESCマウスポインタ操作モードを終了
h赤十字線領域の左側だけ残して、領域を縮小
j赤十字線領域の下側だけ残して、領域を縮小
k赤十字線領域の上側だけ残して、領域を縮小
l赤十字線領域の右側だけ残して、領域を縮小
Shift + h赤十字線領域を左へ移動
Shift + j赤十字線領域を下へ移動
Shift + k赤十字線領域を上へ移動
Shift + l赤十字線領域を右へ移動
;赤十字線領域の中心にマウスポインタを移動
Space赤十字線領域の中心にマウスポインタを移動し、左クリック
2(左)ダブルクリック
3(右)ダブルクリック

h:領域の左側だけを残して、領域縮小する例

j:領域の下側だけを残して、領域縮小する例

[the_ad id=“598”]

k:領域の上側だけを残して、領域縮小する例

l:領域の右側だけを残して、領域縮小する例

[the_ad id=“598”]

keynavのキーバインド設定変更

keynavのキーバインド設定は、"$HOME/.config/keynav/keynavrc"ファイルに記載されています。私の環境では存在しなかったため、公式サイトからコピーしました。以下にkeynavrcの一部を示します。

ctrl+semicolon start
Escape end
(省略)

space warp,click 1,end

(省略)

書式は、“キー keynavで定義された動作"です。一つのキーで複数の操作をする場合は、”,"(カンマ区切り)で後続の動作を記載します。また、“0 sh “vim”,end"のように記載すれば、キーボードランチャーとして使用できます。