web-dev-qa-db-ja.com

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

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

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

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

15
Thomas

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

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/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 このようにタッチパッドを有効または無効に切り替えるには:

enter image description here

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

23
Almas Dusal

ショートカットが必要ですが、デスクトップに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

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

10
negusp

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

〜$ xinput 
⎡仮想コアポインターid = 2 [マスターポインター(3)] 
⎜↳仮想コアXTESTポインターid = 4 [スレーブポインター(2)] 
⎜↳PixArt Dell MS116 USBオプティカルマウスid = 10 [スレーブポインター(2)] 
⎜↳SynPS/2 Synaptics TouchPad id = 14 [スレーブポインター(2)] 
⎜↳ DLLC6B2:00 06CB:75BFタッチパッドid = 12 [スレーブポインター(2)] 
⎣仮想コアキーボードid = 3 [マスターキーボード(2)] 
↳仮想コアXTESTキーボードid = 5 [スレーブキーボード(3)] 
↳電源ボタンid = 6 [スレーブキーボード(3)] 
↳ビデオバスid = 7 [スレーブキーボード(3)] 
↳電源ボタンid = 8 [スレーブキーボード(3)] 
↳スリープボタンid = 9 [スレーブキーボード(3)] 
↳統合_Webcam_HD id = 11 [slave keyboard(3)] 
↳AT Translated Set 2 keyboard id = 13 [slave keyboard(3)] 
↳Dell WMI hotkeys 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

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

6
hermeslm

@ Almas Dusalの回答 のように、これは @ neguspの回答 のようになりますが、変更されたスクリプトを代わりに使用します。

read TPdevice <<< $( xinput | sed -nre '/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"
    zenity --info --text "Touchpad DISABLED" --timeout=2
else
    xinput --enable "$TPdevice"
    zenity --info --text "Touchpad ENABLED" --timeout=2
fi

次に、ショートカットキーを割り当てます Ctrl + Alt + P (または、あなたが選択したもの[私の場合、 'P'はtouch'P'adを表します])。上記のスクリプトへの私の追加は、zenity自己閉じるポップアップウィンドウパーツです。これについては、ここでの回答で詳しく説明します(- https://superuser.com/ a/1310142/425838 )。

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

enter image description here

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

enter image description here

パーフェクト!

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

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

enter image description here

1
Gabriel Staples

私の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
0
Samuli Asmala

ここにスクリプトを残します(上記とほぼ同じです)。箱から出してすぐに使用でき、デバイス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
erosb

シェルスクリプトを作成し、以下のコードを貼り付けて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番目のスクリプトはタッチパッドを有効にします。

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

0