
先週購入した Asus ラップトップ (Zenbook 以外) があります。Elantech タッチパッドが搭載されています。動作は次のとおりです。
- エッジスクロールまたは 2 本指スクロール。
- 3本指と2本指。
- 左クリックして右クリックし、ダブルタップします。
完璧ではない唯一の点は、入力中に手のひらがタッチパッドにちょうど当たって、動作がおかしくなることです。コードを書くときに、これは本当に面倒です。
誰か助けてくれませんか?
出力は次のようになりますxinput list
:
Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ ASUS USB2.0 Webcam id=9 [slave keyboard (3)]
↳ Asus WMI hotkeys id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
出力: ps aux | grep syndaemon
jason 2911 0.0 0.0 20208 948 ? S 2月13日 0:53 syndaemon -i 2.0 -K -R -t
jason 10256 0.0 0.0 13584 928 ポイント/2 S+ 14:18 0:00 grep syndaemon
答え1
本当に望んでいることではないことは承知していますが (完全に自動化?)、タッチパッドを無効または有効にするキーボード ショートカットを簡単に作成できます。
あなたのからxinput list
、idタッチパッドは12無効にするには、次のコマンドを使用します。
xinput set-prop 12 "Device Enabled" 0
これを有効にするには、以下を使用します。
xinput set-prop 12 "Device Enabled" 1
これらのコマンドをカスタム ショートカット (キーボード / ショートカット / カスタム ショートカット) にバインドします。おそらくこれをスクリプトにすることは可能でしょうか?
答え2
入力中にタッチパッドを無効にする方法は 2 つあります。まずグラフィカルな方法です。ダッシュをクリックして「タッチパッド」と入力し、「マウスとタッチパッド」をクリックして開き、「入力中にタッチパッドを無効にする」ボックスにチェックを入れます。
2番目(同じだと思います)はターミナルを使う方法です。ターミナル(CTRL+ALT+T)を開いて、次のように入力します。
syndaemon -i 2 -d
-i の後の数字は、タッチパッドが再び機能するまでに最後にキーを押してから何秒経過するかを示します。-d オプションは、syndaemon がバックグラウンドで (デーモンとして) 実行を継続するためのものです。
答え3
synaptiks を起動します。起動に失敗することがあるため、少し問題がありました。GUI ダイアログが表示されるまで、もう一度起動してみてください。
ダイアログでは、「キーボード操作時にタッチパッドを自動的にオフにする」と「タッチパッドを再びオンにするまでの待機時間」を設定できます。
「マウスが接続されている場合はタッチパッドを自動的にオフにする」を設定することもできます。
答え4
先ほど作成したこのスクリプトを使用します。xinput --listの出力に従ってキーボードとマウスのデバイスを変更します
kbidle () # disable ELAN touchpad while typing. By Zibri
{
sleep 3;
xinput test "ITE Tech. Inc. ITE Device(8910) Keyboard" | ( while true; do
if read -t 1 a; then
xinput disable "ELAN1200:00 04F3:3090 Mouse";
else
xinput enable "ELAN1200:00 04F3:3090 Mouse";
fi;
done )
}