Thinkpad(たとえば、私が使用しているX230)には、トラックポイントとタッチパッドの両方があります。入力中、タッチパッドは無効になります。
ただし、トラックポイントを使用しているときは、タッチパッドにも頻繁に触れ、回避したいマウスクリックを生成します。トラックポイントの使用中に、タッチパッドでのマウスクリックを無効にする方法を誰もが考えていますか?
編集:また、誰かがタイピング時にタッチパッドを無効にするオプションがどのように機能するかを説明できますか?舞台裏で何が行われていますか?それはxinput設定コマンドですか?はいの場合、どれですか?
EDIT2:明確化;タッチパッドを手動で無効にすることは(ショートカットがあっても)ここでは問題ではありません。これは、「入力時にタッチパッドを無効にする」オプションと同じように機能します。これは、タッチパッドとトラックポイントを同じ意味で使用するためです(ほとんどの場合、スクロールにはタッチパッドを使用し、カーソルを移動するにはトラックポイントを使用します)。
この機能は、xserver-xorg-input-synaptics
パッケージのsyndaemon
ユーティリティによって実行されます。アイドル時間、ポーリング頻度などのオプションを設定できます( runtime help を参照):
使用法:syndaemon [-iアイドル時間] [-mポーリング遅延] [-d] [-t] [-k] -i最後のキーの後に待機する秒数タッチパッドを有効にする前に を押します。 (デフォルトは2.0s) -m次のポーリングまで待機するミリ秒数。 (デフォルトは200ms) ... -tのみマウスの動きではなく、タップとスクロールを無効にします。
ソースコードはこちら for syndaemon.c
.
keyboard_activity(...)
およびmain_loop(...)
ですkeyboard_activity
は、 XQueryKeyMap API呼び出しを使用して、キーボードの現在の状態(キーごとに1ビット)を取得します。そして、最後の(古い)状態と比較します。それらが異なる場合、1を返しますmain_loop
ポーリングkeyboard_activity
m
ミリ秒ごとに、「最後のアクティビティ時間」とkeyboard_activity
がtrueまたはfalseを返すかどうかに基づいて、タッチパッドを無効にするか有効にするかを決定します。dp_get_device
関数は、X入力デバイスの列挙方法を示します。これとkeyboard_activity
関数を変更して、トラックポイントアクティビティもチェックできるようにする必要があります。xinput
ツールは、デバイスとIDをリストします。たとえば、
仮想コアポインターid = 2 [マスターポインター(3)] ⎜↳仮想コアXTESTポインターid = 4 [スレーブポインター(2)] ⎜↳SynPS/2 Synaptics TouchPad id = 11 [スレーブポインター(2)] ⎜↳TPPS/2 IBM TrackPoint id = 12 [スレーブポインター(2)]
XListInputDevices 関数を介してこれ(ID)を取得できます
xinput
ユーティリティとquery-state
スイッチおよびデバイスIDを使用して、プログラミングが正しいかどうかを確認できます。次に例を示します。
$ xinput query-state 12 2クラス: ButtonClass button [1] = up button [2] = up button [3] = up button [4] = up button [5] = up button [6] = up button [7] = up ValuatorClass Mode =相対近接= In valuator [0] = 854 valuator [1] = 867
xinput
ソースを参照してくださいこのパッケージを変更および再構築するには:
apt-get source...
でソースを取得しますtools/syndaemon.c
に変更を加えます118...
の124...
行とdebian/patches/series
行をコメント化して、既存のsyndaemon
パッチを無効にしますdpkg-buildpackage -us -uc
でビルドすると、debファイルは親ディレクトリにあります。最初に行うことは、タッチパッドIDを知ることです。
最初にターミナルを開き、このコマンドを実行します
~$ xinput --list
ここでこれを取得しますTouchpad id = <id Number>
その後、キーボードショートカットを開き、以下の2つのコマンドをキーボードショートカットと共に追加します。
# Disable Touchpad:
xinput set-prop <id number> 'Device Enabled' 0
# Enable Touchpad:
xinput set-prop <id number> 'Device Enabled' 1
以下は、電力の使用に悪い可能性のあるローテクのソリューションです(syndaemon -Tパッチは私には機能しませんでした)。
#!/bin/sh
TRACKPOINT_DEV="TPPS/2 IBM TrackPoint"
SLEEP_TIME=5
OLD_XY=0,0,
while true; do
NEW_XY=`xinput query-state "$TRACKPOINT_DEV" |grep valu|awk 'BEGIN { FS = "=" } ; {print $2 ","}'|xargs`
if [ ! "$OLD_XY" = "$NEW_XY" ]; then
synclient TouchpadOff=1
else
synclient TouchpadOff=0
fi
sleep $SLEEP_TIME
OLD_XY="$NEW_XY"
done
トラックポイントを使用していることに気づくのは、幸運なことに、5秒ごとの間隔でしか座標を知ることができないためです。つまり、タッチパッドを無効にすることは保守的ですが、トラックポイントがアイドル状態のときにタッチパッドを確実に再度有効にする必要はありません。
とにかく、Palm Pressからカーソルをさまようことで、ウルトラブックで大いに役立ちます。