Touchpad Synaptics (Italiano) - ArchWiki

# Touchpad Synaptics (Italiano)

Articoli correlati

- Xorg

Questo articolo spiega il processo di installazione e configurazione de Synaptics input driver per i touchpad Synaptics (e ALPS) che si trovano sulla maggior parte dei notebook.

## Installazione

I driver Synaptic sono ora inclusi nel pacchetto xf86-input-synaptics, e sono disponibili gli Official repositories

## Configurazione

Il metodo principale di configurazione del touchpad è attraverso un file di configurazione del server Xorg. Dopo l'installazione di `xf86-input-synaptics`, viene creato un file di configurazione di base in `/etc/X11/xorg.conf.d/10-synaptics.conf`.

Gli utenti possono modificare questo file per configurare le diverse opzioni del driver disponibili, per una lista completa di tutte le variabili gli utenti dovrebbero rivolgersi alla pagina del manuale di synaptic:

    $ man synaptics

Nota: Synaptics 1.0 e più recenti supportano la proprietà del dispositivo di input se il driver è avviato su server X 1.6 o più recente. Su queste versioni del driver, l'opzione "SHMConfig" non è necessaria per abilitare la configurazione in run-time. Si veda la pagina del manuale per maggiri informazioni.

### Opzioni usate di frequente

I driver Synaptic permettono di essere modificati in un vasto numero di opzioni. Si noti che tutte queste opzioni possono essere semplicemente aggiunte al file di configurazione principale in `/etc/X11/xorg.conf.d/10-synaptics.conf`, come è possibile notare in questo esempio di file di configurazione, dove si è abilitato lo scrolling verticale, orizzontale e circolare:

    /etc/X11/xorg.conf.d/10-synaptics.conf

    .

     Section "InputClass"
           Identifier "touchpad"
           Driver "synaptics"
           MatchIsTouchpad "on"
                  Option "TapButton1" "1"
                  Option "TapButton2" "2"
                  Option "TapButton3" "3"
                  Option "VertEdgeScroll" "on"
                  Option "VertTwoFingerScroll" "on"
                  Option "HorizEdgeScroll" "on"
                  Option "HorizTwoFingerScroll" "on"
                  Option "CircularScrolling" "on"
                  Option "CircScrollTrigger" "2"
                  Option "EmulateTwoFingerMinZ" "40"
                  Option "EmulateTwoFingerMinW" "8"
                  Option "CoastingSpeed" "0"
                  ...
     EndSection

TapButton1
  (integer) determina quale tasto del mouse venga registrato evitando l'area dell'angolo del touchpad, tocco con un dito.
TapButton2
  (integer) determina quale tasto del mouse venga registrato evitando l'area dell'angolo del touchpad, tocco con due dita.
TapButton3
  (integer) determina quale tasto del mouse venga registrato evitando l'area dell'angolo del touchpad, tocco con tre dita
RBCornerButton
  (integer) determina quale tasto del mouse venga registrato nell'angolo in basso a destra del touchpad, tocco con un dito (si usi `Option "RBCornerButton" "3"` per ottenere il comportamento del tasto destro del mouse nell'angolo più basso a destra del touchpad alla maniera di Ubuntu)
RTCornerButton
  (integer) come sopra, ma per l'angolo in alto a destra, tocco con un dito.
VertEdgeScroll
  (boolean) abilita lo scrolling verticale mentre si trascina il dito lungo il bordo destro del touchpad.
HorizEdgeScroll
  (boolean) abilita lo scrolling orizzontale mentre si trascina il dito lungo il bordo basso del touchpad.
VertTwoFingerScroll
  (boolean) abilita lo scrolling vertucale usando due dita.
HorizTwoFingerScroll
  (boolean) abilita lo scrolling orizzontale usando due dita.
EmulateTwoFingerMinZ/W
  (integer) giocare su questo valore per settare la precisione dello scroll con due dita.

Un esempio con una breve descrizione di tutte le opzioni. Come al solito le impostazioni variano a seconda della macchina. Si consiglia di scoprire le differenti opzioni utilizzando synclient.

Nota: Se accade che la propria mano sfiori spesso il touchpad, causando l'attivazione dell'opzione TapButton2 (che copierà più del dovuto dagli appunti), e non si vuole perdere la funzionalità del tocco a due dita, si imposti `TapButton2` a -1.
Nota: Le versioni recenti includono una funzione "Coasting", abilitata di default. Essa può causare l'effetto indesiderato di continuare lo scorrimento fino al tocco o al click seguente, anche nel caso in cui non si stia più toccando il touchpad. Ciò significa che per fare scrolling anche appena un po', si deve scorrere (usando l'angolo o un'opzione multitouch) e quindi quasi subito toccare il touchpad. In caso contrario lo scrolling continuerà all'infinito. Se si desidera evitare questo problema, impostare `CoastingSpeed` a 0.

### Altre opzioni

VertScrollDelta e HorizScrollDelta
  (integer) configura la velocità di scrolling. È un po' poco intuitivo in quanto valori più alti producono una maggiore precisione e quindi uno scorrimento più lento. Valori negativi generano lo scorrimento naturale come in OS X.

