PDA

Ver la Versión Completa : HOWTO activar teclas multimedia (hotkeys) en kde



Physlord
12-nov-2008, 10:55
Lo prometido es deuda, a pesar de que había prometido este tutorial desde abril no es sino hasta ahora que me he dado el tiempo para escribirlo, si bien parte de lo que aquí diré ya ha sido tratado aquí (http://www.forosuse.org/forosuse/showthread.php?t=261) en el foro trataré de complementar el tema y exponerlo de la forma más clara posible.

Primero se da una explicación de como identificar los códigos de cada tecla y posteriormente asignarles "un nombre". Finalmente habrá que asignarles un evento para que "hagan algo". En el presente tutorial asignarémos las teclas de control de volumen y las del reproductor, tanto para kde 4 (.1.2) como para kde 3, usando amarok y kmix, en sus respectivas versiones.


Requisitos

Durante el manual se dará por hecho que se está usando el entorno de escritorio kde

se requiere tener instalados los siguientes programas

xev y xmodmap: están ya preinstalados en opensuse (creo que se incluyen en xorg-x11-libs, pero no estoy seguro)

para activar el control de volumen y el reproductor en kde 4

kde4-kmix y kde4-amarok

para activar el control de volumen y el reproductor en kde 3

kdemultimedia3-mixer y amarok



Una vez que tenemos todo instalado procedemos a hacer nuestra configuración

identificación de código y mapeo

primero, abra una terminal, por ejemplo konsole. Usualmente se encuentra en favoritos o en Aplicaciones->Sistema->Terminal->Terminal(konsole)

una vez hecho esto teclee en el prompt

xev
con lo que debe aparecer una ventana como esta:

http://i37.tinypic.com/2eqe8tk.jpg
Dicha ventana nos permitirá identificar los códigos de cada tecla (keycodes). Para ello una vez que aparezca la ventana solo hay que presionar cualquier tecla y ver lo que aparece en la consola, en particular nos intereza la parte que dice "keycode" y el número que se encuentra inmediatamente enfrente, en el ejemplo es 153. Presione cada una de las teclas que decea utilizar y anote el "keycode" de forma que recuerde cuál corresponde a cada tecla (puede usar una hoja de papel y un lápiz para esto).

Una vez que se tienen los códigos procedemos a asignarles "un nombre". Para ello se utilizará el programa xmodmap de la siguiente forma:

xmodmap -e 'keycode 153=F27'
con esta instrucción habilitamos la tecla cuyo código es 153 para que se comporte como la tecla F27, el uso de F27 es arbitrario, puede ponerle el nombre que quiera, siempre y cuando esté en la keysym list (http://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap) . Conviene usar nombres distintos a los que ya tiene asignados su teclado. En este caso se usarán F21, F22,...,F29.

para "mapear" todas las teclas y no tener que teclear uno por uno los códigos y sus asignaciones vamos a hacer un script que automatice el proceso. Abra un editor de texto (kwrite) e ingrese un script con los "keycode" y su respectivo mapeo para cada tecla. Como en el sigueinte ejemplo


#!/bin/bash
xmodmap -e 'keycode 174=F21' &
xmodmap -e 'keycode 176=F22' &
xmodmap -e 'keycode 237=F23' &
xmodmap -e 'keycode 205=F24' &
xmodmap -e 'keycode 144=F25' &
xmodmap -e 'keycode 162=F26' &
xmodmap -e 'keycode 153=F27' &
xmodmap -e 'keycode 164=F28' &
xmodmap -e 'keycode 160=F29'

Guarde el script con el cualquier nombre, en este caso lo llamaremos xmodmaper. De esta manera ya hemos designado con una etiqueta determinada cada tecla. Sin embargo es necesario ejecutar el script para que esto tenga efecto, para ello desde consola cambie los permisos del archivo de la siguiente forma


chmod u+x xmodmaper

posteriormente hay que ejecutarlo


./xmodmaper

En este punto podríamos decir que su ordenador ya "puede ver" sus teclas multimedia, sin embargo al salir del servidor gráfico y regresar tendrá que ejecutar de nuevo el script para activar las teclas. Es posible hacer que el script se ejecute de forma automática al iniciar sesión, solo hay que copiarlo a la carpeta Autostart de kde. Desde consola, suponiendo que se encuentra en el mismo directorio que el fichero xmodmaper, se puede hacer de la siguiente forma

Para kde 3


cp xmodpaper ~/.kde/Autostart/

Para kde 4



cp xmodmaper ~/.kde4/Autostart/

Asignación de eventos en kde 4

Desde la ventana de Preferencias del sistéma, la cuál se encuentra en favoritos o en aplicaciones, dar click en el apartado de "Teclado y ratón". Luego, en el lado izquierdo dar click en "Accesos rápidos de teclado"

Selecciona "kmix" en el menú desplegable de "Componentes de KDE". Aparecerá una flecha que se encuentra frente a una acción determinada, aparecerá varias veces la misma acción frente a distintos dispositivos. Seleccione la acción y el dispositivos adecuados (si no estás seguro intenta hasta obtener resultados satisfactorios). Posteriormente en el recuadro que aparece abajo marcar la opción "Personalizada", de click en el botón de configuración y cuando cambia la tonalidad del recuadro y aparezca la leyenda "Entrada" en el mismo presiona la tecla que quiere usar.

http://i35.tinypic.com/35alsh4.jpg

El proceso es el mismo para asignar teclas al reproductor amarok, simplemente seleccione "Amarok" en el menú emergente "Componentes KDE". Una vez terminado solo hay que dar click en aplicar y listo, debería funcionar

Nota: Se debe tomar cuenta que kde 4 aún está en desarollo y no proporciona completa funcionalidad, por lo que las cosas no siempre resultan como una quiere.


Asignación de eventos en kde 3

Primero ingrese al centro de control, disponible en favoritos, o ejecutando kcontrol desde una terminal (o con Alt+F2).
luego da click en: Regional y accesibilidad->Introducir acciones. Posteriormente de click en el botón "Nuevo grupo" y dele un nombre, en primera instancia lo llamaremos "Kmix", ya que ahí introduciremos las acciones relacionadas con el mezclador.
Luego de click el grupo de acciones que ha creado, aparece en un recuadro con el título Acciones, y de click en "Nueva acción", ingrese un nombre para la nueva acción, en este caso la llamamos "silenciar" (sin las comillas).
A continuación selecciónamos Acceso Rápido de teclado -> Llamada DCOP (simple) en el menú emergente "Tipo de acción"

http://i34.tinypic.com/2v80sqe.jpg

Damos click en la pestaña "Acceso Rápido de teclado" Damos click el botón bajo "Seleccionar Acceso rápido de teclado:" En cuanto aparezca el cuadro de "Acceso rápido del teclado" presione la tecla deceada para el evento (en este caso poner en mute el volumen). El cuadro se cerrará automáticamente, en caso contrario de click en aceptar.

http://i33.tinypic.com/33eo0m0.jpg

Ahora en la pestaña "Preferencias de la llamada DCOP" llene los campos vacíos como en la imagen

http://i37.tinypic.com/2r6d64w.jpg

Ahora se puede probar si funciona dando click en "Intentar". Se debe silenciar la vocina y en el caso de los teclados con esa funcionalidad (portátiles HP por ejemplo) debe cambiar de color el led de la tecla mute.

Si todo va bien damos click en aplicar e iniciamos el proceso para intrducir una nueva acción. De esta forma podemos introducir las acciones necesarias, a continuación la lista de campos para las acciones que faltan

BAJAR VOLUMEN

Aplicación remota: kmix
Objeto remoto: Mixer0
Función llamada: decreaseVolume
Argumentos: 0

SUBIR VOLUMEN

Aplicación remota: kmix
Objeto remoto: Mixer0
Función llamada: increaseVolume
Argumentos: 0

Para el caso de Amarok abrimos un nuevo grupo mediante el proceso explicado. De nuevo agregamos una nueva acción a ese grupo. A continuación los campos a llenar en "Preferencias de llamada a DCOP"

DETENER

Aplicación remota: amarok
Objeto remoto: player
Función llamada: stop
Argumentos:

REPRODUCIR/PAUSA

Aplicación remota: amarok
Objeto remoto: player
Función llamada: playPause
Argumentos:

IR A TEMA PREVIO

Aplicación remota: amarok
Objeto remoto: player
Función llamada: prev
Argumentos:

SALTAR AL SIGUIENTE TEMA

Aplicación remota: amarok
Objeto remoto: player
Función llamada: next
Argumentos:

En este caso, a diferencia de kde 4, si es bastante estable todo, lo he usado por mucho tiempo sin ningún problema.

PD: una de las imágenes no es visible, solo puse el enlace.

Physlord
08-dic-2008, 19:10
Un par de correcciones.

Primero. La configuración de las teclas de volumen con kmix se puede hacer más sencilla si al hacer el mapero asignas a las teclas correspondientes los siguientes nombres

Subir volumen --> XF86AudioRaiseVolume
Bajar volumen --> XF86AudioLowerVolume
Silenciar --> XF86AudioMute

Hecho esto en la configuración de accesos rápidos de teclado para kmix no hay que hacer nada.

Segundo. Al crear el script que menciono en el tutorial y ponerlo en Autostart, éste se ejecuta al iniciar sesión, pero en ocaciones se ejecuta después de que kmix o amarok se han cargado en la bandeja del sistéma. Entonces las teclas no funcionan. Para evitar esto solo hay que crear un archivo en home llamado .Xmodmap con las sentencias del tipo

keycode 237=F23
Es decir, al script hay que borrarle todo lo demás. A continuación les muestro como quedó mi archivo .Xmodmap

keycode 174=XF86AudioLowerVolume
keycode 176=XF86AudioRaiseVolume
keycode 237=F23
keycode 205=F24
keycode 144=F25
keycode 162=F26
keycode 153=F27
keycode 164=F28
keycode 160=XF86AudioMute

coolGC
25-dic-2008, 11:02
Buen how to..... pero no encuentro como asignarle la parte del Play, Next, Prev, Stop ya que en preferencias del sistema/teclado, solo existen opciones para subir y bajar volumen para Kwin ademas de que amarok no me aparece en el combo de componentes kde pero eso lo soluciono configurando como global el bajar/subir volumen que es lo que me funciona xfa si me puedes ayudar con estos temas

coolGC
29-dic-2008, 05:43
solucione el problema de las teclas del antes mencionadas configurando las teclas globales dentro del amarok....ahora solo faltan las de internet y calculadora pese a que el configure el Editor de menus con las teclas del .Xmodmap no resulto

caligulaelsanto
30-dic-2008, 15:37
felicitaciones

excelente tuto
ya tengo amarok funcional con las teclas multimedia adicionales

como dato me funciono agregando las funciones como url simple

me falta descular las funciones para firefox atras ,adelante, actualizar y cerrrar navegador
que tiene el teclado

ya preguntare en tal caso ,luego
pero ya con amarok me doy por triunfador


felicitaciones nuevamente

gracias :dedosarri

editado: logre que una tecla habra firefox
me gustaria si se puede activar las teclas ya asignadas pagina atras,adelante actualizar
y cerrrar navegador
estuve probando pero no doy en el clavo

saludos

coolGC
22-feb-2009, 20:51
me puedes indicar como hiciste con el hotkey de firefox ya que a mi me reconocen el resto de teclas pero al momento d irme al editor de menus y setearle la nueva tecla la reconoce pero no hace nada, en su lugar si pongo x ejemplo "Shift+Derecha" abre el firefox a la perfeccion para volumen y next track me funcionan con el amarok d maravilla..

NestorAcevedo
09-may-2009, 00:23
si no es por este tutorial, mis teclas multimedia mueren casi q para siempre en kde. despues de instalar el compiz, las teclas multimedia murieron y no supe como cuadrarlas. excelente.

caligulaelsanto
09-may-2009, 16:09
me puedes indicar como hiciste con el hotkey de firefox ya que a mi me reconocen el resto de teclas pero al momento d irme al editor de menus y setearle la nueva tecla la reconoce pero no hace nada, en su lugar si pongo x ejemplo "Shift+Derecha" abre el firefox a la perfeccion para volumen y next track me funcionan con el amarok d maravilla..

perdon por no responder ,se me paso
solo logre que abra firefox,pero la función pagina adelante, atrás,cerrar navegador y actualizar no lo logre

Physlord
15-may-2009, 06:31
Ante los reclamos del público me di a la tarea de tratar de hacer funcionar las teclas de firefox (siguiente, anterior, recargar página). Partimos del supuesto de que ya se hizo el "mapeo" de dichas teclas y se les asignó un nombre. En mi caso usaré las declas

F25 -- Atras
F27 -- Adelante
F26 -- Recargar

Manos a la obra. Primero debemos instalar los programas xbindkeys (repositorio opensuse 11.1 (http://ftp5.gwdg.de/pub/opensuse/repositories/X11:/Utilities/openSUSE_11.1/))y xvkbd (repositorio opensuse 11.1 (http://ftp5.gwdg.de/pub/opensuse/repositories/home:/dkukawka/openSUSE_11.1/)).

Una vez instalados creamos un archivo en nuestra carpeta personal llamado .xbindkeysrc. Aquí el mío, en seguida explico cada linea.



"xvkbd -text "\[Alt_L]\[Left]""
F25

"xvkbd -text "\[F5]""
F26

"xvkbd -text "\[Alt_L]\[Right]""
F27

La primera sentencia inicia y termina con comillas dobles, " ", indica el comando que ha de ejecutarse al presionar la tecla en cuestion. En nuestro caso llama al programa xvkbd que a su vez manda a la aplicación cuya ventana está activa, el comando AltIzquierdo+FlechaIzquierda (atajo de firfox, opera, y otros navegadores para "Página Anterior"), en la siguiente linea va la tecla que activa el comando. Lo mismo para el resto de las lineas.

Para que este archivo de configuración funcione debe arrancarse el programa (demonio) xbindkeys. Simplemente hay que escribirlo en la consola y dar enter:


xbindkeys

Para detenerlo (esto es útil mientras se hacen pruebas para llegar a la configuración final):


killall xbindkeys

Dichas teclas funcionarán para la ventana activa en cuestión (firefox, opera, konqueror, dolphin, etc.), lo que le da mucha más funcionalidad a nuestras teclas multimedia.

Para que el demonio xbindkeys se ejecute de forma automatica al iniciar sesión podemos crear un archivo en Autostart como indico en el primer post de este hilo, el comando a ejecutar es simple



#!/bin/bash

xbindkeys

Es claro que si nos ponemos un poco creativos podemos sacarle mucho jugo a lo anterior, por ejemplo, podríamos configurar las teclas del reproductor para que funcionen con cualquiera que tengamos abierto en un determinado momento (amarok, mplayer, vlc,), no lo he hecho, solo es una idea.

Espero esto ayude un poco, suerte ;)

PD: En las palabras Left y Right en los comandos de .xbindkeysrc debe escribirse la primera letra mayúscula, no sé por qué en el post aparecen minúsculas.

Editado: en los comandos había un cracter "#" que no debería estar ahí, lo borré.

caligulaelsanto
23-may-2009, 17:15
gracias por el dato y disculpas por no responder antes

ando con serios problemas de disco, deberé comprar otro y poner todo de nuevo

se murió así de simple


la primera fase del tutorial me salio redonda,luego probare esto