Configurar teclas de función (Fn) en portátiles / teclados bajo LXDE

Las teclas de función (FN) generalmente en portátiles no siempre vienen correctamente configuradas en LXDE, en algunos casos, dependiendo de la distro y el hardware que se tenga entre manos, puede que no tengan asignada ninguna función. Las funciones pueden ser subir / bajar el volumen, nivelar el brillo de la pantalla, encender la wifi, etc.

NOTA: En algunos casos vale incluso con cargar un determinado módulo del kernel (sony-laptop, asus-nb-wmi, etc.)

Se va a describir a continuación de forma muy breve como asignar funciones a fichas teclas bajo el escritorio LXDE.

Herramientas: xev

Fichero de configuración para las teclas Fn y otras combinaciones de teclas: $HOME/config/openbox/lxde-rc.xml

Las teclas de Función como las demás combinaciones de teclas, se debe configurar dentro de las etiquetas de <keyboard> y </keyboard> de dicho fichero. La definición de teclas tiene la siguiente estructura.

    <keybind key="NOMBRE">
        <action name="Execute">
      <command>COMANDO</command>
        </action>
    </keybind>

Para saber el nombre de una determinada combinación podemos utilizar el comando xev dentro del entorno gráfico. Una vez ejecutado, podemos pulsar por ejemplo, la tecla de función y la tecla de play (tecla de función para pausar o continuar una reproducción).

KeyRelease event, serial 49, synthetic NO, window 0x2c00001,
    root 0xad, subw 0x0, time 6634564, (116,-9), root:(881,788),
    state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

El nombre de la combinación Fn + tecla de play es “XF86AudioPlay”, ahora ya podemos configurar el comando correspondiente en nuestro fichero lxde-rc.xml.

Ejemplo de teclas de función configuradas en $HOME/config/openbox/lxde-rc.xml

<heyboard>
....
 
<!-- FN keys -->
    <keybind key="XF86AudioRaiseVolume">
        <action name="Execute">
      <command>amixer set Master 10%+ unmute</command>
        </action>
    </keybind>
    <keybind key="XF86AudioLowerVolume">
        <action name="Execute">
            <command>amixer set Master 10%- unmute</command>
        </action>
    </keybind>
    <keybind key="XF86AudioMute">
        <action name="Execute">
            <command>amixer set Master toggle</command>
        </action>
    </keybind>
    <keybind key="XF86MonBrightnessDown">
        <action name="Execute">
            <command>xbacklight -dec 10%</command>
        </action>
    </keybind>
    <keybind key="XF86MonBrightnessUp">
        <action name="Execute">
            <command>xbacklight -inc 10%</command>
        </action>
    </keybind>
 
    <keybind key="XF86Mail">
        <action name="Execute">
            <command>terminator -e mutt</command>
        </action>
    </keybind>
    <keybind key="XF86MailForward">
        <action name="Execute">
            <command>terminator -e mutt</command>
        </action>
    </keybind>
 
    <keybind key="XF86HomePage">
        <action name="Execute">
            <command>firefox</command>
       </action>
    </keybind>
...
 
</keyboard>

Lamentablemente no en todos los casos la tecla de función que queremos usar muestra una salida en xev, si este fuera el caso, otra posibilidad sería asignarle una combinación de teclas diferente. Por ejemplo, supongamos que Fn + F6 tiene un icono que insta a bajar el brillo de la pantalla. Al realizar al combinación con xev, este no muestra nada, bien, podemos por ejemplo utilizar la tecla de windows + F6 para esa misma tarea, quedando de la siguiente forma.

    <keybind key="W-F6">
        <action name="Execute">
            <command>xbacklight -dec 10%</command>
        </action>
    </keybind>

Si pulsamos la tecla del logo de Windows ejecutando xev, notaremos que su nombre es Super_L, y es así como debe ser nombrada cuando se pulsa sin combinar con otras. Si se quiere combinar con otra, debemos ir al manual de openbox y en el apartado de modificadores ver qué definición se le ha asignado (W).

Desplegar el menu de LXDE con la tecla de logo de Windows.

<keybind key="Super_L">
  <action name="Execute">
    <command>lxpanelctl menu</command>
  </action>
</keybind>

Lecturas recomendadas.