viernes, 31 de julio de 2009

Lenny y Touchpads Synaptics


Un Touchpad en un laptop para algunos puede ser una bendición y para otros una verdadera pesadilla. En mi caso, luego de un poco de práctica y costumbre, me ha ayudado a ser bastante rápido en el uso del puntero y como sustitución completa del Mouse.

En este sentido, me dediqué a revisar un poco cómo trabaja el Touchpad de mi laptop y qué cosas puedo cambiar en su comportamiento. Es muy interesante ya que el área del Touchpad se puede definir a partir de un sistema de coordenadas, de hecho, está segmentado en 9 áreas diferentes.

En esta publicación, voy a explicar brevemente mi experiencia habilitando y cambiando algunos parámetros de mi Touchpad.

Mi caja de herramientas está formada por:
  • Hardware
    Laptop HP-Compaq NX6115
  • Sofware:
    Xorg 7.3
    synclient
  1. Determinar cómo Lenny está detectando el Touchpad:
    # dmesg |grep Touchpad
    ... la respuesta de este comando fué:
    [ 11.040052] Synaptics Touchpad, model: 1, fw: 6.2, id: 0x1a0b1, caps: 0xa04713/0x200000
  2. Verificar si el servidor "Xorg" tiene debidamente configurado el Touchpad:
    # vim /etc/X11/xorg.conf
    ... en mi caso no estaba configurado, al menos de manera explícita. Lo que conseguí en el archivo relacionado con el Touchpad fue la configuración básica del mouse ...
    ...
    Section "InputDevice"
    Identifier "Configured Mouse"
    Driver "mouse"
    EndSection
  3. Comenté las líneas anteriores en el xorg.conf y configuré una nueva sección para configurar el Touchpad:
    ...
    Section "Server Layout"
    ...
    InputDevice "SynapticsTouchpad" "SendCoreEvents"
    EndSection
    ...
    Section "Module"
    Load "synaptics"
    EndSection
    ...
    Section "InputDevice"
    Identifier "SynapticsTouchpad"
    Driver "synaptics"
    Option "AlwaysCore" "true" # send events to CorePointer
    #Option "Device" "/dev/input/mice"
    Option "Device" "/dev/psaux"
    Option "Protocol" "auto-dev"
    Option "SHMConfig" "true" # configurable at runtime? security risk
    Option "LeftEdge" "1400" # x coord left
    Option "RightEdge" "5000" # x coord right
    Option "TopEdge" "1300" # y coord top
    Option "BottomEdge" "4300" # y coord bottom
    Option "FingerLow" "25" # pressure below this level triggers release
    Option "FingerHigh" "30" # pressure above this level triggers touch
    Option "MaxTapTime" "180" # max time in ms for detecting tap
    Option "VertEdgeScroll" "true" # enable vertical scroll zone
    Option "HorizEdgeScroll" "true" # enable horizontal scroll zone
    Option "CornerCoasting" "true" # enable continuous scroll with finger in corner
    Option "CoastingSpeed" "0.30" # corner coasting speed
    Option "VertScrollDelta" "45" # edge-to-edge scroll distance of the vertical scroll
    Option "HorizScrollDelta" "45" # edge-to-edge scroll distance of the horizontal scroll
    Option "MinSpeed" "0.10" # speed factor for low pointer movement
    Option "MaxSpeed" "0.60" # maximum speed factor for fast pointer movement
    Option "AccelFactor" "0.0020" # acceleration factor for normal pointer movements
    Option "VertTwoFingerScroll" "true" # vertical scroll anywhere with two fingers
    Option "HorizTwoFingerScroll" "true" # horizontal scroll anywhere with two fingers
    Option "TapButton1" "1"
    Option "TapButton2" "2"
    Option "TapButton3" "3"
    Option "EdgeMotionUseAlways" "1"
    Option "EmulateMidButtonTime" "75"
    EndSection
    ...
  4. Reiniciar.
Con esta configuración y revisando el archivo de logs del Xorg (en mi caso aparecieron al final del archivo):

less /var/log/Xorg.0.log

Verifiqué que efectivamente los cambios habían sido aplicados.

Para realizar ajustes específicos sobre el driver "synaptics" y cambiar el comportamiento del Touchpad utilicé el comando "synclient".

Para visualizar los parámetros del controlador, ejecuto:
  • # synclient -l
La respuesta del comando es una lista de todos los parámetros y sus valores actuales:

Parameter settings:
LeftEdge = 1400
RightEdge = 5000
TopEdge = 1300
BottomEdge = 4300
FingerLow = 38
FingerHigh = 43
FingerPress = 256
MaxTapTime = 180
MaxTapMove = 220
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
FastTaps = 0
EmulateMidButtonTime = 75
EmulateTwoFingerMinZ = 257
VertScrollDelta = 228
HorizScrollDelta = 227
VertEdgeScroll = 1
HorizEdgeScroll = 1
CornerCoasting = 1
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 1
MinSpeed = 0.102
MaxSpeed = 0.089
AccelFactor = 0
TrackstickSpeed = 40
EdgeMotionMinZ = 30
EdgeMotionMaxZ = 160
EdgeMotionMinSpeed = 1
EdgeMotionMaxSpeed = 304
EdgeMotionUseAlways = 1
UpDownScrolling = 1
LeftRightScrolling = 1
UpDownScrollRepeat = 1
LeftRightScrollRepeat = 1
ScrollButtonRepeat = 100
TouchpadOff = 0
GuestMouseOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 2
TapButton3 = 3
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 1
PalmMinWidth = 10
PalmMinZ = 200
CoastingSpeed = 0.3
PressureMotionMinZ = 30
PressureMotionMaxZ = 160
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
GrabEventDevice = 1