SHMConfig
  (booleano) Attiva/disattiva la memoria condivisa per il debug run-time. Questa opzione non ha più effetto sulla configurazione run-time ed è utile solo per il debug degli eventi hardware.

### GNOME

Gli utenti di GNOME dovrebbero modificare anche la configurazione di quest'ultimo, dato che, di base, blocca il tocco per cliccare, lo scrolling orizzontale e non permette di disabilitare il touchpad durante la battitura a tastiera.

Per cambiare queste impostazioni in Gnome 2:

1. Si lanci `gconf-editor`
2. modificare la chiave nella cartella `/desktop/gnome/peripherals/touchpad/`.

Per cambiare queste impostazioni in Gnome 3:

1. Si apra Impostazioni di Sistema.
2. Si selezioni Mouse e Touchpad.
3. Si cambino le impostazioni nella scheda Touchpad.

Il demone delle impostazioni Gnome potrebbe sovrascrivere le impostazioni esistenti (ad esempio i settaggio in `xorg.conf.d`) per i quali non ci sono equivalenti in alcuna utilità grafica di configurazione). È possibile fare in modo che gnome non modifichi più le impostazioni mouse:

1. Avviare `dconf-editor`
2. Modificare `/org/gnome/settings-daemhttps://wiki.archlinux.org/index.php?title=Touchpad_Synaptics_(Italiano)&action=edit&section=3on/plugins/mouse/`
3. Deselezionare l'impostazione attivo.

Ora sarà rispettata la configurazione esistente per synaptics.

### MATE

Come con GNOME, è possibile configurare il modo in cui MATE gestisce il touchpad:

1. Avviare `mateconf-editor`
2. Modificare le chiavi nella cartella `desktop/mate/peripherals/touchpad/`.

Affinché il demone di configurazione di Mate non sovrascriva le configurazioni esistenti:

1. Avviare `mateconf-editor`
2. Modificare `/apps/mate_settings_daemon/plugins/mouse/`
3. Sbloccare il settaggio attivo.

### Configurazioni al volo

Accanto al metodo tradizionale di configurazione, i driver Synaptic supportano anche la configurazione al volo. Ciò significa che gli utenti possono impostare alcune opzioni attraverso applicazioni software che vengono applicate immediatamente senza dover riavviare X. Questo è molto utile per testare le opzioni di configurazione prima di includerle nel file di configurazione.

Nota: L'opzione `SHMConfig` è stata rimossa da Synaptics. La configurazione attraverso `synclient` non è più necessaria.
Attenzione: Le configurazioni On-the-fly sono no permanenti e non rimarranno attive al riavvio del sistema, alla sospensione / riavvio o al riavvio di udev. Si dovrebbe usare tale utilità solo per finalità di testing, affinamento o configurazione di script.

#### Strumenti da console

- Synclient (Raccomandato) — utilità da riga di comando per configurare e ricercare impostazioni del driver Synaptics su un live system. Lo strumento è sviluppato da i manutentori dei driver synaptics ed è fornito con i driver stessi

  http://xorg.freedesktop.org/ || xf86-input-synaptics

- xinput — un piccolo strumento con interfaccia da riga di comando (CLI) per configurare i dispositivi:

  http://xorg.freedesktop.org/ || xorg-xinput

#### Strumenti grafici

- GPointing Device Settings — fornisce una configurazione al volo grafica per numerosi device di puntamento connessi al sistema, incluso il proprio touchpad synaptic. Questa applicazione rimpiazza GSynaptics come lo strumento principale di configurazione grafica del touchpad attraverso i driver synaptic.

  http://live.gnome.org/GPointingDeviceSettings || gpointing-device-settings
  Note: Affinché GPointingDeviceSettings funzioni con i touchpad Synaptics devono essere installati i pacchetti xf86-input-synaptics e libsynaptics !

- kcm-touchpad — E' un recente strumento di configurazione per KDE dalla versione 4.12+

  https://projects.kde.org/projects/playground/utils/kcm-touchpad/repository || kcm-touchpad.

Fornisce un modulo per le impostazioni di sistema. Rimpiazza gli ormai datati synaptiksAUR[broken link: package not found] e kcm_touchpadAUR.

## Configurazione avanzata

### Usare xinput per determinare le funzionalità del touchpad

In base al modello, il touchpad synaptics può avere o meno queste caratteristiche. È possibile determinare quali siano supportate dal proprio hardware usando `xinput`:

- pulsanti hardware sinistro, centrale e destro
- individuazione di due dita
- individuazione di tre dita
- risoluzione configurabile

Prima di tutto, si trovi il nome del proprio touchpad:

    $ xinput -list

Ora su può usare `xinput` per trovare le caratteristiche:

    $ xinput list-props "SynPS/2 Synaptics TouchPad" | grep Capabilities

          Synaptics Capabillities (309):  1, 0, 1, 0, 0, 1, 1

Questi numeri mostrano, da sinistra a destra:

