メカニカルキーボード

デュアルキーボードでFnキー系のショートカットやホットキーが使えない問題への対処法

デュアルキーボード環境

デスクでの姿勢を良くするためにデュアルキーボード環境を環境を構築しました。

が、Fnキー系のホットキーがキーボードをまたがると使えないため、自分の手になじんだキーマップが使えない、という問題にぶち当たりました。

これではよくない・・・ということで、対処法を考えて解決したので共有します。

スポンサーリンク

前置き:本記事での「デュアルキーボード」の定義

本記事では、1台のPCに2台のキーボードを接続して使うスタイルをデュアルキーボードと呼びます。

デュアルキーボードにより、

  • 両肩を必要以上に狭めなくて良い
  • 結果、猫背や肩こりが改善する

という効果が期待する、とされています。

具体的な使い方は、

  • 左手は、左側のキーボードの左半分を
  • 右手は、右側のキーボードの右半分を

と使い分けることになります。

この使い分けによって発生するのが、次に解説する「Fnキー問題」です。

デュアルキーボードにおけるFnキー問題

Fnキー問題とは、Fnキーを利用したキー操作に制約が出る現象をいいます。

  • Fnキーと、Fnキーと組み合わせて押すキーが左右のキーボードをまたいでいる場合
  • 片手でFn、もう片手でそのキーを押しても、所定の動作にならない

というものです。

これが起こる理由は、Fnキーの信号はキーボードの内部で処理され、OSには認識されないから。ハードウェアの挙動のためしょうがありません。

Fnキー問題への対処法

諸悪の根源がFnキーがOSに認識されないことなら、OSには認識されるけど特に役割を持たない別のキーにFnキーの代わりをさせればいいのです(たとえばPauseキーとか)

ということで、アプローチは以下のとおりです。

  • キーボードの設定で、FnキーにPauseキーを割り当てる
  • Pauseキ-をFnキーに見立てたホットキー設定を入れていく

それぞれ解説します。

ステップ1:FnキーにPauseキーを割り当てる

まず、FnキーにPauseキーを割り当てます。

たとえばぼくの使っているキーボードの場合、専用のキーマップアプリで変更可能です。

Fnキーの場所が動かせないキーボードの場合、ChangeKey等で別のきーにPauseキーを割り当ててください

これでFnキーの場所にあったキーを押したとき、OSに「Pause」が送られる準備が整いました。

ステップ2:AutoHotKeyでPause系列のホットキーを設定する

次は、PauseキーをFnキーに見立てたショートカットキーの定義をAutoHotKeyのスクリプトとして組んでいきます。

具体的には、jキーに右矢印を割り当てる場合、

Pause & j::Left

という感じで、Before/Afterを記述していきます。(具体的な文法はAutoHotKey Wikiのコンビネーションキーセクションを参考にしてください)

この書き方にすることで、ShiftやCtrlなどの修飾キーもちゃんと認識してくれます。たとえば、上記の例だとPause-Shift-jはShift-→と解釈されて、ちゃんと文字列選択しつつカーソルが動いてくれます。

なおこの設定を1行ずつ書くのはしんどいので、ExcelやGoogle Spreadsheetで文字列を構築する数式を作ってしまうのがおすすめです。

NAE
NAE

PCを複数台使っている場合、すべてのPCで同じスクリプトを動かしておきます

実際に使ってみて起こったこと

2台のPCで本構成をためしたところ、片方のPCだけでPauseキーが押されっぱなしになる現象が頻発しました。1日に3〜4回は起きています。

こちら、どうやらAutoHotKeyでは有名な事例だそう。そのため対処法もググるとたくさん出てききます。

そのなかで特に網羅的だったこちらのサイトを参考に、最も副作用が少なそうなスクリプトのExe化を適用しました。が、効果なし。

もう片方のPCでは対策適用前から一度も起きてないことから、おそらく環境起因なのだと思います。

対処はスクリプトの再読み込み。1日3〜4回なら許容範囲と割り切って運用しています。

まとめ:副作用はあるが些細なこと

Fnキーを使ったホットキーをデュアルキーボードで再現できました。

特定環境でPauseが押しっぱなしになる、的な細かい問題はありながらも、デュアルキーボードで肩が楽になることと比べると些細なことかなと思います。

本記事があなたの参考になれば幸いです。

以上「デュアルキーボードでFnキー系のショートカットやホットキーが使えない問題への対処法」でした。

タイトルとURLをコピーしました