コマンドラインを使用してタッチパッドを無効にするにはどうすればよいですか?


39

端末コマンドを使用してタッチパッドを無効にする方法はありますか?

回答:


55

タッチパッドをオフにするには:

synclient TouchpadOff=1

オンに戻すには:

synclient TouchpadOff=0

シンプルですが、要点を説明します。
アデマルササアクバル14年

7
私のコンピューターでは動作しません...
キャスパー14

興味深い、知っておくと良い。
-aleroxac

2
コマンドは、Dell XPS 13上のUbuntu 14.04 LTSでエラーなしで実行されましたが、効果はありませんでした。
IJケネディ

トグルはいいだろう-私はそれをショートカットまたは何かとして設定したいと思います。いっそのこと、それがドッキングされていますとき、私はオフタッチパッドたい
クリスチャンBongiorno

22

あなたが試すことができる少なくとも2つの方法(私が知っている)があります。

シンクライアント

ラップトップにSynaptics(またはALPS)タッチパッドが装備されている場合、synclientShutupsquareで既に述べたように、実際に使用できます。Ubuntu 14.04を実行していますが、私のマシンにはデフォルトでインストールされています。

synclientがインストールされているかどうかをテストしますsynclient -V(バージョン番号を報告する必要があります)

タッチパッドをオンにします: synclient TouchpadOff=0

タッチパッドをオフにします: synclient TouchpadOff=1

私はこれを自分でテストしていませんが、腕がタッチパッド上にあるときにマウスを動かさないことが目標であれば、これが役立つかもしれません。

手のひらの検出をオンにする: synclient PalmDetect=1

手のひらの検出をオフにする: synclient PalmDetect=0

一般的に、Synapticsタッチパッドのプロパティはで設定できますsynclient property=value。プロパティは、次のように表示される使用可能なプロパティの1つです。synclient -l

さらに読むためのリンク

Ubuntu-コミュニティヘルプWiki-SynapticsTouchpad

archlinux-wiki-タッチパッドシナプス

ubuntuに尋ねる-シンクライアント設定を固定するにはどうすればよいですか?-Ubuntu

xinput

synclientを使用したくない、または使用できない場合は、を使用することもできますxinput。手順は多少似ています。

すべてのxinputデバイスをリストします。 xinput

出力の一部は次のようになります。

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse           id=13   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=17   [slave  pointer  (2)]

この特定のケースでは、タッチパッドのIDは17で、そのフルネームは「ETPS / 2 Elantech Touchpad」です。

プロパティを設定するコマンドはxinput set-propです。タッチパッドを有効または無効にするプロパティはです。有効にするにはDevice Enabled、次のように入力します。

タッチパッドをオンにしますxinput set-prop <id> "Device Enabled" 1(ここで、<id>お使いのデバイスIDは、私の場合17には、あります)

タッチパッドをオフにします: xinput set-prop <id> "Device Enabled" 0

手のひらの検出をオンにする: xinput set-prop <id> "Palm Detection" 1

手のひらの検出をオフにする: xinput set-prop <id> "Palm Detection" 0

利用可能なプロパティを照会するには:xinput list-props <id>OR xinput list-props <full-name>、これはにかなり似てsynclient -lいる必要があります。

さらに読むためのリンク

Ubuntu-wiki-入力

注意

いずれかでプロパティを設定する場合、xinputまたはsynclientプロパティが他のツールに設定されていない場合。また、Unity-Control-Centerには設定されていません。


1
2番目の回答をありがとう。synclientうまくいかxinputなかった
ロビンウィンスロー14年

1
xinputIDは再起動時に変わる可能性があることに注意してください。そのため、スクリプトまたはショートカットでこれらのIDに依存しても機能しません。
ロード

synclientArch Linuxで完全に動作します。ありがとうのであまり!!!
セオドアR.スミス

これは私のためにそれをしました。特に、viaのxinput <enable/disable> <id>設定が効果的ではないため、実行する必要があることがわかりました。TouchpadOffsynclient
マイケルモル

の紹介をありがとうxinput。私は組み込みのキーボードとトラックポイントボタンを使って、外部キーボードからの入力を妨げる悪い入力を送信したようです。これにより、組み込みデバイスを無効にできました。乾杯!:)
sjakobi

4