- (1) il device ha un pulsante sinistro fisico
- (0) il device non ha un pulsante centrale fisico
- (1) il device ha un pulsante destro fisico
- (0) il device non supporta l'individuazione two-finger
- (0) il device non supporta l'individuazione three-finger
- (1) il device può configurare la risoluzione verticale
- (1) il device può configurare la risoluzione orizzontale

Usare `xinput list-props "SynPS/2 Synaptics TouchPad"` per elencare tutte le proprietà del touchpad.

### Synclient

Synclient può configurare ogni opzione a disposizione dell'utente, come documentato in `$ man synaptics`. Si può vedere una lista completa delle impostazioni correnti con:

    $ synclient -l

Ogni opzione di configurazione elencata si può controllare tramite synclient, ad esempio:

    $ synclient PalmDetect=1 (per abilitare la palm detection)
    $ synclient TapButton1=1 (per configurare gli eventi del pulsante)
    $ synclient TouchpadOff=1 (per disabilitare il touchpad)

Dopo che l'utente ha provato e testato con successo le proprie opzioni da synclient, può rendere i combiamenti permanenti aggiungendoli a `/etc/X11/xorg.conf.d/10-synaptics.conf`.

Il pannello di controllo synclient può mostrare la pressione e la posizione sul touchpad in tempo reale, permettendo la rifinitura delle impostazioni predefinite di Synaptics.

Si può avviare il monitor Synaptics con il seguente comando:

    $ synclient -m 100

Dove l'opzione -m attiva il monitor e il numero seguente specifica l'intervallo di aggiornamento in millesimi di secondo.

Questo monitor fornisce informazioni sullo stato corrente del proprio touchpad. Ad esempio, se il mouse viene mosso attraverso il touchpad, i valori x e y del monitor cambieranno. Con questi dati si potrà facilmente risalire alle dimensioni del proprio touchpad che sono definite nelle opzioni LeftEdge-, RightEdge-, BottomEdge- e TopEdge.

Le abbreviazioni per i parametri sono le seguenti:

+Abbreviation+ | +Description+
--- | ---
time | Tempo in secondi da quando la registrazione è iniziata.
x, y | Le coordinate x/y del dito sul touchpad. L'origine è nell'angolo in alto a sinistra.
z | Il valore della pressione. Rappresenta la pressione che si sta usando per navigare sul proprio touchpad.
f | Numero di dita che stanno toccando il touchpad.
w | Valore che rappresenta la larghezza del dito.
l,r,u,d,m,multi | Questi valori rappresentano lo stato della pressione dei tasti sinistra, destra, su, giù, centro e multipli dove il valore zero indica che non vi è stata pressione, mentre uno che vi è stata pressione.
gl,gm,gr | Per i touchpad che hanno un device ospite, questi valori indicano lo stato dei tasti associati per il tasto ospite sinistro, centro e destro su cui vi è stata pressione (1) o meno (0).
gdx, gdy | Coordinate x/y per il device ospite.

Se un valore rimane costante a zero, significa che quell'opzione non è supportata dal proprio device.

Ora si usi `synclient` per testare nuovi valori. Ad esempio, per regolare la velocità minima del puntatore:

    $ synclient MinSpeed=0.5

Il cambiamento non sarà permanente, occorrerà mettere questi valori nel proprio file di configurazione (/etc/X11/xorg.conf.d/10-synaptics.conf) per renderli tali.

### Scrolling Circolare

Lo Scrolling Circolare è un'utilità offerta da Synaptics che ricorda da vicino il comportamento degli iPod. Al posto di (o oltre a) scorrere orizzontalmente o verticalmente, è possibile farlo circolarmente. Alcuni utenti lo trovano un sistema più veloce e preciso. Per abilitare lo Scrolling Circolare, si aggiungano le opzioni seguenti alla sezione device del touchpad in `/etc/X11/xorg.conf.d/10-synaptics.conf`:

    /etc/X11/xorg.conf.d/10-synaptics.conf

     Section "InputClass"
             ...
             Option      "CircularScrolling"          "on"
             Option      "CircScrollTrigger"          "0"
             ...
     EndSection

L'opzione CircScrollTrigger può avere uno dei seguenti valori, atti a determinare da che da che bordo parte lo scrolling circolare:

    0    Ogni bordo
    1    Bordo superiore
    2    Angolo in alto a destra
    3    Bordo destro
    4    Angolo in basso a destra
    5    Bordo inferiore
    6    Angolo in basso a sinistra
    7    Bordo sinistro
    8    Angolo in alto a sinistra

È utile specificare un valore diverso da zero se si desidera utilizzare lo scrolling circolare unitamente all'orizzontale e/o al verticale. Se lo si fa, il tipo di scrolling sarà determinato dal lato da cui si parte.

Per scorrere velocemente, disegnare piccoli cerchi nel centro del proprio touchpad. Per farlo lentamente e con maggior precisione, disegnare cerchi dall'ampio raggio.

### Scrolling Naturale

