Chcę, aby mój touchpad był wyłączony podczas używania myszy. Jak mogę to zrobić?
touchpad-indicator
przestał działać 11.10. Pracował 11.04. Gnome3 nie jest rozwiązaniem, ponieważ mi się nie podoba i uważam, że jest wadliwy.
Chcę, aby mój touchpad był wyłączony podczas używania myszy. Jak mogę to zrobić?
touchpad-indicator
przestał działać 11.10. Pracował 11.04. Gnome3 nie jest rozwiązaniem, ponieważ mi się nie podoba i uważam, że jest wadliwy.
Odpowiedzi:
Uruchom następujące polecenie w terminalu:
xinput list
Otrzymasz wyjście, które wygląda następująco:
⎡ 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=13 [slave keyboard (3)]
Wyświetla wszystkie podłączone urządzenia wejściowe. Zauważ, że wszystkie mają identyfikator. Ponieważ 12 to identyfikator mojego touchpada, uruchomienie następującego polecenia spowoduje jego wyłączenie.
xinput set-prop 12 "Device Enabled" 0
W wersjach Ubuntu >12.04
można również bezpośrednio wyłączyć za pośrednictwem
xinput --disable 12
(i włącz za pomocą podobnego polecenia)
xinput -disable 12
do wyłączenia urządzenia wejściowego 12 (lub xinput -enable 12
włączenia go). Zobacz stronę podręcznika xinput (1) .
sprawdź ten link: Jak wyłączyć-włączyć touchpad w Ubuntu 11.10
Znaleziona tam odpowiedź jest naprawdę fajna:
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
Następnie otrzymasz przełącznik w obszarze powiadomień.
Jedyne, czego chciałbym, to móc ustawić klawisz przełącznika na Fn+ F8(który jest klawiszem touchpada na mojej klawiaturze ...
atareao
, może
Na podstawie odpowiedzi udzielonej przez @Peng Wu stworzyłem skrypt bash, którego można użyć ...
#!/bin/bash
declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
xinput set-prop $ID "Device Enabled" 0
echo 'Touchpad has been disabled.'
Możesz go uruchomić ręcznie lub uruchomić przy starcie. Następnie możesz uruchomić skrypt podczas uruchamiania.
Kolejny skrypt bash do przełączania touchpada:
#!/bin/bash
declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
xinput disable $ID
echo "Touchpad disabled."
else
xinput enable $ID
echo "Touchpad enabled."
fi
'Touchpad in mouse emulation mode\s*id\=[0-9]{1,2}'
Touchpad
zamiast TouchPad
. Aby nie rozróżniać wielkości liter, po prostu dodaj i
do opcji grep
synclient TouchpadOff=$(synclient | ruby -ne 'puts ($_.match(/\\d+/)[0].to_i ^ 1) if /TouchpadOff/ =~ $_')
imwheel
: askubuntu.com / pytania / 844151 / enable-disable-touchpad /… . Również moja odpowiedź wyszukuje xinput
jedno TouchPad
i drugie Touchpad
, ponieważ czasami P jest lub nie jest pisane wielkimi literami, w zależności od systemu, więc skrypt może nie działać, jeśli nie wyszukasz obu.
Po prostu w terminalu:
synclient TouchpadOff=1
Jednak powyższe wydaje się już nie działać w Ubuntu 16.04. W takim przypadku xinput
nadal działa:
xinput set-prop `xinput --list | awk '/[Tt]ouch[Pp]ad.*pointer/ {print $7}' | sed 's/id=\(.*\)/\1/'` "Device Enabled" 0
Zamiast xinput
, ze zmiennymi id, które mogą się zmieniać, lepiej użyć, synclient
jak wskazano w innych odpowiedziach, takich jak to .
sudo apt install xserver-xorg-input-synaptics
Aby wyłączyć touchpad:
synclient TouchpadOff=1
Włączyć:
synclient TouchpadOff=0
Do użycia z wyrzutniami lub skrótami, jak powiedziano poniżej.
Jest to tylko zastosowanie poleceń zawartych w tej odpowiedzi w ramach obecnego pytania. Poniższe rozwiązanie jest ograniczone do Xfce / Xubuntu, ale chociaż zrobiłem to przez przypadek, uważam, że jest zbyt eleganckie i nie udostępniam go tutaj. Na początku stworzyłem osobne pytanie , tylko dla Xubuntu. To pytanie nie może być tylko duplikatem tego pytania i może zostać zamknięte z tego powodu, dlatego ośmielam się przesłać tę odpowiedź tutaj.
Chodzi o te dwa polecenia:
Wyłączyć:
xinput set-prop 15 "Device Enabled" 0
Włączyć:
xinput set-prop 15 "Device Enabled" 1
Numer identyfikacyjny zostanie znaleziony po uruchomieniu
xinput list
W ten sposób automatycznie wyłączasz touchpad przy uruchamianiu. Ta metoda spowoduje bezpieczniejsze wyłączenie touchpada według nazwy, a nie identyfikatora. Oto jak uzyskać nazwę touchpada:
$ xinput list --name-only | grep -i Touchpad
ETPS/2 Elantech Touchpad
Utwórz plik skryptu bash. Dodałem plik do aplikacji startowych ubuntu, aby działał przy każdym ponownym uruchomieniu. Pamiętaj, aby plik był wykonywalny. Oto zawartość:
#!/bin/bash
$ xinput disable 'ETPS/2 Elantech Touchpad'
To działało dla mnie w 11.10:
⎡ 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=13 [slave keyboard (3)]
Wyświetla wszystkie podłączone urządzenia wejściowe. Zauważ, że wszystkie mają identyfikator. Ponieważ 12 to identyfikator mojego touchpada, uruchomienie następującego polecenia spowoduje jego wyłączenie.
xinput set-prop 12 "Device Enabled" 0
i umieściłbym go w .bashrc lub czymkolwiek poza tym, że nie jestem pewien, czy urządzenie 12 (właściwie 11 dla mnie) jest zawsze touchpadem.
Teraz, gdybym tylko mógł uruchomić strzałkę w górę nautilius do pracy i zobaczyć katalogi
(ta odpowiedź została skopiowana z nieprawidłowej edycji)
Zamiast pamiętać to polecenie za każdym razem, gdy chcesz włączyć / wyłączyć touchpad, możesz zamiast tego dodać je jako skrót kombinacji klawiatury.
W preferencjach w Skrótach klawiszowych kliknij dodaj. Nadaj nazwę skrótowi, np. „Wyłącz touchpad” lub coś takiego, i dodaj polecenie, które odkryłeś powyżej
xinput set-prop <id> "Device Enabled" 0
i kliknij Zastosuj. Następnie dodaj kolejny skrót o nazwie „Włącz touchpad” lub coś podobnego do pierwszego i zmień poprzednie polecenie na 1 na końcu
xinput set-prop <id> "Device Enabled" 1
są one wyłączone / włączone z szacunkiem.
Teraz, gdy są one dodane, kliknij kolumnę Włącz skrót touchpada (powinien powiedzieć „wyłączony”) i wpisz żądany skrót klawiaturowy, wybrałem Win+ 1(Przytrzymaj klawisz Windows i naciśnij cyfrę 1). Zrób to samo dla Wyłącz Touchpad, wybrałem Win+ 2.
Teraz Win+ 1włącza mój touchpad i Win+ 2wyłącza go.
Używam następującego skryptu, aby włączyć / wyłączyć touchpad. Przypisałem go również do skrótu klawiaturowego.
Zastosowanie: toggle_touchpad.sh [on|off
]
jeśli uruchomisz bez argumentów, po prostu odwróci on obecny stan touchpada.
#!/bin/bash
# toggle_touchpad.sh
is_off=`synclient | grep -Pio "TouchpadOff.*?(\d)" | grep -Eo "[01]"`
if [ -z "$1" ]; then
echo "Inverting touchpad state"
if [ "$is_off" -eq '0' ];then
synclient TouchpadOff=1
notify-send "Touchpad Disabled"
else
synclient TouchpadOff=0
notify-send "Touchpad Enabled"
fi
else
if [ "$1" == "on" ]; then
echo "Turning on touchpad"
synclient TouchpadOff=0
notify-send "Touchpad Enabled"
elif [ "$1" == "off" ]; then
echo "Turning off touchpad"
synclient TouchpadOff=1
notify-send "Touchpad Disabled"
else
echo "Unknown arg! Pass no args or on/off !"
fi
fi
Najpierw sprawdź, czy Twój laptop ma włączoną / wyłączoną skrót klawiaturowy touchpad, przypadkiem! Na moim Lenovo Thinkpad T500 jest Fn+F8
xev
lub xinput
spróbuję użyć przycisku na moim G700, nie zarejestruję nic cholernego. Nawet evemu-record
nic nie rejestruje, i to na poziomie jądra. Jeśli jądro go nie widzi, nie można nic więcej z tym zrobić, niż naprawić sterowniki urządzeń. Biorąc to pod uwagę, jest to świetne rozwiązanie, ale nie jest niezawodne dla wszystkich przypadków użycia.
W moim przypadku fn+F9 jest zamapowany na przełączniku Touchpad .
Ale klawisz nie robi nic, tylko pokazuje ikonę touchpada w prawym górnym rogu ekranu w ten sposób.
Oto rozwiązanie przełączania touchpada przez naciśnięcie skrótu .
$ xinput list
Mam więc plik skryptu bash do przełączania touchpada za pomocą polecenia „xinput” (oryginalny skrypt można znaleźć tutaj ).
W moim przypadku identyfikator touchpada wynosił 12.
#!/bin/bash
device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`
if [ "$state" -eq '1' ];then
xinput --disable "$device"
else
xinput --enable "$device"
fi
Zapisz powyższy plik skryptu w dowolnym .toggleTouchPad.sh
miejscu.
Ostatnim krokiem jest dodanie skrótu klawiaturowego do uruchomienia pliku skryptu.
Więc po prostu napisz sh /PATH/TO/SCRIPT
w Command
oknie skrótów.
Naciśnij skrót i sprawdź, czy touchpad jest włączony.
To działało na ASUS A556UA laptopa i Ubuntu14.04 x64 zainstalowany .
zaproponuj sposób przypisania klawisza przełączania Touchpad do niestandardowego skrótu, aby uzyskać kompletne rozwiązanie
Dla Ubuntu 16.04
Aby wyłączyć touchpad:
xinput --disable $(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//')
i aby włączyć touchpad:
xinput --enable $(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//')
https://bitbucket.org/barseghyanartur/xinput
Jest to bardzo mały kod, który pozwala wyłączyć / włączyć touchpad z terminala.
Po prostu postępuj zgodnie z poniższymi instrukcjami:
Zainstalować:
$ pip install xinput
Wyłącz touchpad:
$ disable-touchpad
Włącz touchpad:
$ enable-touchpad
Wystarczy dodać kilka funkcji bash do .bashrc, aby uzyskać ...
#toggle-touchpad on|off
function touchpadon { /usr/bin/xinput --enable $(xinput --list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') ; echo "touchpad enabled";}
function touchpadoff { /usr/bin/xinput --disable $(xinput --list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') ; echo "touchpad disabled";}
W rzeczywistości bardzo łatwo jest wyłączyć touchpad w Ubuntu. Wystarczy usunąć pakiet xserver-xorg-input-synaptics
wymagany do korzystania z touchpadów w Ubuntu!
sudo apt-get remove xserver-xorg-input-synaptics
Jest to jedyny sposób, aby na stałe wyłączyć touchpad, który dla mnie zadziałał. Inne sposoby były tylko tymczasowe:
xinput list
xinput set-prop IDOFTOUCHPAD "Device Enabled" 0
synclient TouchpadOff=1
Korzystam z LXDE i nie byłem w stanie automatycznie wyłączyć touchpada, dodając te linie do prefiksu ~/.config/lxsession/LXDE/autostart
lub /etc/xdg/lxsession/LXDE/autostart
z nim @
. Zostało to po prostu zignorowane.
Próbowałem wyłączyć touchpad z edytorem dconf (org.gnome.desktop.peripherals.touchpad) i edytorem gconf (desktop.gnome.peripherals.TOUCHPADNAME), ale oba nie działały. Ustawienia edytora dconf nie mają żadnego wpływu, a na edytorze gconf wyświetla komunikat o błędzie „Ten klucz nie ma schematu”.
Próbowałem użyć klawisza funkcyjnego laptopa ( fn), aby wyłączyć wskaźnik i działa. Nie działało to jednak podczas moich 11,04 dni, więc spróbuj.
Co działało dla mnie na Ubuntu 12.04 LTS z laptopem Dell
Chciałem wyłączyć wskaźnik, który znajduje się na środku klawiatury i powoduje wiele problemów podczas pisania. Więc:
$ xinput list
⎡ Virtual core pointer id=2
⎜ ↳ Virtual core XTEST pointer id=4
⎜ ↳ Wacom Graphire2 4x5 eraser id=9
⎜ ↳ Wacom Graphire2 4x5 cursor id=10
⎜ ↳ Wacom Graphire2 4x5 id=11
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=14
⎜ ↳ Macintosh mouse button emulation id=15
⎜ ↳ DualPoint Stick id=13
⎣ Virtual core keyboard id=3
↳ Virtual core XTEST keyboard id=5
↳ Video Bus id=6
↳ Power Button id=7
↳ Sleep Button id=8
↳ AT Translated Set 2 keyboard id=12
The device I want to disable has id 13. Use xinput to list its properties:
$ xinput -list-props 13
Device 'DualPoint Stick':
Device Enabled (115): 0
[...several lines removed...]
$ xinput -set-prop 13 115 0
Spowodowało to wyłączenie drążka Dualpoint. Ale żadna z pozostałych odpowiedzi nie działała dla mnie. Zrobiłem
Zainstaluj dconf-tools
:
sudo apt-get install dconf-tools
dconf-editor
Następnie przejdź do org -> gnome -> demon ustawień -> urządzenia peryferyjne -> touchpad i odznacz pole obsługujące touchpad
Znalazłem dobre rozwiązanie polegające na utworzeniu powiązania klawiszy, które wywoła polecenie:
xdotool key 199
gdzie 199 to kod rozpoznawany jako XF86TouchpadToggle. W ten sposób można stworzyć kombinację klawiszy, aby zachować się jak klawisz specjalny, niektóre laptopy muszą przełączać touchpad, ponieważ środowiska komputerowe takie jak Mate lub Cinnamon radzą sobie doskonale. Możesz sprawdzić kody dostępu za pomocą tego polecenia:
xmodmap -pke
Na moim blogu utworzyłem instrukcję: https://artofcode.wordpress.com/2017/10/01/how-to-add-a-key-binding-to-toggle-a-touchpad-under-linux /
Moim rozwiązaniem jest następujący skrypt tp:
#!/bin/bash
TT=`xinput --list | grep -i touchpad | sed -e "
s/(//
s/)//
s/ //g
"`
set $TT
(( $2 ))
xinput list | grep -iq mouse &&{
xinput --disable $id
}||{
xinput --enable $id
}
Touchpad jest wyłączony, jeśli zostanie wykryta mysz, i włącz, jeśli nie.
Identyfikator touchpada znajduje się w skrypcie.
Mam model notebooka Medion Akoya P7812 z systemem Ubuntu 11.10 (wersja 64-bitowa), a kombinacja klawiszy Fni F6wyłącza touchpad.
Alternatywne rozwiązanie, które działa dla wszystkich touchpadów, bez potrzeby posiadania identyfikatora.
otwórz terminal i napisz „gedit toggle_touchpad.sh”
#!/bin/bash
condition="$(gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled)"
if [ "$condition" == "false" ]; then
gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled true
elif [ "$condition" == "true" ]; then
gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false
fi
Zapisz plik i wyjdź. Teraz masz plik o nazwie „toggle_touchpad.sh”
Uruchom polecenie, chmod +x toggle_touchpad.sh
aby plik był wykonywalny.
Umieść plik w dowolnym folderze, który ci się podoba. Załóżmy, że masz go w folderze / home / nazwa użytkownika / myscripts /.
Z menu w prawym górnym rogu przejdź do system-settings->keyboard->shortcuts->custom-shortcuts
.
Utwórz nowy skrót i nadaj mu dowolną nazwę. Wpisz jako polecenie, /home<username>;/myscripts/toggle_touchpad.sh
gdzie „nazwa użytkownika” to nazwa użytkownika
Przypisz dowolny skrót klawiszowy.
Gotowy :)
PS Osobiście umieszczam plik w /opt/myscripts/
folderze, ale aby go tam umieścić, po utworzeniu pliku należy uruchomić następujące polecenia:
sudo mkdir /opt/myscripts/
sudo mv toggle_touchpad.sh /opt/myscripts/
sudo chown <username>:<username> /opt/myscripts/toggle_touchpad.sh
chmod +x /opt/myscripts/toggle_touchpad.sh
gdzie „nazwa użytkownika” to nazwa użytkownika
Następnie, gdy utworzysz skrót, użyjesz ścieżki „/opt/myscripts/toggle_touchpad.sh” zamiast wspomnianej powyżej
najpierw użyj listy xinput, aby uzyskać nazwę urządzenia podstawowego touchpada ... niż dodaj polecenie xinput disable z pełną nazwą urządzenia (w podwójnych odstępach, aby zaakceptować białe znaki) do pliku ~ / .bashrc (tzn. xinput wył. „SynPS / 2 Synaptics TouchPad ”) powyższe skrypty okazały się bardzo trafione lub brakujące.
Ta metoda działa, ale nie mogę użyć przycisku „wygrana”. Więc użyłem CtrlF1& F2do tego.
Obecnie moim laptopem jest Ubuntu 14.04LTS.
Och, musisz dowiedzieć się xinput < id >
z poniższym poleceniem. W przypadku Ubuntu 14.04 jest to „SynPS / 2 Synaptics TouchPad”
xinput list
SynPS/2 Synaptics TouchPad id=###
Próbowałem tutaj wszystkich poprzednich odpowiedzi bez powodzenia.
To, co działało dla mnie na Ubuntu 16.10, było
killall syndaemon
syndaemon -i 1 -KRd
Możesz zmienić wartość z 1 na 0,5.
Tak więc, łącząc odpowiedzi Krzysztofa Tomaszewskiego i JaeJun LEE, doszedłem do tego rozwiązania.
Utwórz następujący toggleTouchPad.sh
skrypt i zapisz go w dowolnym miejscu:
#!/bin/bash
device=14
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`
if [ "$state" -eq '1' ];then
xinput --disable "$device" && sleep 1 && xdotool key 201
else
xinput --enable "$device" && sleep 1 && xdotool key 200
fi
gdzie 14 to Twój identyfikator TouchDevice (patrz odpowiedź JaeJun LEE )
Przejdź do Ustawienia Ubuntu -> Urządzenia -> Klawiatura
Na końcu listy kliknij, +
aby dodać nowy niestandardowy skrót
Nazwij go Toggle Touchpad
, używając Command /path/to/.toggleTouchPad.sh
i dowolnej kombinacji klawiszy, którą chcesz (właśnie wybrałem Super + F7).
Teraz, za każdym razem, gdy naciśniesz wybraną kombinację klawiszy, nie tylko przełączasz touchpad, ale także wyświetla ikonę powiadomienia xdotool
Aby wyłączyć środkowy drążek szerokości geograficznej mojego komputera Dell, włączam to .profile Ubuntu, więc za każdym razem, gdy uruchamiam / uruchamiam ponownie laptopa, wyłącza to wejście.
Użyłem, --id-only
aby uniknąć niedopasowania w grep
declare -i ID
ID=`xinput list --id-only 'AlpsPS/2 ALPS DualPoint Stick' | grep -Eo '[0-9]{1,2$
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
echo "id" $ID
xinput disable $ID
echo "Touchpad disabled."
else
echo "id" $ID
xinput enable $ID
echo "Touchpad enabled."
fi
W moim przypadku w przypadku Slimbooka i Kubuntu właśnie użyłem kombinacji: Fn+ Z.
To wyłącza lub włącza touchpad.