synclientそしてxinput、それはあなたがしたいそうだとすれば、設定を上書きしますので、あなたは、GNOME(または団結、シナモン)環境を使用していない仕事かどうsynclientxinput、これらの設定を引き継ぐために、あなたはその最初を無効にする必要があります:

  1. インストールdconf-editorされていない場合はインストールします。

    apt-get install dconf-editor
    
  2. 走る dconf-editor

    dconf-editor 
    
  3. ディレクトリを開く/org/gnome/settings-daemon/plugins/mouse//org/cinnamon/settings-daemon/plugins/mouse/、のチェックボックスをオフにしますactive

  4. logout または reboot

これによりsynclientxinput動作するはずです。


1
  1. 入力デバイスをリストします。

    xinput list
    

    私の場合、私はこのリストを持っています:

    Virtual core XTEST pointer                  id=4
    Logitech M510                               id=11   
    ETPS/2 Elantech Touchpad                    id=15
    
  2. IDを渡すことでタッチパッドを無効にします

    xinput set-prop 15 "Device Enabled" 0
    

手動で入力する場合xinput enable [device]、とをxinput disable [device]直接使用できます。ただし、スクリプトを作成するときset-prop [device] "Device Enabled" [value]は、World Python Developerの答えのように、使用が少し簡単になる場合があります。
hsandt

1

xinput手動ですべての作業を行わずにこの手法を使用できるように、Pythonコードを作成しました。コピーレフト、現状のまま、無保証、自己責任で使用。私にとってはうまく機能します。また、gnomeを使用している場合は、のようなキーショートカットにマッピングするだけCtrlShiftTです。

#!/usr/bin/python2
# -*- coding: utf-8 -*-
'''Program to toggle Touchpad Enable to Disable or vice-versa.'''

import commands
import re


def current_id():
    """ Search through the output of xinput and find the line that has the
    word TouchPad.  At that point, I believe we can find the ID of that device."""

    props = commands.getoutput("xinput").split("\n")
    match = [line for line in props if "TouchPad" in line]
    assert len(match) == 1, "Problem finding Touchpad string! %s" % match

    pat = re.match(r"(.*)id=(\d+)", match[0])
    assert pat, "No matching ID found!"

    return int(pat.group(2))


def current_status(tpad_id):
    """Find the current Device ID, it has to have the word TouchPad in the line."""

    props = commands.getoutput("""xinput list-props %d""" % tpad_id).split('\n')
    match = [line for line in props if "Device Enabled" in line]
    assert len(match) == 1, "Can't find the status of device #%d" % tpad_id

    pat = re.match(r"(.*):\s*(\d+)", match[0])
    assert pat, "No matching status found!"
    return int(pat.group(2))

def flop(tpad_id, status):
    """Change the value of status, and call xinput to reverse that status."""
    if status == 0:
        status = 1
    else:
        status = 0

    print "Changing Device #%d Device Enabled %d" % (tpad_id, status)
    commands.getoutput("""xinput set-prop %d "Device Enabled" %d""" % (tpad_id, status))

def main():
    """Get curent device id and status, and flop status value."""
    tpad = current_id()
    stat = current_status(tpad)
    flop(tpad, stat)

main()

0

Gnomeでは、タッチパッドを切り替えるファンクションキーが何らかの理由で機能しなかったため、gsettingsを使用してスクリプトを作成しました。

  • 利点:ベンダー固有ではありません
  • 欠点:Gnomeでは、何らかの理由でタッチパッドのクリック(タップではない)が引き続き処理されますが、xinputソリューションは期待どおりにタッチパッドを完全に非アクティブにします。私のような場合、あなたの唯一の問題は、入力中に誤ってカーソルを移動していることですが、それで十分です。

toggle_touchpad_gsettings.py

#!/usr/bin/python3.6
import sys
import subprocess

gsettings_schema, gsettings_key = "org.gnome.desktop.peripherals.touchpad", "send-events"

def get_touchpad_send_events():
    send_events_value = subprocess.check_output(["gsettings", "get", gsettings_schema, gsettings_key])
    return send_events_value.strip()

def toggle_touchpad():
    # string returned from get is a repr including quotes,
    # but string sent with set does not need to have quotes
    if get_touchpad_send_events() == b"'enabled'":
        newval = 'disabled'
    else:
        newval = 'enabled'
    subprocess.Popen(["gsettings", "set", gsettings_schema, gsettings_key, newval])
    print(f"Set {gsettings_schema}:{gsettings_key} to {newval}")

def main():
    toggle_touchpad()

if __name__ == '__main__':
    main()

Unityでも動作するはずですが、テストしていません。

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