È possibile abilitare lo Scrolling Naturale attraverso Synaptics. Semplicemente si usino valori negativi per `VertScrollDelta` e `HorizScrollDelta` come segue:

    /etc/X11/xorg.conf.d/10-synaptics.conf

    Section "InputClass"
             ...
             Option      "VertScrollDelta"          "-111"
             Option      "HorizScrollDelta"         "-111"
             ...
    EndSection

### Interruttore software

Si potrebbe trovare utile un interruttore software, che accenda o spenga il touchpad, specialmente nel caso in cui sia estremamente sensibile o l'utente digiti spesso. Attenzione: si guardi anche #Disable touchpad upon external mouse detection in quanto questa potrebbe essere la soluzione migliore (questione di gusti). Il vantaggio, in questo caso, è che l'utente ha il controllo della cosa, mentre l'altra soluzione utilizza un demone per determinare quando spegnere il touchpad.

Si potrebbe dover installare xbindkeys nel caso in cui non si sia già dotati di un software che gestisca le combinazioni di tasti.

Quindi si salvi questo script in qualcosa come `/sbin/trackpad-toggle.sh`:

    /sbin/trackpad-toggle.sh

     #!/bin/bash

     synclient TouchpadOff=$(synclient -l | grep -c 'TouchpadOff.*=.*0')

Infine, si aggiunga una combinazione di tasti che lo utilizzi. La cosa migliore è avviarlo con xbindkeys così, in(file `~/.xbindkeysrc`):

    ~/.xbindkeysrc

     "/sbin/trackpad-toggle.sh"
         m:0x5 + c:65
         Control+Shift + space

Ora, si (ri)avvii semplicemente `xbindkeys` e la pressione di `Ctrl`+`Shift`+`Space` avvierà/spegnerà il touchpad!

Ovviamente si può utilizzare il software di gestione delle combinazioni tasti che si desidera, come quelli previsti nel proprio DE/WM.

### Disabilitare il Trackpad durante la digitazione

#### Rilevamento automatico del palmo della mano

Prima di dutto si dovrebbe testare se funziona adeguatamente per il proprio trackpad a se le configurazioni sono accurate:

    $ synclient PalmDetect=1

Quindi si provi a digitare. Si può modificare il rilevamento con:

    $ synclient PalmMinWidth=

che è la larghezza dell'area che il proprio palmo di mano tocca, e

    $ synclient PalmMinZ=

che è la minima distanza Z a cui il rilevamento è messo in atto.

Quando si sono trovati i settaggi adeguati, si salvino in `/etc/X11/xorg.conf.d/10-synaptics.conf` come segue:

    #synclient PalmDetect=1
    Option "PalmDetect" "1"
    #synclient PalmMinWidth=10
    Option "PalmMinWidth" "10"
    #synclient PalmMinZ=200
    Option "PalmMinZ" "200"

#### Usando .xinitrc

Affinché il touchpad sia disabilitato automaticamente durante la digitazione, si aggiunga la linea seguente al proprio `~/.xinitrc` prima di avviare il proprio window manager (se non si sta utilizzando un login manager):

    $ syndaemon -t -k -i 2 -d &

-i 2
  imposta il tempo idle a 2 secondi. Il tempo idle specifica quanti secondi aspettare dopo l'ultima pressione di un tasto prima di abilitare ancora il touchpad.
-t
  istruisce il demone a non disabilitare il movimento del mouse finché è in corso la digitazione, ma soltanto di disabilitare il tapping e lo scrolling.
-k
  istruisce il demone ad ignorare i pulsanti di modificazione finché è monitorato l'attività della tastiera (es.: permette Ctrl+Sx Click).
-d
  avvia come demone in background.

Maggiori dettagli sono disponibili alla pagina del manuale:

    $ man syndaemon

Se si sta utilizzando un login manager, sarà necessario specificare il comando laddove il proprio WM/DE permette di farlo.

#### Usando un Login Manager

L'opzione "-d" è necessaria per avviare syndaemon con un processo in background.

Per GNOME: (GDM)

Per avviare syndaemon è necessario usare il programma delle Preferenze delle Applicazioni di Avvio di Gnome. Effettuare il login a Gnome ed accedere a Sistema > Preferenze > Applicazioni di Avvio. Sulla tabella dei Programmi di avvio cliccare sul pulsante Aggiungi. Si dia il nome che si preferisce al programma di avvio e si inseriscano i commenti che si ritengono opportuni (o si lasci il campo vuoto). Sullo spazio per il comando aggiungere:

    $ syndaemon -t -k -i 2 -d &

    In Gnome 3 avviare gnome-session-properties per accedere alla applicazioni di avvio.

Una volta fatto, cliccare su Aggiungi nella finestra di dialogo Aggiungi programma di avvio. Assicurarsi di spuntare la casella accanto al programma di avvio creato nella lista dei programmi di avvio aggiuntivi. Chiudere la finestra delle Preferenze delle applicazioni di avvio.

For KDE: (KDM)

Andare in Opzioni di Sistema > Avvio e Spegnimento > Autostart, cliccare su Aggiungi programma, inserire:

     syndaemon -t -k -i 2 -d &

Quindi spuntare Avvia sul terminale.

## Risoluzione problemi

