web-dev-qa-db-ja.com

蓋が下がっている間はタッチパッドを無効にします

Kubuntu 11.10(ネットブック版)

妻のネットブックには次の問題があります。蓋を閉じると、時々タッチパッドが作動します-小さな動きとタップが発生します。ノートブックは、ACアダプターが差し込まれている間はスリープ状態にならないように設定されているため、蓋が閉じられるたびに、ノートブックはそれ自体で動作を続けます。

映画を一時停止して寝るときは特に迷惑です。しばらくすると、プレーヤーのウィンドウをタップして映画を再開し、周りのみんなのがらくたを怖がらせます。

ふたが下がっているときにタッチパッドを無効にするオプションが見つかりませんでしたが、手動で接続して無効/再有効化できるイベントがありますか?

6
Attila O.

誰も私が望んでいたことを正確に行う方法を教えてくれないので、ここに私が思いついた解決策があります:

タッチパッド/マウスを無効にする

$ xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ FSPPS/2 Sentelic FingerSensingPad         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)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ USB2.0 UVC PC Camera                      id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ MSI Laptop hotkeys                        id=13   [slave  keyboard (3)]

ご覧のとおり、私のタッチパッドはid=12のタッチパッドです。無効にするには、次を実行する必要があります。

$ xinput set-int-prop 12 "Device Enabled" 8 0

再度有効にするには:

$ xinput set-int-prop 12 "Device Enabled" 8 1

蓋の状態を取得する

まず、このファイルからシステムの蓋の状態を取得できます。

$ cat /proc/acpi/button/lid/LID0/state 
state:      open

蓋を閉じると、状態はclosedになります。

状態を変数として取得するために、気の利いたgrepコマンドの終了ステータスを確認できます。

$ grep -q closed /proc/acpi/button/lid/*/state
$ echo $?
1

したがって、蓋の状態に応じてタッチパッドを有効または無効にするには、次の操作を行うだけです。

$ grep -q closed /proc/acpi/button/lid/*/state
$ xinput set-int-prop 12 "Device Enabled" 8 $?

ACPIリッドイベントのフック

ふたが閉じたり開いたりするたびに上記のコマンドを実行するために、次の内容の/etc/acpi/local/lid.sh.postファイルを作成しました。

export XAUTHORITY=`ls -1 /home/*/.Xauthority | head -n 1`
export DISPLAY=":`ls -1 /tmp/.X11-unix/ | sed -e s/^X//g | head -n 1`"

grep -q closed /proc/acpi/button/lid/*/state
xinput set-int-prop 12 "Device Enabled" 8 $?

XAUHTORITYおよびDISPLAYは、rootacpidプロセスを実行するユーザー)がユーザーのXセッションにアクセスできるように設定する必要があります。

9
Attila O.

できることは、蓋を閉じる前にコンピューターをスリープ状態にすることです。そうすれば、電源ボタンを押すとスリープが再開され、蓋を閉じてもタッチパッドには影響しません。

別の方法として、ターミナル(ctrl + alt + T)を開いて入力することもできます

Sudo rmmod psmouse

USBマウス、ワイヤレス、またはその他を許可しますが、タッチパッドをシャットダウンします。

また、タッチパッドインジケータをインストールするオプションがあります。これは、タッチパッドを無効にする簡単な方法を提供します

Sudo add-apt-repository ppa:atareao/atareao
Sudo apt-get update
Sudo apt-get install touchpad-indicator

[アプリケーション]> [アクセサリ]の下にあります。または、UIに応じて、音量ボタンの横にある小さな「タッチパッドのような」ボタンになります

2
Jester

このような機能も本当に欲しいのですが、これからはショートカットでふたを閉じる前にタッチパッドを無効にする習慣を取りました(ここではFn + F7、ラップトップのメーカーとモデルによって異なります)。確かに、これは問題をまったく解決しませんが、それは大きな始まりです。ラップトップにキーバインドプリセットがない場合は、手動でバインドする方法があると確信しています。

0
acerspyro