回答:
この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を入力する必要がある場合があります。
zenity --info --text "Touchpad DISABLED" --timeout=2
し、ブロックを追加しzenity --info --text "Touchpad ENABLED" --timeout=2
て、新しい状態を知らせるウィンドウをポップアップし、2秒後に自動的に閉じることです。if
else
Touchpad
なく表示されるため、両方を検索するように回答を更新しました。また、を使用して、スロースクロールホイールの問題も適切に修正しました。ここでフルANSを参照してください:askubuntu.com/questions/844151/enable-disable-touchpad/...TouchPad
xinput
imwheel
ショートカットが必要ですが、デスクトップに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
保存して実行可能としてマークすると、デスクトップからスクリプトを実行できるはずです。注:スクリプトを右クリックし、プロパティをクリックして、実行を許可する必要がある場合があります。
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)] ↳Integrated_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
そうすれば、どこからでもこのスクリプトを実行できます。このヘルプを願っています。
私の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
Ubuntu 14.04、16.04、および18.04でテストおよび動作します。
好き@Almas Dusalの答えのように行い、@ neguspの答え、それは持っているので、代わりに私の修正スクリプトの使用を除いて、3つの追加の利点(:利益が1以下3は、2019年9月12日に追加されたUPDATEを:)
xinput
両方のTouchpad
ANDの出力を検索します。TouchPad
システムによってはPが大文字であるものとそうでないものがあるためです。これにより、私のスクリプトはより多くのシステム(できればすべてのシステム)と互換性があります。zenity
タッチパッドが有効になっているか無効になっているかを示すために、2秒の自動終了ポップアップウィンドウが追加されます。以下のこれらのポップアップウィンドウのスクリーンショットを参照してください。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のショートカット設定ウィンドウのスクリーンショットは次のとおりです。
SynPS/2 Synaptics TouchPad
とSYNA306A:00 06CB:CD0B Touchpad
。最初の実行では一方が無効になり、2番目の実行では他方が無効になります。そこから2番目を切り替えますが、最初は切り替えません。
ここにスクリプトを残します(上記とほぼ同じです)。箱から出してすぐに使用でき、デバイス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
シェルスクリプトを作成し、以下のコードをそれに貼り付けて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番目のスクリプトはタッチパッドを有効にします。
このスクリプトをキーボードのカスタムショートカットに追加できます。
もう1つの方法は、このgnome拡張機能https://extensions.gnome.org/extension/935/toggle-touchpad/をダウンロードすることです
grep
とを連鎖させる必要はほとんどありませんsed
。この2つを簡単に統合できますsed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'
。