回答:
タッチパッドをオフにするには:
synclient TouchpadOff=1
オンに戻すには:
synclient TouchpadOff=0
あなたが試すことができる少なくとも2つの方法(私が知っている)があります。
ラップトップにSynaptics(またはALPS)タッチパッドが装備されている場合、synclient
Shutupsquareで既に述べたように、実際に使用できます。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
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
いる必要があります。
いずれかでプロパティを設定する場合、xinput
またはsynclient
プロパティが他のツールに設定されていない場合。また、Unity-Control-Centerには設定されていません。
synclient
うまくいかxinput
なかった
xinput
IDは再起動時に変わる可能性があることに注意してください。そのため、スクリプトまたはショートカットでこれらのIDに依存しても機能しません。
synclient
Arch Linuxで完全に動作します。ありがとうのであまり!!!
xinput <enable/disable> <id>
設定が効果的ではないため、実行する必要があることがわかりました。TouchpadOff
synclient
xinput
。私は組み込みのキーボードとトラックポイントボタンを使って、外部キーボードからの入力を妨げる悪い入力を送信したようです。これにより、組み込みデバイスを無効にできました。乾杯!:)
synclient
そしてxinput
、それはあなたがしたいそうだとすれば、設定を上書きしますので、あなたは、GNOME(または団結、シナモン)環境を使用していない仕事かどうsynclient
かxinput
、これらの設定を引き継ぐために、あなたはその最初を無効にする必要があります:
インストールdconf-editor
されていない場合はインストールします。
apt-get install dconf-editor
走る dconf-editor
dconf-editor
ディレクトリを開く/org/gnome/settings-daemon/plugins/mouse/
か/org/cinnamon/settings-daemon/plugins/mouse/
、のチェックボックスをオフにしますactive
。
logout
または reboot
これによりsynclient
、xinput
動作するはずです。
入力デバイスをリストします。
xinput list
私の場合、私はこのリストを持っています:
Virtual core XTEST pointer id=4
Logitech M510 id=11
ETPS/2 Elantech Touchpad id=15
IDを渡すことでタッチパッドを無効にします
xinput set-prop 15 "Device Enabled" 0
xinput enable [device]
、とをxinput disable [device]
直接使用できます。ただし、スクリプトを作成するときset-prop [device] "Device Enabled" [value]
は、World Python Developerの答えのように、使用が少し簡単になる場合があります。
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()
Gnomeでは、タッチパッドを切り替えるファンクションキーが何らかの理由で機能しなかったため、gsettingsを使用してスクリプトを作成しました。
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でも動作するはずですが、テストしていません。