Two Finger Scrolling su Ubuntu Intrepid

Mi ha incuriosito scoprire che la funzione Two Finger Scrolling dei portatili Apple è attivabile anche su Linux, così mi sono informato. Normalmente è sufficiente una piccola modifica a xorg.conf, nella sezione relativa al touchpad, ma in Ubuntu Intrepid questa è assente, perché tutto viene gestito da HAL. La modifica, quindi, si sposta ai file di configurazione di quest’ultimo, ben nascosti in /etc/hal/fdi/policy/.
Questa guida si riferisce ai touchpad Synaptics, che sono i più diffusi. Bisogna modifcare il file /etc/hal/fdi/policy/shmconfig.fdi ed inserire quanto segue (creare il file se non esiste):

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
 <device>
  <match key="input.x11_driver" string="synaptics">
   <merge key="input.x11_options.SHMConfig" type="string">True</merge>
   <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
   <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>
  </match>
 </device>
</deviceinfo>

La parte che attiva il Two Finger Scrolling è

   <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
   <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>

Ecco il risultato:

18 thoughts on “Two Finger Scrolling su Ubuntu Intrepid

  1. Hai un touchpad synaptics?
    Forse hai modificato il tuo xorg.conf in precedenza, controlla se hai qualche sezione relativa al touchpad, in tal caso basta inserire queste due righe:

    Option "VertTwoFingerScroll" "true"
    Option "HorizTwoFingerScroll" "true"
  2. ecco xorg…

    Section “Monitor”
    Identifier “Configured Monitor”
    EndSection

    Section “Screen”
    Identifier “Default Screen”
    Monitor “Configured Monitor”
    Device “Configured Video Device”
    DefaultDepth 24
    EndSection

    Section “Module”
    Load “glx”
    EndSection

    Section “Device”
    Identifier “Configured Video Device”
    Driver “fglrx”
    EndSection

  3. Scusa cancella pure la spatafiata sopra, ho incollato male:


    Section "InputDevice"
    Identifier "Synaptics Touchpad"
    Driver "synaptics"
    Option "SendCoreEvents" "true"
    Option "Device" "/dev/psaux"
    Option "Protocol" "auto-dev"
    Option "ZAxisMapping" "4 5"
    Option "Emulate3Buttons" "on"
    Option "SHMConfig" "on"
    Option "VertEdgeScroll" "on"
    Option "VertTwoFingerScroll" "true"
    Option "HorizTwoFingerScroll" "true"
    Option "LeftEdge" "85"
    Option "RightEdge" "910"
    Option "TopEdge" "85"
    Option "BottomEdge" "715"
    Option "FingerLow" "25"
    Option "FingerHigh" "30"
    Option "MaxTapTime" "180"
    Option "MaxTapMove" "220"

    EndSection

    grazie mille per l’aiuto e scusa!

  4. @LuSio:
    Strano, con quell’xorg dovrebbe funzionare la modifica dei file di HAL. Sei sicuro di avere un Synaptics?

    @Neff:
    Prova a commentare Option "VertEdgeScroll" "on" e a riavviare X, avevo letto di vari casi in cui non possono convivere lo scorrimento ai bordi del touchpad e quello a 2 dita.

  5. Ho commentato e riavviato X, ma curiosamente sembra non essere cambiato nulla. Lo scroll continua a funzionare con un solo dito al bordo del touchpad, mentre con due dita non succede niente.

    Provo a riavviare tutto, ma dubito che la cosa vada a posto con così poco…

  6. Niente da fare neanche dopo il riavvio. Ho anche provato a sostituire “on” con “true” ma non cambia niente… qualche idea?

  7. @Neff:
    guarda la linea 38: la gestione del touchpad è disabilitata e passata ad HAL, prova a decommentarlo e vediamo se funziona (dopo il riavvio di X).

    @LuSio:
    sinceramente non saprei, prova a cercare su internet…

    Comunque si può vedere se il proprio Synaptics è gestito da HAL con lshal | grep synaptics che dovrebbe restituire:

      input.x11_driver = 'synaptics'  (string)
  8. @Luca

    Ho decommentato la riga 38, chiuso la sessione (il server x si riavvia) ma purtroppo dopo il nuovo login non ci sono grosse novità. Il touchpad risponde un pochino peggio ma niente two finger scroll purtroppo…

    Comunque ho una domanda: il file che ho creato in /etc/hal/fdi/policy/ non serve ad hal per il two finger scrolling? Se decommento la riga 38 non bypasso hal?

    Ehm… oltre a questo vedi altro che potrebbe ostacolare?
    Uff, mi piacerebbe capire come mai non funziona… al limite mi faresti un grosso favore? Mi posteresti il tuo xorg.conf su pastebin? Così guardo le opzioni che hai tu…

  9. @LuSio allora hai sicuramente un Synaptics.
    Mi sembra strano che tu abbia 2 voci però. Cerca nell’output di lshal le sue righe e postale, nel mio caso sono:

    udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input'
      info.capabilities = {'input', 'input.touchpad'} (string list)
      info.category = 'input'  (string)
      info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port'  (string)
      info.product = 'SynPS/2 Synaptics TouchPad'  (string)
      info.subsystem = 'input'  (string)
      info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input'  (string)
      input.device = '/dev/input/event10'  (string)
      input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port'  (string)
      input.product = 'SynPS/2 Synaptics TouchPad'  (string)
      input.x11_driver = 'synaptics'  (string)
      input.x11_options.HorizTwoFingerScroll = 'true'  (string)
      input.x11_options.SHMConfig = 'True'  (string)
      input.x11_options.VertTwoFingerScroll = 'true'  (string)
      linux.device_file = '/dev/input/event10'  (string)
      linux.hotplug_type = 2  (0x2)  (int)
      linux.subsystem = 'input'  (string)
      linux.sysfs_path = '/sys/devices/platform/i8042/serio4/input/input10/event10'  (string)
  10. Ho anche dei tasti multimediali touch sul notebook… cmq

    udi = ‘/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input’
    info.capabilities = {‘input’, ‘input.touchpad’} (string list)
    info.category = ‘input’ (string)
    info.parent = ‘/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port’ (string)
    info.product = ‘SynPS/2 Synaptics TouchPad’ (string)
    info.subsystem = ‘input’ (string)
    info.udi = ‘/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port_logicaldev_input’ (string)
    input.device = ‘/dev/input/event11’ (string)
    input.originating_device = ‘/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX3_port’ (string)
    input.product = ‘SynPS/2 Synaptics TouchPad’ (string)
    input.x11_driver = ‘synaptics’ (string)
    input.x11_options.HorizTwoFingerScroll = ‘true’ (string)
    input.x11_options.SHMConfig = ‘True’ (string)
    input.x11_options.VertTwoFingerScroll = ‘true’ (string)
    linux.device_file = ‘/dev/input/event11’ (string)
    linux.hotplug_type = 2 (0x2) (int)
    linux.subsystem = ‘input’ (string)
    linux.sysfs_path = ‘/sys/devices/platform/i8042/serio4/input/input11/event11’ (string)

  11. È praticamente identica alla mia, dovrebbe funzionare…
    Se usi GNOME prova a guardare se tra le impostazioni del Mouse/Touchpad c’è qualcosa di interessante, mi pare di ricordare di sì, ma uso KDE4 e non posso controllare.

Leave a Reply

Your email address will not be published. Required fields are marked *