### xorg.conf.d/10-synaptics.conf sembra non essere applicato in GNOME e MATE

GNOME e MATE, come opzione predefinita, sovrascrive varie opzioni per il proprio touchpad. Questo inclide opzioni configurabili per cui non c'è possibilità di configurazione grafica del pannello di controllo di GNOME. Ciò potrebbe far sembrare che `/etc/X11/xorg.conf.d/10-syanaptics.conf` non sia applicato. Si faccia riferimento alla sezione GNOME di questo articolo per prevenire questo comportamento.

- Touchpad_Synaptics#GNOME

#### ALPS Touchpads

This article or section needs expansion.

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Touchpad Synaptics (Italiano)#)

Attenzione: è necessario riscriverlo per udev

Per i touchpad ALPS, nel caso in cui le configurazioni sopra indicate non dessero i risultati desiderati, si provi invece ad utilizzare la seguente configurazione:

    /etc/X11/xorg.conf.d/10-synaptics.conf

      Section "ServerLayout"
        ...
        InputDevice    "USB Mouse" "CorePointer"
        InputDevice    "Touchpad"  "SendCoreEvents"
      EndSection

      Section "InputDevice"
            Identifier  "Touchpad"
        Driver  "synaptics"
        Option  "Device"   "/dev/input/mouse0"
        Option  "Protocol"   "auto-dev"
        Option  "LeftEdge"   "130"
        Option  "RightEdge"   "840"
        Option  "TopEdge"   "130"
        Option  "BottomEdge"   "640"
        Option  "FingerLow"   "7"
        Option  "FingerHigh"   "8"
        Option  "MaxTapTime"   "180"
        Option  "MaxTapMove"   "110"
        Option  "EmulateMidButtonTime"   "75"
        Option  "VertScrollDelta"   "20"
        Option  "HorizScrollDelta"   "20"
        Option  "MinSpeed"   "0.25"
        Option  "MaxSpeed"   "0.50"
        Option  "AccelFactor"   "0.010"
        Option  "EdgeMotionMinSpeed"   "200"
        Option  "EdgeMotionMaxSpeed"   "200"
        Option  "UpDownScrolling"   "1"
        Option  "CircularScrolling"   "1"
        Option  "CircScrollDelta"   "0.1"
        Option  "CircScrollTrigger"   "2"
        Option  "SHMConfig"   "on"
        Option  "Emulate3Buttons"   "on"
      EndSection

### Il touchpad non funziona, Xorg.0.log presenta "Query no Synaptics: 6003C8"

