2年越しにUHK(Ultimate Hacking Keyboard) が届いたのでUbuntu18.04で使えるように設定してみた

2015年末に一時期話題になっていたUHK(Ultimate Hacking Keyboard) http://ascii.jp/elem/000/001/066/1066910/ ですが,2年の遅延でやっと届きました. f:id:u1s:20180820162451p:plain

本記事ではUbuntu18.04で設定して, 自分が使えるようになるまでの設定例を紹介します.

記事の目的

UHKですが, 以下の公式ページの画像を見たらわかるのですが初期配置がかなり独特です. というのも,独自のMouse, Mod, Fnキーが3つもあるためです.

  • Mouse: 文字通り,このキーを押しながらキーを入力するとマウスカーソル動かしたり,マウスクリックができてしまう不思議キー
  • Mod: HHKのFnキーの一部代替に近い存在.Functionキー使うときやカーソルキー使うときに利用することを想定してるらしい.
  • Fn: 音量ボリューム調整や音楽設定などが初期だと割り当て

Ergodoxみたいにカスタマイズしなくても使えるとはいえ, 初期配置のままだと指が混乱しかしません.(Ctrlが欲しい位置にMouseキーがあったり, Space押したい位置にModキーがあったりするので生きていけない)

ultimatehackingkeyboard.com

幸いにも開発側もそれはわかっているらしく, 以下サイトでハードウェアキーの割当変更が出来るツールを公開しているので,それを利用して設定していきます.

github.com

ハードとしてのレビューは以下の記事が良い感じなので紹介して割愛.

kimihiro-n.appspot.com

また,ハードウェアキーの変更のみだとUbuntuでの利用上は不便なところもあったので,OS側の設定も紹介します.

Agent(キーボード設定ツール)のインストール方法

Linux用のAppImageが公開されているので,使います. Mac/Win用もあります. さくっと入れられて便利.

  1. Releases · UltimateHackingKeyboard/agent · GitHub から UHK.Agent-1.2.7-linux-x86_64.AppImage をダウンロード
  2. sudo ./UHK.Agent-1.2.7-linux-x86_64.AppImage

カスタマイズの仕組み及び初期配置

Layerの概念を4層持っていて, それぞれをキーを押して切り替える形になります. 便宜上,Base/Mod/Fn/Mouseと名前ついていますが, 後からどうでも中身の配置は実は変えられます.

以下がBaseの初期配置(Mac用キーボードモード). 初見でこれをブラインドタッチ出来る人はおるまい・・・ f:id:u1s:20180820165332p:plain

UHKのキー配置 設定例

Base Layer

いろいろと手を入れてますが,大事な修正点は以下.

  • Spaceを左右対称配置に変更
  • 左手小指の位置にCtrlないと死んでしまう体質なので,CtrlはAの横に配置
  • マカーなのでSpaceの隣にCmdないと死んでしまう体質なので,Space横にSuper(UbuntuでのCmd相当)を配置
  • 右手一つでマウス操作が出来るようにSpace下部の拡張ボタンをMouseキーに変更
  • HHKB使ってる時と違和感ないようにFnキーは一番右下に移設

f:id:u1s:20180820154902p:plain

Mod Layer

  • カーソル移動をhjklを利用する形に変更

f:id:u1s:20180820154929p:plain

Fn

  • 特に変更なし.

f:id:u1s:20180820155002p:plain

Mouse

コンセプトとしては右手片手でホームポジションでポインタ操作(あくまで補助なので)

  • hjklでマウス移動するように修正

f:id:u1s:20180820155046p:plain

Ubuntu18.04側でのキーボード設定

UHKでの設定ですが,これまでの内容で実は一点だけ致命的な問題があります. というのもESCキーがModキーを押さないと使えないという問題です.

Vimmer的にはESCキーを1タッチで押せないと非常に苦しいですし, 様々なアプリケーション使ってるときにフォーカス外す目的でもESCキーはよく使うのでできれば, 設定したいところです. しかし単独キーとして使えるものはほぼ使い切ってるので, 既存キーをうまく使って解決する必要があります.

具体的にはCtrlキーを単独押しでESCキーにするという回避策です.追記で,ハードウェアレベルで達成出来てました :bow: また,他にも何点か普段使いする中で設定しておく必要があったので, まとめます.

xkeysnailの設定

基本的には以下サイトの内容で入れられます. poyo.hatenablog.jp

自分が設定しているのは以下.

  • Ctrl(またはCaps)単押しでEsc
  • Vim like cursor
    • CtrlだけでなくSuperでも発動するようにしてます.

SuperキーでActivityが起動するのを無効にする

初期値だとleft_superキーを押すことでActivityが起動するようになってますが,邪魔なので封印. 以下コマンド実行で出来ます

gsettings set org.gnome.mutter overlay-key 'Alt_R'

まとめ

UHKは初期状態だとかなり独特で使いづらいですが, カスタマイズ性も非常に高いので自分なりに設定することで非常に良い動きをするように出来ました.

片手でもある程度操作できるようにできるし,両手で操作してるときもロードバイクの姿勢然り,肩幅まで腕が開いてる状態なので,非常に肩周りの筋肉に優しくて肩こりしづらくなった感じあります.

また, 募集かかってた2015年時点だと物珍しかった分離型キーボードもここ2年でErgodoxしかりKinesis Freestyle2然りとかなり普及してきてるのであまり新鮮味はありませんが, 2年の中の戦いをリアルタイムに見ることもできて,最後までゴール出来てなかなかの感慨深さもあります.(参考までに開発履歴. https://www.crowdsupply.com/ugl/ultimate-hacking-keyboard/updates )

最後にメッセージカードがついてきてたので,紹介して本記事は終わりにします.

f:id:u1s:20180820161409p:plain

後, キー配置変えまくってるので, 無印字キーが欲しいw

追記(Controll押したときに単独だとEscape動作にすることがハードウェアで出来ました)

xkeysnailでCtrl単押しEsc(SandSの亜流)をやっていましたが, 本家の方に,それ secondary roleで出来るよと言われて試してみたら,ハードウェアレベルでSandS相当が出来ました.

というわけで直した状態が以下.

f:id:u1s:20180820222540p:plain

キー自体の設定はこんな感じに設定します.通常時はEscapeを割り当てておき, Secondary Roleで組み合わせて使ったときの動作を指定する形です.

f:id:u1s:20180820222713p:plain

もう一つあったコメントのsudoなしでも立ち上げられるよ,という点は手元の環境だとログ無しで死亡してくれて,sudoは必須な感じでした. なんでだろ...