タッチパッドを有効/無効にする


17

asus ux501 vwにUbuntu 16.04をインストールできましたが、ショートカットの一部が機能していません。すべてを修正するつもりはありませんが、タッチパッドを有効または無効にすることができるショートカットです。タッチパッドに関する作業で長い文書を書くことができます。

私はグーグルでそれを見つけようとしましたが、何も得られませんでした。

誰かがそれを修正する方法を教えてもらえますか?ありがとう!

回答:


24

このbashスクリプトは、neguspの答えから作成しました。TouchPadデバイスを見つけて切り替えます。システム設定で、カスタムショートカットを設定できます。

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' )
state=$( xinput list-props "$TPdevice" | grep "Device Enabled" | grep -o "[01]$" )

if [ "$state" -eq '1' ];then
    xinput --disable "$TPdevice" && notify-send -i emblem-nowrite "Touchpad" "Disabled"
else
    xinput --enable "$TPdevice" && notify-send -i input-touchpad "Touchpad" "Enabled"
fi

次のように、タッチパッドの有効化と無効化を切り替えるためにCtrl+ Shift+ F9を設定しています。

ここに画像の説明を入力してください

編集:chmod + x filenameコマンドを使用してスクリプトを実行可能にするか、カスタムショートカットウィンドウのコマンドフィールドに/ bin / bash / filepathを入力する必要がある場合があります。


2
grepとを連鎖させる必要はほとんどありませんsed。この2つを簡単に統合できますsed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'
デビッドフォースター

3
[:::整数式は、タッチパッドにデバイスの変更タッチパッドを見つけることができませんでし予想エラーライン6取得した後のUbuntu 17.10のためのスクリプトの小さな修正
グレゴールGrajzar

1
素晴らしい答え!私の唯一の追加は、新しいブロックを追加zenity --info --text "Touchpad DISABLED" --timeout=2し、ブロックを追加しzenity --info --text "Touchpad ENABLED" --timeout=2て、新しい状態を知らせるウィンドウをポップアップし、2秒後に自動的に閉じることです。ifelse
ガブリエルステープルズ

1
ここで私のわずかな変更を参照してください:askubuntu.com/a/1109515/327339
ガブリエルステープルズ

1
更新:一部のシステムはからの出力ではTouchpadなく表示されるため、両方を検索するように回答を更新しました。また、を使用して、スロースクロールホイールの問題も適切に修正しました。ここでフルANSを参照してください:askubuntu.com/questions/844151/enable-disable-touchpad/...TouchPadxinputimwheel
ガブリエルステープルズに

11

ショートカットが必要ですが、デスクトップに2つのスクリプトを簡単に配置して実行できます。

まず、ターミナルに移動します。を入力しxinputます。出力例:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics 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)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_1.3M             id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys 

タッチパッドを見つけます。この例では、タッチパッドはid = 12としてリストされています

これで最初のスクリプトを作成します。

#!/bin/bash
xinput enable 12

保存して名前を付けtouchpadenable.sh、ターミナルで実行可能としてマークします:

chmod +x touchpadenable.sh

まったく同じことをもう一度行いますが、ファイルの名前をtouchpaddisable.sh(または何でも)に変更し、代わりに

xinput enable 12

コマンドを使用する

xinput disable 12

保存して実行可能としてマークすると、デスクトップからスクリプトを実行できるはずです。注:スクリプトを右クリックし、プロパティをクリックして、実行を許可する必要がある場合があります。


答えてくれてありがとう!このようなものを使用します!同じショートカットを使用できるように、1つのスクリプトファイルで作成すると可能になると思いますか?
レイ

:@Thomasこの回答を参照してくださいaskubuntu.com/questions/597395/...
negusp

6

neguspの答えのようにする必要があります。最初にタッチデバイスを確認すると、次のようなメッセージが表示されます。

