Ubuntu 16.10 にログインする前にタッチパッドを無効にしたいと思いました。
私は実行しようとした
#!/bin/bash
ID=$(/usr/bin/xinput list --id-only "SynPS/2 Synaptics TouchPad")
if [[ $ID ]]; then
/usr/bin/xinput --disable $ID
echo "Touchpad disabled"
else
echo "Touchpad not found"
fi
systemctl、rc.d などで起動します。X の実行などが必要だったため、何も機能していないようでした。
答え1
次のコードを追加してください
/usr/share/X11/xorg.conf.d/*-synaptics.conf
# Disable generic Synaptics device, as we're using
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SynPS/2 Synaptics TouchPad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
再起動して動作するかテストします。
答え2
Linux Mint 18 をカーネル 4.4.0-45 でインストールしています。タッチパッドの状態を簡単に切り替えられるように、次の操作を実行しました。
sudo apt-get install xinput
xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse id=11 [slave pointer (2)]
⎜ ↳ **FTE1001:00 0B05:0101** ***id=14*** [slave pointer (2)]
タッチパッドの ID を探します。私の場合は 14 です。タッチパッドのオン/オフを切り替える小さなシェル スクリプトを作成しました。
タッチパッドオフ:
cd /usr/local/bin
sudo nano touchpad-off
#!/bin/bash # touchpad off xinput --set-prop 14 "Device Enabled" 0 echo touchpad off
タッチパッドオン:
sudo nano touchpad-on
#!/bin/bash # touchpad on xinput --set-prop 14 "Device Enabled" 1 echo touchpad on
次のコマンドでスクリプトを実行可能にします。
chmod +x touchpad-off chmod +x touchpad-on
これで、ターミナルで
touchpad-off
とを使用してタッチパッドの状態を簡単に切り替えることができるようになりました。touchpad-on
起動時に無効にする:
「スタートアップ アプリケーション」に移動して新しいスタートアップ アプリを追加し、スクリプトを探してリストに追加します。スクリプトが上記の場所にあること、および実行可能であることtouchpad-off
を確認してください。usr/local/bin
もう一度確認する必要があるのは、ファイルが自動実行プロンプトで実行されるかどうかを確認することです。ファイルを右クリックして「プログラムから開く」タブに移動し、「自動実行プロンプト」を選択します。
答え3
私は新しい Thinkpad を購入するたびにこの問題に遭遇するので、他の 2 つの回答を参考にして、もう少し一般化した方法を紹介します。
- タッチパッドの名前を見つけます:
xinput --list
。次のようなものが表示されます:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 Elan TrackPoint id=15 [slave pointer (2)]
⎜ ↳ SYNA8022:00 06CB:CE67 Touchpad id=12 [slave pointer (2)]
⎜ ↳ SYNA8022:00 06CB:CE67 Mouse id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=9 [slave keyboard (3)]
↳ Intel HID events id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=16 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera: Integrated I id=10 [slave keyboard (3)]
私の場合、使用する名前はSYNA8022:00 06CB:CE67 Touchpad
それが本当に正しいデバイスであるかどうかをテストします(再起動も不要です):
xinput --set-prop ID "Device Enabled" 0
IDは上記のコマンドで取得したリストのIDです。これでタッチパッドが無効になった場合は、正しいIDと名前が見つかりました。/etc/X11/xorg.conf.d/
たとえば、次のようにファイルを作成します20_synaptics.conf
(番号は通常どおり、他のファイルに対する順序を定義します)。
# Disable touchpad
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SYNA8022:00 06CB:CE67 Touchpad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
MatchProduct 文字列は、xinput リストで見つかった文字列と同じである必要があります。
- 動作するかどうかをテストするには、Ctrl+Alt+F3 を押してテキスト コンソールに切り替えます (コンソール 3 がすでに使用されている場合は他の番号を試してください)。ログインして、X セッションを開始します。
sudo xinit -- :2
これにより、マシンを再起動せずに 2 番目の X サーバーが起動します。おそらく、ターミナル ウィンドウが 1 つだけ表示されます (ウィンドウ マネージャーが実行されていないため、境界線はありません)。ただし、タッチ パッドが無効になっているかどうかをテストするにはこれで十分です。ターミナル ウィンドウに Ctrl+D と入力して終了できます。