En algunos teclados (gh60, gh60 satan, Epsilon, JD40, phantom, kmac,...) se pueden programar las teclas y combinaciones de teclas.
Este hilo pretende dar una orientación rápida de cómo hacerlo utilizando diferentes métodos, programas y lenguanjes de programación.
Acidnos también ha preparado una guía de cómo configurar el teclado usando TMK firmware y la interfaz gráfica onlina TMK Keymap Generator. Lo podéis encontrar en #3.
EasyAVR
(por txepox)
1- Preparación:
Linux/Mac
- dfu-programmer: Instalar desde los repositorios con apt-get/aptitude/pacman/yum...
- EasyAVR: Descargarlo y descomprimirlo
Windows/b
- Instalar Flip 3.4.7 y java). Página del atmel
- Instalar los drivers de atmel para atmega(usb) [Vienen con en alguna carpeta con flip]
- Pulsar el botón trasero del teclado. El teclado entra en modo "bootloader"
- En el gestor de dispositivos, buscar el atmega32u4 y pulsar en "actualizar driver"
- Elegir manualmente un driver y seleccionar la carpeta situada en el directorio de instalación de FLIP
- EasyAVR: Descargarlo y descomprimirlo https://github.com/dhowland/EasyAVR
2- Crear un fichero de configuración ".hex"
Ejecutar EasyAVR
Descargar de #2 un ficher de layout ".dat" que más se parezca al vuestro para vuestro modelo de teclado (GH60 es diferente que GH60 satan).
Abrirlo con el EasyAVR o empezar uno nuevo.
Consideraciones importantes sobre los "errores" de la interfaz:
- Al pulsar las teclas, el teclado manda scancodes al ordenador independientemente del lenguaje que se utilice. Es cuestión del sistema operativo interpretarlo como corresponda el lenguaje. Así pues no importa el idioma en el que configuréis en el EasyAVR el cual utilizar los idiomas ANSI-US y ISO-UK. Posteriormente, el SO se encargará de traducir esos scancodes al castellano.
- Para configurar en ISO desde cero, hay que cargar el layout "all keys" del teclado.
- En la interfaz del EasyAVR no existe la imagen del return ISO. Las asignaciones de las teclas ANSI a ISO son las que podéis ver en azul y rojo en la imagen.
- A las teclas características de ISO (las azules en la imagen) hay que asignarles los scancodes HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE
y HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE. - Si tenéis el shift derecho partido, las teclas hay que asignarlas al revés (teclas verdes en la imagen).
Todo lo demás podéis toquetearlo a vuestro gusto.
Modos de pulsación de las teclas
Dependiendo de cómo actuemos sobre una tecla, ésta puede devolver una acción diferente dependiendo cómo la tengamos asignado el modo. Así pues, a cada tecla se le asocia un modo, y si fuera necesario, una acción secundaria asociada al modo.
- Modo normal: Al pulsar la tecla
- Toggle: Al estilo del bloqueo de mayúsculas, cuando pulsas mantiene su estado y al pulsar otra vez queda desactivado.
- Tap key: Al pulsar y soltar la tecla (útil para mezclar con los modificadores dual role)
- Lockable: Al igual que toogle, pero se activa con dos pulsaciones
- Rapid Fire: npi
Configuración de los leds
View > led configuration
- También se puede acceder mediante: scancode_bl_dimmer, scancode_bl_enable y scancode_bl_mode,
Capas
Las capas permiten acceder a muchos más scancodes de los que físicamente tenermos en el teclado. AL activar una capa, las asignaciones de los scancodes puede diferir completamente de la capa por defecto.
- Manteniendo pulsada la tecla función accedemos momentáneamente una capa (FN) la cual desaparece al soltar dicha tecla. Recomendable para acceder a símbolos alfanuméricos o teclas función F1, F2,...
- Adicionalmente podemos acceder a capas permanentes (FN1, FN2,...) que se mantienen incluso soltando la tecla. Ideal para tener capas activas con teclados numéricos, capas especiales para juegos,... ¿ideas?
Macros
Por hacer...
3- Escribir el fichero ".hex" en el teclado.
Para conseguir el fichero ".hex" se exporta desde el programa EasyAVR. Es recomendable salvar la configuración también en un fichero ".dat· porque no se puede abrir un fichero ".hex" con el EasyAVR.
Linux/Mac
- Pulsar el botón trasero del teclado.
- sudo dfu-programmer atmega32u4 erase
- sudo dfu-programmer atmega32u4 flash ".hex"
- sudo dfu-programmer atmega32u4 start
- Profit!
Windows/b
- Abrir Flip. Seleccionar atmega32U4. Todas las demás configuraciones dejadlas tal cual.
- Pulsar el botón trasero del teclado.
- Cargar el fichero ".hex" y escribirlo en el teclado (borrando el que ya estaba guardado en el teclado anteriormente)
- Desconectar y conectar el teclado
- Profit!
TMK configurado desde la web
(por AcidNos)
Lo primero que tenemos que hacer es ir a la pagina del editor del layout. Una vez en ella, vamos a la zona del menu a donde pone “Preset” y seleccionamos el tipo de layout que queremos (Default 60% para ANSI o ISO 60%). Este seria un ejemplo de capa ANSI:
https://i.imgur.com/ph3mF6D.png
Una vez hecho esto nos saldra nuestro layout en pantalla, pero ¿Que pasa con los que tienen un teclado con teclas adicionales? Pues obviamente nada, solo hay que añadir esas teclas. Para añadirlas basta con ir donde nos pone “Raw data” en las pestañas que hay justo debajo del layout del teclado. En esta pestaña podemos ver todos los codigos de la capa que estamos creando.
Por ejemplo, para los que tenemos una tecla FN al lado del shift derecho, nos fijamos en la linea 4 del codigo de nuestro default preset y vemos lo siguiente:
{w:2.75},"Shift"]
Esto quiere decir que tenemos una tecla de tamaño 2,75 y que dicha tecla es el Shift. Pues bien, para los que tenemos la tecla FN al lado del shift, simplemente tendriamos que sustituir ese trozo de codigo por este otro:
{w:1.75},"Rshift","Fn1"]
Esto quiere decir que el Shift derecho mide 1,75 y que seguido tenemos una tecla que hemos llamado Fn1. Como veis es muy sencillo. Para los que tienen el Backspace partido, solo tienen que quitar el codigo del tamaño de la tecla y añadir la funcion de la segunda tecla.
Una vez tenemos nuestra capa terminada, le damos a Download JSON y descargamos el layout a nuestro PC, que luego nos hara falta.
Para la segunda capa, una vez tenemos la primera ya creada, podemos usarla de plantilla. Para dejar una tecla sin funcion o letra, bastara con poner unas simples comillas como en este ejemplo:
En la capa de la imagen, podemos ver que tenemos lo siguiente:
- Las teclas F
- Las flechas en lo que seria W, A, S, D en la capa principal
- Las teclas de funcion de volumen (Mute, VolDn, VolUp)
- Varias teclas Fn
Bien, las teclas Fn del numero 5 al 8 son las que en este caso emplearemos para los leds. Obviamente, cada uno podra ponerlas donde mas le plazca y como le plazca según la idea que tenga de su teclado.
Guardamos en nuestro PC esta segunda capa (le damos a Download JSON) y, suponiendo que tenemos ya las dos capas principales, ya solo nos queda la ultima parte.
Abrimos la pagina del programador (el link es el que he puesto al principio, no os fijeis en el link de la imagen) y veremos algo tal que asi:
En el caso de poseer una GH60 Satan, deberemos escoger GH60 (RevCHN) en el apartado general. En el caso de poseer una GH60 normal, deberemos elegir GH60 (RevA/B/C).
Ahora vamos a la parte importante. En el apartado layer, dejamos el Layer mode tal cual. En number of layer ponemos el numero de capas que tendra el teclado, en este caso 2.
Nos saldran tantos recuadros para las capas, como numero de capas hayamos incluido. Pues bien, nos vamos ahora al recuadro correspondiente al Layer 0, que es la primera capa de nuestro teclado. Aqui tenemos que pegar el codigo que hemos generado en el editor de capas (el JSON correspondiente a la primera capa, que para eso la hemos guardado). Abrimos en la pagina del editor el JSON de la primera capa, vamos a la pestaña RAW Data y copiamos el codigo. Acto seguido lo pegamos en el recuadro Layer 0. Hacemos lo mismo para la segunda capa, la cual pegaremos en el recuadro Layer 1.
Os habreis dado cuenta que según habeis pegado el codigo de cada capa, os habra agregado justo debajo de los recuadros, la misma cantidad de teclas de funcion que hayais puesto en el codigo de cada capa.
Si os acordais, la tecla Fn situada al lado del Shift, esta numerada como Fn0 y aquí deberemos decirle al programador que queremos que haga. En este caso lo que queremos es que al estar pulsada nos active la segunda capa, y que al soltarla nos desactive dicha capa. Teniendo esto en cuenta desplegamos las opciones del Fn0 y elegimos “Layer Action Momentary”. Esto quiere decir que la accion es momentanea. Al elegir esta opcion nos dara a elegir una capa. Aqui tenemos que elegir la capa que queremos que nos active, que en este caso sera la 1 y nos saldra por defecto.
Ahora vamos a elegir las acciones para las teclas Fn 5, 6, 7 y 8 (realmente las 5, 6 y 7), las cuales vamos a usar para el manejo de los leds. En realidad vamos a usar tres porque 2 de las 4 funciones disponibles, son practicamente igual al uso, por lo que con una que tengamos es suficiente.
- Tecla Fn5: Desplegamos y nos vamos a Backlight action y seleccionamos Decrease.
- Tecla Fn6: Desplegamos y nos vamos a Backlight action y seleccionamos Increase.
- Tecla Fn7: Desplegamos y nos vamos a Backlight action y seleccionamos Toggle.
Una vez terminada esta parte, ya solo nos queda seleccionar el led del bloqueo de mayusculas, para que se encienda y se apague según lo tengamos activado o desactivado y marcar la casilla backlight si tenemos leds y en el apartado Backlight marcar tambien dicha casilla y en el menu desplegable elegir “None”.
Ya solo queda pasar el firmware al teclado y para ello solo tenemos que enchufar el teclado y pulsar el boton que hay en la base para ponerlo en modo DFU (Programacion). Esto nos activara el boton verde en el que pone “Burn .eep file”. Le damos al boton y esperamos a que termine. Si el boton no se nos habilita pulsando el boton, sera que no tenemos el TKG-Toolkit instalado, que son unos drivers para que nos detecte el teclado. Los descargamos de aqui y, una vez instalados, volvemos a probar.
En el caso de que querais una capa que se quede fija al pulsar un boton de funcion, en vez de la opcion Momentary, habra que seleccionar la opcion On, pero en este caso, habra que asignar una tecla de funcion dentro de la capa que activemos, para poder desactivarla (Opcion Off o Clear All).
El metodo parece dificil, porque quizas yo no me haya explicado demasiado bien, pero en realidad es muy sencillo ademas de intuitivo. En cualquier caso, si teneis alguna duda, no teneis mas que preguntar.
Errores encontrados y soluciones
- No consigo que se active el boton “Burn .eep File”: Se necesitan unos drivers especificos para el TKG-Toolkit llamados Zadig. Si aun asi sique sin habilitarse, probar a desactivar el AdBlock.
Enlaces adicionales
Os dejo el link de la pagina de la que he sacado esta informacion. En dicha pagina esta explicado todo de forma muy basica, pero es posible que algunos lo entiendan mejor asi:
Lista con los nombres aceptados de las teclas por el TMK (por si no sabeis como se llama alguna tecla de forma abreviada):
http://tkg.io/#help
Si por un casual no quereis desactivar el AdBlock, existe otro metodo para poder grabar el firmware en el teclado. Este consiste en descargar el fichero .eep directamente a nuestro ordenador y seguir los pasos que se describen al final del link anterior con Zadig y tkg-toolkit.
Y esto es todo. Ya solo queda disfrutar del teclado. En caso de dudas, preguntar sin miedo
A disfrutar de los enanos!!!