〜$ xinput
⎡仮想コアポインターid = 2 [マスターポインター(3)]
↳↳仮想コアXTESTポインターid = 4 [スレーブポインター(2)]
↳↳PixArt Dell MS116 USBオプティカルマウスid = 10 [スレーブポインター(2)]
PS↳SynPS / 2 Synaptics TouchPad id = 14 [スレーブポインター(2)]
↳↳DLLC6B2:00 06CB:75BFタッチパッドid = 12 [スレーブポインター(2)]
⎣仮想コアキーボードid = 3 [マスターキーボード(2)]
    ↳仮想コアXTESTキーボードid = 5 [スレーブキーボード(3)]
    ↳電源ボタンid = 6 [スレーブキーボード(3)]
    ↳Video Bus id = 7 [スレーブキーボード(3)]
    ↳電源ボタンid = 8 [スレーブキーボード(3)]
    ↳スリープボタンid = 9 [スレーブキーボード(3)]
    ↳Inte​​grated_Webcam_HD id = 11 [スレーブキーボード(3)]
    Translate AT Translated Set 2 keyboard id = 13 [スレーブキーボード(3)]
    ↳Dell WMIホットキーid = 15 [スレーブキーボード(3)]
    ↳DELLワイヤレスホットキーid = 16 [スレーブキーボード(3)]

私の場合、デバイスはid = 12で、「bin」という名前のフォルダーの下のデスクトップフォルダーに「toggle-touch」という名前のbashスクリプトを作成します。「〜/ Desktop / bin」で、次のコードをコピーして、デバイス変数は私のタッチID = 12を指し、あなたのケースでそれを修正します:

#!/bin/bash

