スポンサーリンク
2013年10月25日
前回に続き、新型ThinkPadトラックポイント・キーボード(有線版、0B47208)のお話です。スクロール周りに問題があることを書いたので、割と簡単に対応できるいくつかの方法をまとめてみます。無線板(Bluetooth)も同じだと思います。
ミドルボタン(センターボタン、中ボタン)の挙動を変更するので、KeyRemap4MacBookを使います。そこまで使い方に詳しくないということもありますが、KeyRemap4MacBookの使い方は、色々なサイトに説明がありますので省きます。
ミドルクリック(センタークリック、中クリック)が機能(発生)すると、スクロールが効かなくなるので、ミドルボタンの単独クリックを無効にします。ただ、ミドルクリックを必要とするアプリもあるので、コマンドキーとあわせるとミドルクリックとして機能するようにします。
LENOVO 0x17ef LENOVO_0B47208 0x6047 COMMAND + MIDDLE to MIDDLE_CLICK MIDDLE_BUTTON to VK_NONE DeviceVendor::LENOVO, DeviceProduct::LENOVO_0B47208 thinkpad.trackpoint.commandmiddle2middleclick __PointingButtonToPointingButton__ PointingButton::MIDDLE, ModifierFlag::COMMAND_L, PointingButton::MIDDLE __PointingButtonToKey__ PointingButton::MIDDLE, KeyCode::VK_NONE
他のマウスのミドルボタン(ホイールボタン)は機能して欲しいので、デバイスのフィルタリングをしています。
しばらく、この設定で使っていたのですが、いつものようにFirefoxで検索して、気になるリンクをミドルクリックで新規タブに開いて・・・、さてまとめてみようと思ったら、コマンドキーを押し忘れて1つも開いていないことがありました。この設定はイマイチ・・・かな。
ミドルボタンを単独で多用していた人には、慣れるまで使いものにならないと思います。
やっぱりミドルボタン単独で操作したくなります。そこで、ミドルボタンをダブルクリックするとミドルクリックとなるようにしました。根本的な解決にはなりませんが、何かを押しながら操作するより個人的には確実です。ミドルボタンを無効にするのは同じです。ただ、無効と判定される前に、設定時間内(サンプルでは500ms以内)に2回クリックされたらミドルクリックを発生させる処理をいれます。デバイスフィルタは省いていますので、必要に応じて追加します。
DOUBLE_MIDDLE_CLICK to MIDDLE_CLICK thinkpad.trackpoint.doublemiddleclick2middleclick PointingButton::MIDDLE Millisecond::RawValue::500 __PointingButtonToPointingButton__ PointingButton::MIDDLE, PointingButton::MIDDLE __PointingButtonToKey__ PointingButton::MIDDLE, KeyCode::VK_NONE
次は横スクロールの対応ですが、Shiftキーを押しながらの縦スクロールが、横スクロールになるので、特に何もしていません。
Macではトラックポイントを横に動かしても、スクロールイベントが発生しないので、どうにもできません。残念すぎる仕様です。もしかしたら情報があるのかもしれませんが、今のところ不明です。
といっても、個人的にShiftキー以外の選択肢が欲しいので、スクロール中に左クリックボタンまたはコマンドキーで横スクロールに切り替わるようにしています。
MIDDLE + LEFT to HORIZONTAL_SCROLL MIDDLE + COMMAND to HORIZONTAL_SCROLL thinkpad.trackpoint.horizontalscroll __PointingButtonToKey__ PointingButton::LEFT, ModifierFlag::NONE, KeyCode::VK_MODIFIER_EXTRA1, Option::KEYTOKEY_BEFORE_KEYDOWN, KeyCode::VK_MOUSEKEY_LOCK_BUTTON_LEFT, Option::KEYTOKEY_AFTER_KEYUP, KeyCode::VK_MOUSEKEY_LOCK_BUTTON_ALL_FORCE_OFF, __ScrollWheelToScrollWheel__ ModifierFlag::COMMAND_L | ModifierFlag::NONE, ModifierFlag::SHIFT_L __ScrollWheelToScrollWheel__ ModifierFlag::EXTRA1 | ModifierFlag::NONE, ModifierFlag::SHIFT_L
Shiftキーのことを知らずに試した設定です。
縦スクロール時に左クリックボタンを押すと、横にスクロールする設定です。実際は、縦スクロールをアローキー(矢印キー)に変換することでスクロールっぽく見せています。上スクロールで左、下スクロールで右へ移動します。
動くには動きますが、トラックポイントの操作具合によってはカクつきます。また、テキスト編集可能なエディタで実行すると、カーソルが移動するだけなので、アローキーがスクロールとして機能するWebブラウザなどにしか使えないです。
VERTICAL_SCROLL to ARROW_KEY thinkpad.trackpoint.verticalscroll2arrowkey __PointingButtonToKey__ PointingButton::LEFT, ModifierFlag::NONE, KeyCode::VK_MODIFIER_EXTRA1, Option::KEYTOKEY_BEFORE_KEYDOWN, KeyCode::VK_MOUSEKEY_LOCK_BUTTON_LEFT, Option::KEYTOKEY_AFTER_KEYUP, KeyCode::VK_MOUSEKEY_LOCK_BUTTON_ALL_FORCE_OFF, __ScrollWheelToKey__ ScrollWheel::UP, ModifierFlag::EXTRA1 | ModifierFlag::NONE, KeyCode::CURSOR_LEFT __ScrollWheelToKey__ ScrollWheel::DOWN, ModifierFlag::EXTRA1 | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT __PointingButtonToKey__ PointingButton::MIDDLE, KeyCode::VK_NONE
Key Repeatの設定にあるScrollWheel to Keyを短くする必要があります(0など)。
はっきりってイマイチでした\(^o^)/
ただ、前から気になっていたVK_MODIFIER_EXTRAの使い方が分かったような気がします。
以下引用、
xinputでEvdev Middle Button Timeoutの値を変えると中ボタンのプレスイベントの挙動が変わる。この設定では、中ボタンを押して離すまでの時間において、中クリックと認識される許容範囲の指定が出来るみたいだけど、この許容時間を過ぎた後にポインタを動かすと中ボタンのプレスイベントが発生しない。この値の設定次第では、「中ボタンクリック判定はかなりタイトだけど、中ボタンとポインタをほぼ同時押ししなければ中クリック暴発しない」
IBM/Lenovo トラックポイント付き単体キーボード6 2ch – ハードウェア板
Ubuntuでの内容らしいのですが、MacのOS内部については詳しくないので、この点については他の方に期待します。
キャップがロープロファイルという、ちょっと背の低いタイプに変わったんですね。硬くてイマイチだったので、旧型と交換しました。少し頭の部分が飛び出ますが、問題なく使えています。
縦スクロールの使い勝手は以前と全く同じになりました。横スクロールとミドルクリックは少し使い勝手が悪いですが、打鍵感(タッチ感?)が新型のほうが好きなので、しばらくは新型を使ってみましょう。