A causa del modo in cui synaptic è impostato al momento, vengono caricate due istanze del modulo synaptics. Si può riconoscere questa situazione aprendo il file di log di xorg (`/var/log/Xorg.0.log`) e notando questo:

    /var/log/Xorg.0.log

     [ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"
     [ 9304.803] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"

Da notare come due istanze dal nome diverso vengano caricate. In alcuni casi questa è la causa del perché il touchpad diventi inutilizzabile.

Si può prevenire il doppio caricamento editando il proprio file `/etc/X11/xorg.conf.d/10-synaptics.conf`. Si dovrebbe aggiungere `MatchDevicePath "/dev/input/event*"`

    /etc/X11/xorg.conf.d/10-synaptics.conf

     Section "InputClass"
           Identifier "touchpad catchall"
           Driver "synaptics"
           MatchIsTouchpad "on"
           MatchDevicePath "/dev/input/event*"
                 Option "TapButton1" "1"
                 Option "TapButton2" "2"
                 Option "TapButton3" "3"
     EndSection

Si riavvii X e si ricontrolli i log di xorg, l'errore dovrebbe essere sparito e il touchpad dovrebbe funzionare correttamente.

Bugreport relativo: FS#20830

Topic relativi nel forum:

- https://bbs.archlinux.org/viewtopic.php?id=104769
- https://bbs.archlinux.org/viewtopic.php?pid=825690

### Touchpad rilevato come "PS/2 Generic Mouse" o "Logitech PS/2 mouse"

Ciò è causato da un bug del kernel, corretto a partire dal kernel 3.3. I touchpad rilevati scorrettamente non si possono configurare con il Synaptic input driver. Per correggere questo errore, si può installare pacchetto AUR psmouse-alps-driverAUR.

Tra i notebook colpiti ci sono i seguenti modelli:

- Acer Aspire 7750G
- Dell Latitude E6230, E6520, E6430 e E6530 (ALPS DualPoint TouchPad), Inspiron N5110 (ALPS GlidePoint), Inspiron 14R Turbo SE7420/SE7520 (ALPS GlidePoint)
- Samsung NC110/NF210/QX310/QX410/QX510/SF310/SF410/SF510/RF410/RF510/RF710/RV515

Si può verificare se il proprio touchpad è correttamente rilevato con:

    $ xinput list

Per maggiori informazioni si veda questo thread.

### Abilità speciali di Synaptics non-funzionanti (multi-tocco, scrolling, ecc.)

In alcuni casi i touchpad Synaptics funzionano solo parzialmente. Caratteristiche come lo scrolling a due dita o il click centrale con due dita non funzionano persino se configurate correttamente. Ciò è probabilmente dovuto al problema Il touchpad non funziona su menzionato. Si risolva alla stessa maniera evitando il caricamento del doppio modulo.

Se impedire che il modulo parta due volte non risolve il problema, provare a commentare l'opzione "MatchIsTouchpad" (che ora è inclusa di default nel file di configurazione di synaptics).

### Disabilitare il touchpad non appena venga rilevato un mouse esterno

Con l'aiuto di udev, è possibile disabilitare automaticamente il touchpad nel caso in cui venga inserito un mouse esterno. Per realizzare ciò si aggiunga la seguente regola udev a `/etc/udev/rules.d/01-touchpad.rules`:

    /etc/udev/rules.d/01-touchpad.rules

     ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/<your username>/.Xauthority", ENV{ID_CLASS}="mouse", ENV{REMOVE_CMD}="/usr/bin/synclient TouchpadOff=0", RUN+="/usr/bin/synclient TouchpadOff=1"

GDM conserva i file Xauthority in `/var/run/gdm` in una cartella nominata a caso. Per qualche ragione anche i file multipli di authority potrebbero apparire anche per il singolo utente. Quindi sono necessarie regole udev come queste:

    ACTION=="add", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username* -print -quit", ENV{DISPLAY}=":0.0",
    ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=1"
    ACTION=="remove", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username* -print -quit", ENV{DISPLAY}=":0.0",
    ENV{XAUTHORITY}="$result/database", RUN+="/usr/bin/synclient TouchpadOff=0"

Nota: le regole di udev devono essere ognuna di una singola riga, per accordarsi al formato.
Nota: Queste regole udev vanno in conflitto con syndaemon (si veda #Using .xinitrc)

Per disabilitare il touchpad e mandare segnale kill a syndaemon, si può usare una regola come questa:

    ACTION=="add", KERNEL=="mouse[0-9]", SUBSYSTEM=="input", PROGRAM="/usr/bin/find /var/run/gdm -name *username* -print -quit", ENV{DISPLAY}=":0.0",ENV{XAUTHORITY}="$result/database", RUN+="/bin/sh -c '/usr/bin/synclient TouchpadOff=1 ; sleep 1; /bin/killall syndaemon; '"

Se syndaemon si avvia automaticamente alla rimozione del mouse è possibile combinare questa regola a quella di rimozione precedente. Qualora fosse necessario avviare syndaemon, modificare il comando, accordandolo alle proprie opzioni di syndaemon preferite.

### Il cursore salta

Alcuni utenti denunciano un cursore che inspiegabilmente "salta" per tutto lo schermo. Al momento non c'è una patch per questo problema, ma gli sviluppatori sono informati sul problema e ci stanno lavorando.

Un'altra possibilità è che si stiano avendo IRQ losses correlate al controller i8042 (questo dispositivo gestisce la tastiera e il touchpad di molti portatili). In questo caso ci sono due possibilità:

1. rmmod && insmod il modulo psmouse. 2. instrire i8042.nomux=1 alla riga di boot e riavviare la propria macchina.

### Multitouch

Gesti multitouch come in Mac OS X saranno implementati con versioni future del driver.

### Il dispositivo touchpad non si trova in `/dev/input/*`

Se questo problema si presenta, si può utilizzare questo comando per mostrare le informazioni riguardo il proprio dispositivo di input:

    $ cat /proc/bus/input/devices

Si cerchi quindi un dispositivo di input col nome "SynPS/2 Synaptics TouchPad". La sezione "Handlers" dell'output mostra il nome del device che occorre specificare.

Esempio d'output:

    $ cat /proc/bus/input/devices

     I: Bus=0011 Vendor=0002 Product=0007 Version=0000
     N: Name="SynPS/2 Synaptics TouchPad"
     P: Phys=isa0060/serio4/input0
     S: Sysfs=/class/input/input1
     H: Handlers=mouse0 event1
     B: EV=b
     B: KEY=6420 0 7000f 0

In questo caso, gli `Handlers` sono `mouse0` e `event1`, quindi si dovrà usare `/dev/input/mouse0`.

This article or section needs expansion.

Reason: TODO: spiega come applicare ciò in `10-synaptics.conf` (Discuss in Talk:Touchpad Synaptics (Italiano)#)

### Firefox e azioni speciali per il touchpad

Di base, Firefox è impostato per compiere azioni speciali durante lo scrolling o il tocco di alcune zone del touchpad. Si possono editare le impostazioni di queste azioni digitando about:config nella barra degli indirizzi di Firefox. Per cambiare queste opzioni, si clicchi due volte sulla linea in questione, cambiando la dicitura da "true" a "false" e vicecersa.

Per evitare che Firefox effettui lo scorrimento (indietro/avanti) attraverso la cronologia invece di effettuare lo scorrimento tra le pagine, si editi queste opzioni come indicato:

    mousewheel.horizscroll.withnokey.action = 1
    mousewheel.horizscroll.withnokey.sysnumlines = true

Per evitare che Firefox effettui il reindirizzamento all'URL indicato dai contenuti degli appunti tramite il tocco dell'area in alto a destra del touchpad (o il tasto centrale del mouse), si imposti a "false" la seguente opzione:

    middlemouse.contentLoadURL = false

### Opera: problemi di scorrimento orizzontale

Come sopra. Per risolvere si vada in Impostazioni -> Preferenze -> Avanzate -> Scorciatoie. Si selezionino le impostazioni del mouse "Opera Standard" e si selezioni "Edit". Nella sezione "Applicazioni":

- assign key "Button 6" to command "Scroll left"
- assign key "Button 7" to command "Scroll right"

### Scorrimento e azioni multiple con Synaptics sui portatili LG

Questi problemi sembrano accadere su molti modelli di portatile LG. I sintomi includono: quando si preme il tasto del mouse 1, Synaptics lo interpreta come uno ScrollUP e un normale click del tasto 1; lo stesso accade per il tasto 2.

Il problema dello scorrimento può essere risolto inserendo nel xorg.conf:

    /etc/X11/xorg.conf.d/xorg.conf

    Option "UpDownScrolling" "0"

NOTARE che questo farà sì che Synaptic interpreti la pressione di un tasto come tre pressioni. C'è una patch scritta da Oskar Sandberg[1] che rimuove questi click.

Apparentemente, quando si tenta di compilare questa soluzione all'ultima versione di Synaptic, questa fallisce. La soluzione è di usare il repository GIT per Synaptics[2] .

Si trova anche un pacchetto in AUR per automatizzare il tutto: xf86-input-synaptics-lgAUR.

Per costruire il pacchetto dopo aver scaricato il tarball e averlo decompresso, si esegua:

    $ cd synaptics-git

    $ makepkg

### Altri problemi con mouse esterni

Innanzitutto, assicurarsi che la sezione di descrizione del mouse esterno contenga questa linea (o quella che ci assomiglia):

    /etc/X11/xorg.conf.d/xorg.conf

    Option     "Device" "/dev/input/mice"

Se la linea "Device" è differente, la si cambi con quella sopra indicata e si provi a riavviare X. Se ciò non dovesse risolvere il problema, si imposti touchpad come CorePointer nella sezione "Server Layout":

    /etc/X11/xorg.conf.d/xorg.conf

    InputDevice    "Touchpad" "CorePointer"

e impostare il device esterno come "SendCoreEvents":

    /etc/X11/xorg.conf.d/xorg.conf

    InputDevice    "USB Mouse" "SendCoreEvents"

alla fine si aggiunga questa linea alla sezione del device esterno:

    /etc/X11/xorg.conf.d/xorg.conf

    Option      "SendCoreEvents"    "true"

Se tutto quello indicato non dovesse funzionare, per favore si controlli la sezione di bug rilevanti per un possibile bug, o si cerchi tra i post dei forum se qualcuno ha trovato una soluzione migliore.

### Problemi di sincronizzazione del Touchpad

A volte il cursore potrebbe congelarsi per alcuni secondi o iniziare ad agire da solo senza apparente motivo. Questi comportamenti vengono registrati in `/var/log/messages.log`

    /var/log/messages.log

    psmouse.c: TouchPad at isa0060/serio1/input0 lost synchronization, throwing 3 bytes away

Questo problema non ha una soluzione unica, ma ce ne sono diverse.

- Se si usa scalare la frequenza della CPU, si eviti di utilizzare il governatore "ondemand" e si usi quello "performance" quando possibile, dal momento che il touchpad potrebbe perdere la sincronizzazione nei momenti di cambio della frequenza della CPU.
- Si eviti di usare un monitor di batteria ACPI.
- Si provi a caricare psmouse con l'opzione "proto=imps". Per farlo, si aggiunga questa linea al proprio `/etc/modprobe.d/modprobe.conf`:

    /etc/modprobe.d/modprobe.conf

    options psmouse proto=imps

- Si provi con un altro ambiente desktop. Alcuni utenti dichiarano che questo problema accade solamente quando usano XFCE o GNOME, per qualche strano motivo.

### Ritardo tra la pressione sul pulsante e il click effettivo

Se si percepisce un ritardo tra la pressione sul touchpad e il click effettivo che viene registrato occorre abilitare FastTaps:

per farlo occorre aggiungere Option "FastTaps" "1" a `/etc/X11/xorg.conf.d/10-synaptics.conf` in modo tale da avere:

    /etc/X11/xorg.conf.d/10-synaptics.conf

     Section "InputClass"
          Identifier "Synaptics Touchpad"
          Driver "synaptics"
          ...
          Option "FastTaps" "1"
          ...
     EndSection

### SynPS/2 Synaptics TouchPad can't grab event device, errno=16

Se si sta utilizzando Xorg 7.4 si dovrebbe ottenere un warning come questo da `/var/log/Xorg.0.log`, ciò è dovuto al fatto che il driver registra l'evento del device per un uso esclusivo quando si utilizza il protocollo eventi di Linux 2.6. Quando ciò fallisce, X risponde con questo messaggio d'errore.

Registrare l'evento del device significa che nessun programma né da parte dell'user né da parte del kernel possa vedere l'evento del touchpad. Questo è desiderabile se il file di configurazione di X contiene `/dev/input/mice` come un device di input, ma potrebbe non essere desiderato nel caso in cui si voglia monitorare il device da utente.

Se lo si vuole controllare, si aggiunga o si modifichi l'opzione "GrabEventDevice" nella sezione touchpad in `/etc/X11/xorg.conf.d/10-synaptics.conf`:

    /etc/X11/xorg.conf.d/10-synaptics.conf

     ...
     Option "GrabEventDevice" "''boolean''"
     ...

Ciò sarà preso in considerazione nel momento in cui X verrà riavviato, sebbene si possa cambiarlo usando synclient. Quando si cambia questo parametro col programma di synclient, il cambiamento non avrà effetto finché non si riavvierà il driver di Synaptics. Ciò lo si può fare passando alla console di testo e quindi tornando a X.

### Synaptics perde il Rilevamento del Multitocco dopo aver effettuato il Reboot da Windows

Molti driver contengono un firmware che viene caricato nella memoria flash quando il computer viene avviato. Questo firmware non viene necessariamente ripulito durante il processo di spegnimento, e spesso non è compatibile con i driver Linux. L'unico modo per pulire la memoria flash è spegnere il computer completamente piuttosto che usare il reboot. È considerata generalmente buona pratica quella di non usare il reboot per passare da un sistema operativo ad un altro.

### Touchpad senza pulsanti (o ClickPad)

Alcuni portatili sono dotati di un tipo speciale di touchpad che ha i pulsanti del mouse integrati alla piastra di rilevamento, anziché averli esterni. Per esempio HP series 4500 ProBooks, ThinkPad X220 e le serie X1 di ThinkPad hanno questo tipo di touchpad. Di default l'intera zona tasto è rilevato come un pulsante sinistro, con il risultato che il secondo è di fatto inutilizzabile e che il trascinamento non funziona. In precedenza, il supporto per questo tipo di dispositivi era gestito usando patch di parti terze, ma dalla versione 1.6.0 i driver synaptics possiedono il supporto multitouch nativo (usando la libreria mtdev).

Per abilitare altri pulsanti modificare la sezione touchpad in `/etc/X11/xorg.conf.d/10-synaptics.conf` (o, meglio, del proprio file di configurazione personalizzato preceduto da un prefisso più alto di 10):

    /etc/X11/xorg.conf.d/10-synaptics.conf

    ...
    Option "ClickPad"         "true"
    Option "EmulateMidButtonTime" "0"
    Option "SoftButtonAreas"  "50% 0 82% 0 0 0 0 0"
    ...

Queste tre opzioni sono fondamentali: la prima abilita il supporto multitouch, la seconda disabilita l'emulazione del pulsante centrale (non supportata per i ClickPad) e la terza va a definire le aree pulsante.

Il formato per l'opzione SoftButtonAreas è (fa `man 4 synaptics`):

    RightButtonAreaLeft RightButtonAreaRight RightButtonAreaTop RightButtonAreaBottom  MiddleButtonAreaLeft MiddleButtonAreaRight MiddleButtonAreaTop MiddleButtonAreaBottom

L'esempio di cui sopra si trova comunemente nella documentazione o nei pacchetti synaptics e imposta come pulsante destro il 18% della metà destra della parte bassa del touchpad. È abilitato poi nessun pulsante centrale. Se si desidera definire un pulsante centrale, si ricordi una parte fondamentale delle informazioni dal manuale: l'angolo impostato a 0 si estende all'infinito in quella direzione.

Nell'esempio seguente, il pulsante destro occupa il 40% della parte più a destra dell'area pulsante. Ora si procederà ad impostare il pulsante centrale in modo che occupi il 20% del touchpad in una piccola area al centro.

       ...
       Option     "SoftButtonAreas"  "60% 0 82% 0 40% 59% 82% 0"
       ...

Si può usare `synclient` per controllare le nuove aree dei pulsanti touch:

       $ synclient -l | grep -i ButtonArea
           RightButtonAreaLeft     = 3914
           RightButtonAreaRight    = 0
           RightButtonAreaTop      = 3918
           RightButtonAreaBottom   = 0
           MiddleButtonAreaLeft    = 3100
           MiddleButtonAreaRight   = 3873
           MiddleButtonAreaTop     = 3918
           MiddleButtonAreaBottom  = 0

Se i propri pulsanti non funzionano, le zone dei pulsanti touch non stanno cambiando. Assicurarsi di non avere un file di configurazione synaptics distribuito da qualche pacchetto che stia sovrascrivendo le proprie impostazioni personalizzate (es. alcuni pacchetti AUR distrubuiscono configurazioni con un prefisso molto alto).

### Touchpad rilevato come (touchpad elantech)

Un problema del genere può capitare ad alcuni portatili con touchpad elantech, ad esempio ASUS x53s. In questa situazione è necessario il pacchetto da AUR psmouse-elantechAUR.

## Risorse esterne

Synaptics TouchPad driver: [3]

Category:

- Input devices (Italiano)