HHKB StudioでBluetoothプロファイル切り替えやUSB接続切り替えが出来ないときに見るページ

何がおきたか(Dead lock)

前提1:HHKB Studio(Professionalもかな?)ではキーマップの変更ができる。

前提2:HHKB Studioではキーマップの初期化をHW的に行う手法が提供されていない

前提3:HHKB StudioではUSB有線接続モードでしかキーマップ変更・初期化を行うツール(HHKB Studioキーマップ変更ツール)にアクセスできない

前提4:HHKB StudioをUSB接続モードに切り替えるためには、変更後のキーマップにおいて割当られているCTRL+FN+0(Zero)キーを押す必要がある

という前提条件なので、どこにこれら3キーを割り当てたか忘れると詰む(Dead lock)というわけ。実際詰んで貴重な休日の時間を1時間も浪費したので備忘録として書いておく。

自分のためだけのメモ

CTRLキーなんてまずまったく使わないけど、HHKBのプロファイル切り替えにだけ使用しないといけない仕様らしく、仕方なくキーボードの使わない位置に逃がしておいたのだけどこれを忘れていた。

本来のレイアウト(キーボード刻印)はこれ↓ 厳密には半角全角だけが印刷と違うが、まぁ。

なぜこの問題が起きたのか

PCキーボードのヘビーユーザー?というかPC詳しい人なら「あれっ?」と変なことに気づくかもしれない。HHKBはわざわざ使いやすいように一般的な日本語KeyboardのCAPS LOCKキーの位置にCTRLキーを配置してくれている。日本語KeyboardのCTRLキー位置は使いにくく、CAPS LOCKと入れ替えて使うのがまぁキーボードヘビーユーザーでは一般的なはず。

なのになんでそこをCAPS LOCKにして、重要なCTRLキーをよくわからないSpaceキーの右という左手で押せないようなところに置いているのか? と。

このHHKB Studioは日本語使用キーボードしか選べない、ちょっと特殊なWindowsノートPCに接続することをメインの用途にしている。このWindowsPCは出張先に持ち込むこともあるため、PC内蔵キーボードを使うこともあるし、外付けでHHKB Studioを使うこともあるというわけ。PC内蔵キーボードではツールを使ってCTRLキーとCAPS LOCKキーを入れ替えているのだ。つまり、ハードウェア信号としてUSB HIDから(Bluetooth HIDでもいいんだが)CAPS LOCKキーの信号がくれば、Windows11はこれをCTRLキーとして処理する、という設定を仕込んである。

こうしておくと、どんな外付けキーボードをつなごうと、HHKBであろうと、内蔵キーボードであろうと、必ずCAPS LOCKキーをCTRLキーとして機能させることができる。

しかし、前提条件4に書いたとおり「HHKB StudioをUSBモードに切り替えるにはキーボード本来のハードウェア信号としてのCTRLキーが必要」というわけだ。かくして私が使っているHHKB Studioの「ハードウェア信号としてのCTRLキー」はHHKBのBluetoothプロファイル・USBモード切り替えのためだけにスペースキーの横に邪魔者のように置かれることになってしまったのである。

そして、長らくBT切り替え・USB切り替えをやっていないと『ここにCTRLキーがあったこと』を忘れるのだ。そりゃそうだ、普段はHHKB Studioのキーボードに誇らしげに印字されているControlという文字が描かれたキーを押せばCTRLキー入力ができているのだから・・・。かといって美しいHHKB Studio 雪(ホワイトバージョン)のスペースキーの横に『CTRL物理はこれ』なんてシールを貼るのは無粋極まりない。

HHKB開発チーム(PFUさん)へのお願い

こういう設定しちゃっていてサポートに問い合わせが来てサポート費用が少なからず浪費されているんではないでしょうか。というわけでFirmwareでこの1点だけ修正してもらえたら、本問題で詰む人がいなくなるのではと思っています。

USB接続すればキーマップを目で見て確認できるわけですがそのUSB接続モードにできない、というのが問題。現状のHHKB StudioのFirmware仕様は「最後につないだ方法が保持される」なので、Bluetoothで普段使っていると、USB接続に切り替えるにはCTRL+FN+0に割り当てたキーの位置を覚えていないといけない。

一番Firmwareエンジニアの工数的に楽そうな手法: 特定キー組み合わせでキー配列を初期化(つまりキーボードにプリントされている通りの割当に戻す)する機能を提供する。誤爆リスクがなくはない & 現状のWindowsツールにキー割当を保存・Exportする機能がないのでぶっ飛ばしてしまったあとの設定が大変とか色々ありそうなんで、本当はあまり美しい実装ではないと思うが、工数的には一番かるそう。恐らくは内部テスト用のコマンドとして存在していそうだから、公開するだけ、という話しかもしれない。

Windowsソフト側だけでできる手法: HHKBキー割り当てツール for WindowsがUSB接続モードのHHKB Studioを検出しない限り起動しない、というのをやめる。そのうえで、前回設定時のキーマップを表示してくれれば…。というやつ。まぁこれも最後にキー割当したあとに設定ツールをインストールしなおしたとか、Windowsを再インストールしたとか、別PCしか手元にない、とか色々ハマるポイントはあってPerfectではないが結構な数の方を救えるはず。

本質的な手法: Firmwareエンジニアの目からみると、Windowsに対してどのキーコードを送っているかとは別に、物理でどの箇所のキーが押されているかはわかっているはずなので、キーマップに影響されない手法で強制的にUSB接続モードにしたり、Bluetoothプロファイルを切り替えたりできる手法を積んでくれば&その方法が「HHKB USB 切り替え」みたいなワードでGoogle検索に引っかかるようにしてくれれば100%問題は発生しなくなると考える。例えばだけれど、キーボードの0キー(物理位置)を押しながら電源スイッチを入れるとUSBモードになる、とか。特に電源スイッチ(HHKB Studioであればスライドスイッチなのでなおさら)をからめることで誤操作というパターンはほぼなくなるはずだろうし。まぁFWエンジニアの身からすると初期化処理とかいろいろあってそこは…というポイントなのはわかって言ってますがw