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)。

6 Comments

  1. 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も正しく認識されます

    1. コメントありがとうございます。

      >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キーロールオーバー非対応」のキーボードには必ずこのような電気配線上の制約があります。

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

        >Ctrl(CapsLock)+2 が認識されない
        誤読していてすみませんが、これは認識されるはずです(私も普段使っているcombination key)。

          1. インストールして手元で動作確認できました!
            すごい!!!!!本当にありがとうございます!!日常的に使うコンビネーションだったので、めちゃくちゃ嬉しいです。

            指摘の通り、前のファームウェアで”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などサポートする手段があれば協力させてもらいます。
            ありがとうございました!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です