ThinkPad有線トラックポイントキーボード(0B47208)のFnキーとCtrlキーの入れ替え方法

概要

手順

以下の手順は旧バージョン用(ver 0.5.0以前)。 現行バージョンは以下のQiita記事を参照: https://qiita.com/plotter/items/4eec54eaf3f8fc5e74a0

(旧バージョン用の手順)

  1. Lenovo公式サイトから、ファームウェア(tp_compact_usb_kb_with_trackpoint_fw.exe)をダウンロード
  2. GitHubのダウンロードページから、ファームウェア書き換えツールをダウンロード
  3. 2を解凍して、中にあるku1255-fw-remapper.exeを起動

Keymap tool GUI overview

Keymap tool GUI overview

  1. 「1. Select Original Firmware」 をクリックして、1.でダウンロードした公式ファームウェアを指定。”Original SHA256: “の欄に7116a3819ee094857d21e4671cb6cf953d582372126f0f6728f6b2421eda7bd4と表示されていることを確認
  2. 「2. Select Key Remap csv」をクリックして、3.で解凍したフォルダ内にあるexamplesフォルダの中にあるSwap-Fn-Ctrl.csvを選択
  3. 「3. Modify and Save New Firmware」を押して、変換後のファームウェアに名前を付けて保存。”Modified SHA256: “の欄に123143092dab578550c87a62526b07a6c5f06c047f2455be87971aa51577e300と表示されていることを確認
  4. ThinkpadキーボードをUSBに接続
  5. 変換後のexeを実行して、ファームウェアを更新する
  6. ThinkpadキーボードをUSBから一度抜き、再度差す

以上の手順でFnと左Ctrlが入れ替わる。

その他

設定CSVを編集すれば、任意のキーの入れ替え等が可能。私はFn-Ctrl入れ替えの他に

  • 変換キーと無変換キーにIME ON / OFFを割り当て(MacOS風)
  • 矢印キーと誤打しやすいPageUpとPgDownを無効化

している。詳しくはGitHubのREADMEを参照。

もし質問などあれば、GitHubのissueから質問して頂ければ幸いです(日本語 or 英語、どちらでもok)。

過去のコメント

旧ブログ(WordPress)でいただいたコメントです。

um ·

ANSI配列のThinkPad有線キーボードで活用させてもらっています。 以下の症状について、知見あればアドバイスほしいです。 このファームウェアやPC上でキーイベントを置き換えるタイプのソフトでCapsLockをCtrlに置き換えた前提での話なんですが、 アプリのショートカットなどに利用するキーコンボで、 Shift+Ctrl(CapsLock)+[1 or 3]は認識されるけど、 Shift+Ctrl(CapsLock)+2 や Ctrl(CapsLock)+2 が認識されない現象に困っています。 この挙動がThinkpadキーボードのハード側の仕様なのかって知ってたりしますか? なお元のCtrlキーを使うとShift+Ctrl+2もCtrl+2も正しく認識されます

haborite ·

コメントありがとうございます。 >Shift+Ctrl(CapsLock)+2 や Ctrl(CapsLock)+2が認識されない これはキーボードのハード側の仕様ですね。 いわゆる「Nキーロールオーバー」対応のキーボードで無い限り、3キー以上になると同時押しが不可能な組み合わせが必ず発生します。 私の以下の投稿をご覧いただければ幸いです。 https://github.com/lentinj/tp-compact-keyboard/issues/32#issuecomment-3040501846 ↑に添付した表において、3つのキーを選んだ時に、「行・列ともに他の2キーと重複する」キーが発生してしまう時、3番目に押したキーが認識されなくなります。 これは、物理的な電気配線上の制約ですので、「CapsLockの位置にあるキー」と「Left Shiftの位置にあるキー」と「2の位置にあるキー」は、配線に手を加えない限りは絶対に同時に発火させられない、ということです。 Thinkpadキーボードに限らず、一般的な「Nキーロールオーバー非対応」のキーボードには必ずこのような電気配線上の制約があります。

haborite ·

......と思いましたが、Shiftキーの列にはほとんどキーがアサインされていないので、これを上手く使えば3キー同時押し可能な組み合わせを増やせることに気づきました(3キー押した時に、上表の中で残り一つの頂点に相当するキーが未アサインになる場合は一意に特定できる)。ファームウェアの大幅な改造が必要ですが、工夫できる余地はあると思います。 >Ctrl(CapsLock)+2 が認識されない 誤読していてすみませんが、これは認識されるはずです(私も普段使っているcombination key)。

haborite ·

検証してみたところ、うまく行ったので、ku1255-firmware-modifierの新バージョンをリリースしました。 https://github.com/haborite/ku1255-firmware-modifier/releases/tag/v0.9.0 こちらで作ったファームウェアを適用することで、それらのコンビネーションキーが使えるようになります。

um ·

インストールして手元で動作確認できました! すごい!!!!!本当にありがとうございます!!日常的に使うコンビネーションだったので、めちゃくちゃ嬉しいです。 指摘の通り、前のファームウェアで"Ctrl(CapsLock)+2"は動いていました。簡略化して伝えようと推敲した末に削りすぎてました。 実際に使えないと気づいたのは、 "Alt+Shift+Ctrl(CapsLock)+2" "Shift+Ctrl(CapsLock)+2" この2つでしたが、v0.9.0でバッチリ使えるようになりました。 ハードの制約かなーと思いつつ、インストールするときにREADMEの"Limitation of combination keys"の項目まで読まなかった結果こちらにコメントしたのですが、まさか解決方法が見つかるとは。 正直キーの特定ロジックの実態がいまいちつかめていませんが、GitHub上のCommitを追って理解してみようと思います。 > https://github.com/lentinj/tp-compact-keyboard/issues/32#issuecomment-3687692311 別の方も書いていますが、GitHub Sponsorsなどサポートする手段があれば協力させてもらいます。 ありがとうございました!

haborite ·

私のコミットはかなり汚いので、たぶんそこから辿るのは難しいと思います。Qiitaに簡単な解説がありますので、もしご興味があればそちらを参照頂ければと思います。 https://qiita.com/plotter/items/76e828bd9714492a29cc

コメント