device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`

if [ $state == '1' ];then
  xinput --disable $device
else
  xinput --enable $device
fi

このスクリプト実行許可に設定します。

chmod 775 /Desktop/bin/toggle-touch

最後に、ホームフォルダーから「.bashrc」にこのパスを追加できます。ファイルの最後に次の行を追加します。

PATH=$PATH:~/Desktop/bin

以下でパスを更新します。

. .bashrc

そうすれば、どこからでもこのスクリプトを実行できます。このヘルプを願っています。


1

私のUbuntu 18.04では、Almas Dusalの答えはTouchPad、彼のコードの次の行で「p」を小文字に変更するまで機能しませんでした:

read TPdevice <<< $( xinput | sed -nre '/Touchpad/s/.*id=([0-9]*).*/\1/p' )

その後、タッチパッドはスクリプトによって正常に無効化および有効化されましたが、マウスとタッチパッドの設定画面には反映されませんでした。設定ビューの更新中にタッチパッドを切り替える次の新しいスクリプトを作成しました。

#!/bin/bash

state=$( gsettings get org.gnome.desktop.peripherals.touchpad send-events )

if [ "$state" = "'enabled'" ];then
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled' \
        && notify-send -i touchpad-disabled-symbolic "Touchpad" "Disabled"
else
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'enabled' \
        && notify-send -i input-touchpad-symbolic "Touchpad" "Enabled"
fi

1

Ubuntu 14.04、16.04、および18.04でテストおよび動作します。

好き@Almas Dusalの答えのように行い、@ neguspの答え、それは持っているので、代わりに私の修正スクリプトの使用を除いて、3つの追加の利点:利益が1以下3は、2019年9月12日に追加されたUPDATEを:)

  1. xinput両方のTouchpadANDの出力を検索します。TouchPadシステムによってはPが大文字であるものとそうでないものがあるためです。これにより、私のスクリプトはより多くのシステム(できればすべてのシステム)と互換性があります。
  2. zenityタッチパッドが有効になっているか無効になっているかを示すために、2秒の自動終了ポップアップウィンドウが追加されます。以下のこれらのポップアップウィンドウのスクリーンショットを参照してください。
  3. それは適切にできるように、あなたのスクロールホイール速度を修正しimwheel、あなたがマウスを使用しているとき無効ながら、(マウスのスクロールホイールを使用した場合のUbuntu / Linuxの中であなたのスロースクロールホイールの問題を修正する)imwheelタッチパッドを使用しているときから、imwheelそうでない場合は、実際にグリッチをスクロールタッチパッドを作ります有効にした場合。
#!/bin/bash

# GS_toggle_touchpad.sh
# - toggle the touchpad on and off

# Gabriel Staples
# Written: 2 Apr. 2018 
# Updated: 12 Sept. 2019 

# References:
# - /ubuntu//a/874865/327339
# - /ubuntu/844151/enable-disable-touchpad/1109515#1109515 <-- my own ans!

# Search for id number of "TouchPad" OR "Touchpad" in `xinput` list; manually type `xinput` to see all your devices
read TouchPadDeviceId <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' ) 

state=$( xinput list-props "$TouchPadDeviceId" | grep "Device Enabled" | grep -o "[01]$" )

echo "TouchPadDeviceId = $TouchPadDeviceId"
echo "state = $state"

if [ "$state" -eq '1' ];then
    xinput --disable "$TouchPadDeviceId"
    zenity --info --text "Touchpad DISABLED" --timeout=2
    # Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here: 
    # /ubuntu//a/991680/327339
    # imwheel -b "4 5"
else
    xinput --enable "$TouchPadDeviceId"
    zenity --info --text "Touchpad ENABLED" --timeout=2
    # Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here: 
    # /ubuntu//a/991680/327339
    # killall imwheel
fi

スクロールホイールの速度も修正するためにこの回答に従っている場合にのみ、動かないことが必要になることに注意してください。Chromeのスクロール速度を永続的に修正します

ここで、Ctrl+ Alt+のショートカットキーP(または[P]はtouch'P'adを意味します)を選択します)。上記のスクリプトに追加されたのは、zenity自己閉じるポップアップウィンドウパーツです。これについては、こちらの回答(/superuser//a/1310142/425838)で詳しく説明します

さて、上のショートカットを使用すると、次のポップアップウィンドウが表示され、2秒後に自動的に閉じます。

ここに画像の説明を入力してください

そしてもう一度押すと、2秒後に自動的に閉じるこのポップアップウィンドウが表示されます。

ここに画像の説明を入力してください

パーフェクト!

追加のボーナスとして、もしあなたがヘビーマウスユーザーなら、上記のスクリプトを呼び出すコマンドをUbuntuのスタートアッププログラムに追加するだけで、コンピューターが起動するたびにトラックパッドが実行され無効になります!このセットがあるので、トラックパッドを手の付け根にぶつけて、常に誤ってものを削除するのをやめることができます!これで、私の手がトラックパッドにぶつかっても、無効になっているため何も起こりません。:)

注:これはすべて、Ubuntu 18.04と古いバージョンでうまく機能します。Ubuntu 18.04およびUbuntu 14.04でテストしました。18.04のショートカット設定ウィンドウのスクリーンショットは次のとおりです。

ここに画像の説明を入力してください

関連:

  1. Chromeのスクロール速度を永続的に修正します

HP Probookで再度有効にしません。そこXINPUTでの2つの項目は、SynPS/2 Synaptics TouchPadSYNA306A:00 06CB:CD0B Touchpad。最初の実行では一方が無効になり、2番目の実行では他方が無効になります。そこから2番目を切り替えますが、最初は切り替えません。
rtaft

0

ここにスクリプトを残します(上記とほぼ同じです)。箱から出してすぐに使用でき、デバイスIDを事前に検索する必要はありません。

#!/bin/bash

function query_device_id {
    xinput list | grep -i touchpad | sed 's/.*id=\([0-9]*\).*/\1/g'
}

let device_id=$(query_device_id)

let state=$(xinput list-props $device_id | grep Enabled | awk '{print $4;}')

let new_state=$((1 - $state))

xinput set-prop $device_id "Device Enabled" $new_state

0

シェルスクリプトを作成し、以下のコードをそれに貼り付けてtouchPadDisable.shという名前を付けます

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput disable $temp

別のシェルスクリプトを作成し、その下にコードを貼り付けてtouchPadEnable.shという名前を付けます

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput enable $temp

最初のスクリプトはタッチパッドを無効にし、2番目のスクリプトはタッチパッドを有効にします。

このスクリプトをキーボードのカスタムショートカットに追加できます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.