Dado que existe un sistema de coordenadas que definen las áreas de sensibilidad del Touchpad, utilicé el comando para ver qué valores se reportaban cada vez que lo presionaba:
  • # synclient -m 100
Presioné cada una de las esquinas del Touchpad y aparecían los valores de las coordenadas. De toda la línea que aparecía, solamente me concentré en la segunda y tercera columna que son las coordenadas "x" y "y".

Por ejemplo, la esquina superior derecha del Touchpad reportó:

3.102 1309 1163 14 1 4 0 0 0 0 0 00000000 0 0 0 0 0

Entonces los valores asociados son:

x = 1309
y = 1163

Sucesivamente, presioné cada área del Touchpad y ajusté los valores aproximados de los parámetros ejecutando:
  • synclient LeftEdge=1400
  • synclient RightEdge=5000
  • synclient TopEdge=1300
  • synclient BottomEdge=4700
Estos valores se reportan al driver "synaptics" en tiempo real pero son cambios temporales. Entonces, luego de comprobar que el comportamiento del Touchpad es como quería, los convertí en cambios permanentes editando los parámetros directamente en el archivo "xorg.conf" y reiniciando.

De esta manera, podemos tener el control completo de nuestro Touchpad ;-)

Saludos!

José Gregorio.

FUENTES:
  1. http://wiki.archlinux.org/index.php/Touchpad_Synaptics
  2. http://madpenguin.org/cms/index.php/?m=show&opt=printable&id=887
  3. http://ubuntuforums.org/showthread.php?p=975421
  4. http://www.synaptics.com/sites/default/files/ACF126.pdf?q=decaf/utilities/ACF126.pdf

miércoles, 29 de julio de 2009

Lenny + ATI Drivers + Compiz


COMPIZ es un sistema de gestión de ventanas muy vistoso que crea efectos impresionantes en una computadora que tenga aceleración 3D habilitada.

En mi caso, lo uso cuando tengo que proyectar mi escritorio en presentaciones y conferencias por razones obvias :-)

En este artículo, voy a explicar cómo en mi Laptop HP-Compaq NX6115 con GNU/Linux Debian Lenny configuré:




  1. Los controladores "NON-FREE" desde los repositorios oficiales.
  2. Instalé COMPIZ.
La tarjeta de video que tiene mi laptop es una humilde:

ATI Radeon Xpress 200M 5955

Aquí voy:

INSTALACIÓN DE CONTROLADORES DE VIDEO: ATI RADEON XPRESS 200M
  1. Verificar que el sistema está actualizado completamente:
    # aptitude update
    # aptitude dist-upgrade
  2. Instalar los paquetes necesarios:
    # aptitude install module-assistant fglrx-driver fglrx-kernel-src
  3. Construir e instalar el módulo "fglrx" de ATI:
    # module-assistant auto-install fglrx-kernel-src
  4. Actualizar la configuración de XORG (xorg.conf):
    # aticonfig --initial
  5. Instalar el programa de administración gráfica del controlador:
    # aptitude install fglrx-amdcccle
Si se presenta alguna falla, como por ejemplo que no inicie correctamente el video, en el Paso No. 4 se genera un archivo de respaldo llamado "xorg.conf.fglrx-0". En mi caso, no falló nada.

INSTALACIÓN DEL COMPIZ
  1. Instalar los paquetes necesarios desde el repositorio:
    # aptitude install compiz compiz-core compiz-gnome compiz-gtk compizconfig-settings-manager compizconfig-backend-gconf compiz-plugins fusion-icon libdecoration0 libcompizconfig0 python-compizconfig compiz-fusion-plugins-main compiz-fusion-plugins-extra
  2. Configurar el servidor "XORG" para que funcione el COMPIZ:
    # vim /etc/X11/xorg.conf
    Agregar las siguientes líneas a la sección "Device":
    ...
    Option "AllowGLXWithComposite" "true"
    Option "RenderAccel" "true"
    ...
    Además la siguiente línea a la sección "Screen":
    ...
    Option "AddARGBGLXVisuals" "true"
    ...
    Finalmente, agregar al final del archivo una nueva "sección":
    ...
    Section "Extensions"
    Option "Composite" "Enable"
    EndSection
Como hemos hecho unos cuantos cambios de impacto en el sistema, lo mejor es reiniciar el sistema.

Debemos disponer de un conjunto de programas en:
  1. SYSTEM -> PREFERENCES -> ATI Catalyst Control Center : Este sirve para configurar el controlador de ATI.
  2. APPLICATIONS -> SYSTEM TOOLS -> Compiz Fusion Icon : Aparecerá en nuevo ícono en el escritorio para administrar el COMPIZ de manera muy fácil.
Lo que queda es explorar y jugar con las opciones del compiz!

Espero sea de utilidad.

Éxitos!

José Gregorio.

FUENTES:
  • http://wiki.cchtml.com/index.php/Debian_Installation_Guide
  • http://www.taringa.net/posts/linux/1207876/C%C3%B3mo-instalar-Compiz-en-Debian-Lenny.html