Programando el teclado GH60

txepox

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)

spoiler

TMK configurado desde la web

(por AcidNos)

spoiler
1
txepox

Archivos de configuración

Archivos de configuración (2bs -> backspace dividido, 2rs-> shift derecho dividido):
GH60

  • ANSI-GH60-STD .dat .hex
  • HHKB-ISO-GH60 .dat .hex
  • ISO-GH60-STD .dat .hex

GH60 satan

  • ANSI-SATAN-STD .dat .hex
  • ISO-SATAN-STD .dat .hex

Vuestros archivos de configuración

Txepox
Configuración para un teclado con fila inferior tsangram para alojar un keyset WKL. Backspace partido.
Link de descarga: dat hex

Estaría dpm que compartierais vuestros archivos de configuración con vuestras capas y macros.

1 1 respuesta
AcidNos

Segundo metodo de programacion de las GH60

Lo primero que vamos a necesitar son dos paginas y unos drivers, que son los siguientes:

EDITOR DEL LAYOUT: http://www.keyboard-layout-editor.com/#/layouts/5743161906ea73bce088a21c97dab2bd
PROGRAMADOR DEL TECLADO: www.tkg.io
TKG-Toolkit Drivers (Zadig): http://zadig.akeo.ie/

Con este modo el numero de capas es mas limitado pero seguramente a mas de uno le resulte mas sencillo. Este metodo lo que hace es instalar el firmware directamente en el teclado, ya sea GH60 o GH60 Satan desde la web. El firmware que nos instala en el teclado es el TMK.

PRIMER PASO, CREANDO NUESTRO LAYOUT

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:

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:

https://imgur.com/a/rfezG

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 :D

A disfrutar de los enanos!!!

1
JuGuLaToR

Edito que he hecho modificaciones y ya uso la plantilla de Txepox.

Jugulator
Nada especial, las teclas básicas que más uso en el día a día. Le voy añadiendo cosas según veo que me hacen falta.
Link de descarga: dat+hex

1 respuesta
pantocreitor

Me da cosa meterle mano al teclado.
Estaba viendo y todo el tema de teclas se puede configurar bien y sin demasiada complicación pero no sé cómo configurar las teclas para el control de leds, por ejemplo.

1 respuesta
AcidNos

#5 con scancode_bl_dimmer, scancode_bl_enable y scancode_bl_mode, manejas los leds en el easy avr. Tendrias que marcar que teclas quieres usar en la capa FN para el uso del dimmer de los Leds.

1 1 respuesta
pantocreitor

#6 mañana empezare a trastear sabiendo ya eso :D

AcidNos

ACTUALIZACION

Acabo de poner en #2 un metodo alternativo de programacion de los teclados. Echarle un ojo y usar el que mas os guste o sencillo os parezca :D.

Este metodo alternativo usa el firmware TMK. Solo le he encontrado un pequeño fallo y es que, en los teclados ISO, la tecla que va al lado del shift izquierdo, no pone los caracteres < y >. Aun no se la razon de esto pero lo estoy investigando a ratos. En cuanto encuentre la solucion, actualizo el contenido.

1
Joanqui

Configuración EasyAVR para Dual role en Caps Lock para que actúe como Left Control cuando la pulsas con otra tecla y que continúe siendo Caps Lock cuando la pulsas sola:

Lo encuentro super útil y es de lo primero que he querído probar.

2 respuestas
viejuno

#9 ¡Gracías! No estaba muy seguro de como hacerlo y tienes toda la razón, es muy útil. Con eso libero la tecla control izquierda, que pasará a ser una Fn. :D

pantocreitor

Igual es un poco especialita pero esta es la distribución que he elegido

Las Fn 1, 2, 3 y 4 son para el control de leds, la 0 para la segunda capa, la 5 es el activador de la capa 3 y la 6 el desactivador de la capa 3.
Quiero ir probando más cosillas cosillas como lo del dual role. Lo quería probar de entrada para la ñ y las letras con tilde, pero creo que es más rápido con altgr.

Por cierto, sabéis si se pueden extraer del teclado las configuraciones con el easy AVR?

1 respuesta
txepox

Añadidos modos, configuración de teclas y capas. Otras correcciones. Gracias por las aportaciones de Joanqui, Jugulator y acidnos


#4 #11 Gracias por vuestras configs. Los añadiré a #2 en breve.

#9 Añadido a la guía.

#11 No se puede extraer ningunas info de los .hex. Por ello es recomendable guardar un .dat.

txepox

En el futuro, os agradecería si utilizáseis este código para subir vuestras configuraciones. Si lo habéis hecho, ya, o pido que lo hagáis de nuevo. Gracias por adelantado

[b]Vuestro nombre[/b]
Cometario sobre vuestra configuración
Link de descarga:  [url=Link de descarga]dat[/url] [url=Link de descarga]hex[/url]
[spoiler]
[img]Foto del teclado[/img]
[img]imagen de la primera capa[/img]
[img]Imagen de la segunda capa[/img]
....
[/spoiler]
10 días después
teclat

Para el que quiera trastear con algunas opciones curiosas que tenga en cuenta el firmware QMK.

Cosas a destacar, a parte de otras ya conocidas o soportadas en otros firmwares:

  • One shot modifier: Por ejemplo al configurar el shift de esta forma lo pulsas, dejas ir y queda activado el shift SOLO para la siguiente tecla.
  • Soporte multi-modificador en el modo dual-role: Por ejemplo con MT(MOD_LCTL | MOD_LSFT, KC_ESC) enviaría el código de ESC al pulsar y dejar ir, o al pulsarlo con otra tecla actuaría como CTRL+SHIFT+OTRA_TECLA.
  • Spacecadet shift: Más o menos como dual-role de LSHIFT o ( y RSHIFT o ).
  • Leader Key: Si conocéis el concepto de la leader key en VIM pues lo mismo, tras pulsar una tecla configurada como leader key si se pulsa rápidamente otra secuencia de teclas se puede hacer que se envíe una combinación de teclas. Por ejemplo si la leader key es ~ se puede decir que si después de pulsar ~ se aprieta la s rápidamente, que se envíe la combinación CTRL+ALT+SUPR.
  • Tap dance: Permite configurar que por ejemplo al pulsar la tecla ' dos veces rápidamente se envíe el código de ", o el de ` al pulsarla tres veces (o cosas similares).
  • Macros: Permite macros pre-programadas o grabar-las sobre la marcha (se pierden al apagar el teclado).

A ver si me decido finalmente por un firmware e implemento alguno de los layouts que tengo en mente y lo comparto aquí :)

1 respuesta
teclat

teclat

  • Layout con todo partido excepto el enter.
  • El LCTRL que está dónde el CapsLock (modo HHKB) está en dual-role con ESC.
  • Backspace en modo HHKB.
  • Shifts en modo Spacecadet Shift, dual-role con los paréntesis.
  • Cursores en modo VIM.
  • Navegación del ratón simulando modo VIM pero una fila más abajo.
  • Símbolos que más utilizo más accesibles.
  • Controles multimedia accesibles.
  • Todas las teclas FXY >= F16 las utilizo para definir macros a nivel de sistema operativo. Originalmente tenía muchas macros directamente en el teclado, pero de esta forma cuando utilizo el teclado integrado del portátil puedo remapear combinaciones de teclas a estas FXY y así usar las mismas macros al estar implementadas por software y ligadas a esos keycodes.

Links de descarga:

  • keymap.c, Makefile, satan.h (para firmware QMK)
  • satan_teclat.hex
    (como no se correspondía con ninguno de los layouts existentes en el firmware QMK para el pcb GH60 Satan he tenido que definir-lo primero en el fichero satan.h.)
spoiler
1 respuesta
txepox

#14 Cuando descrubí el EasyKeymapper me dije "bah... con esto es suficiente... no hay más combinaciones posibles..." pero ahora leyéndote digo "jooode!..."

#15 Buenísimo! Qué curiosos los layouts. Varias preguntas: ¿Qué macro es la tecla F24?. ¿Los paréntesis los tienes con alt+(r/l)shift-?. Por lo que veo no te gusta usar mucho shift+número.
¿En qué leches trabajas que necesitas "meter" el ratón en el teclado?.
Muchísimas gracias por tu aportación... Tengo que reconocer que me das mucha envidia y que me gustaría reirme viéndote delante de un teclado normal... ;)

1 respuesta
teclat

#16 La tecla F24 ahora mismo es "Ctrl-a", básicamente el prefijo que tengo para tmux. Pero no me gusta nada la ubicación :\

Los paréntesis los tengo en dos sitios, en los shifts en modo dual-role. Si pulso y dejo ir el shift izquierdo se escribe ( y con el derecho ). Pero era para probar, realmente lo que más uso es FN + la tecla dónde están por defecto [ y ] en ANSI. Me parece lógico que si con shift saco { y } respectivamente, con FN saque los paréntesis.

No es que no me guste usar shift+número, pero soy bastante malo para teclear-los bien a la primera y prefiero tenerlos más cerca del home row. Aunque también estuve a un paso de poner por defecto los símbolos y que al pulsar shift saliesen los números, ya que uso más los primeros. Pero no me solucionaba el tema de que soy malo para teclear el que toca de primeras (y encima al usar blanks ni mirando lo soluciono a veces).

El ratón en el teclado era un intento (por ahora fallido) de simular un pointing stick, al cual estoy acostumbrado de los teclados de los thinkpad. Realmente no uso mucho el ratón, tengo todo con atajos de teclado, incluso en el navegador. Algún día me molaría modificar el teclado para ponerle el pointing stick a modo del Tex Yoda o incluso un trackball integrado...

La verdad es que me corto con el tema personalización porque cuando tengo que tocar otros teclados (y otros sistemas) los primeros minutos parezco manco (entre activar el CapsLock usándolo como Ctrl y otras lindeces...) :(

B

No me rula el método de acid :( quite el adblock pero ni aun así me deja meter los layers

2 respuestas
AcidNos

#18 Has instalado el driver para el TKG-Toolkit??? Pulsaste el botoncito de la parte trasera del teclado para ver si se habilitaba el boton para instalar el firmware???

EDIT: He estado repasando el post y me faltaba incluir los drivers del TKG-Toolkit y mencionarlos. Sin esos drivers es imposible que funcione ya que la pagina no reconoceria el teclado. Fallo mio pero ya esta solucionado. Con esos drivers deberia funcionarte a la perfeccion.

2 respuestas
pantocreitor

#18 #19 a mi a parte me pedía una extension de chrome para hacerlo, cosa que me pareció muy curiosa (lo hice en un macbook, por si influye)

1 respuesta
AcidNos

#20 La extension de Chrome no es mas que la misma web hecha extension. Mas bien lo que te dice es que, si quieres, puedes usar dicha extension en vez de la web. Digamos que es una "aplicacion" web y no es para nada necesaria. Es decir, la usas o no, si quieres. Yo la probe y va bien, pero teniendo la web, me era suficiente.

1
B

#19
Seguramente sea eso, hoy pruebo a ver.

1 respuesta
AcidNos

#22 Instala tambien la extension de chrome, que hoy he intentado configurar el teclado sin ella y no he podido. Con que busques TKG en las extensiones, te aparece sin problema.


Eh Aqui Mi Config

Bueno pues al final ya he puesto iluminacion al teclado provisional (me pedi unos SIPs que me llegaron la semana pasada) y hoy he aprovechado que estoy un poco convaleciente, para ponerlos y darle un lavado de cara al teclado. Es provisional pero me gusta como queda asi. Lo que si se van a quedar fijas, son las capas que le he configurado, ya que me encuentro bastante comodo con ellas.

Estas son las capas de configuracion:

Y asi luce el teclado ahora con los Leds:


El teclado lo he configurado con el TMK Keymap Generator (el de la web que postee mas arriba). Solo hay una cosa que no he conseguido dar con ella con esta configuracion y es poner los simbolos de mayor que y menor que, en la tecla al lado del shift izquierdo. Probare a cacharrear con el Easy a ver que tal con el tambien.

B

nada que no soy capaz.. al intentar instalar los drivers del teclado en modo bootloader me falla la instalación de los drivers WinUSB, estoy instalando actualizaciones no vaya a ser que sea porque esté recien formateado..

Edit: Ya he podido, he tenido que instalar el flip instaler para que me detectase los drivers WinUSB, ya tengo mi teclado 100% funcional a la espera de que me ponga los leds para ver en que capa estoy :P

1 respuesta
AcidNos

#24 Es curioso, a ti te da problemas mi metodo y a mi me esta dando problemas el EasyAVR xDD. No consigo que me detecte el modo DFU y tampoco consigo sacar el Backlight del teclado, solo el del Caps Lock.

1 respuesta
28 días después
pantocreitor

#25 Si te cuento lo que me acaba de pasar a mi xD
Los 2 métodos me funcionan perfectamente. Hace un par de días me llego la caja y digo voy a trastear y tal.
Resumiendo: flasheando el firmware con el TMK el PC se reinicia sin parar al encenderlo con el teclado conectado, flasheandolo con el Easy AVR arranca bien xD
Its magic!!! xD

1 respuesta
AcidNos

#26 prueba a reinstalar el driver del controlador a ver si te sigue haciendo lo mismo. Yo no he trasteado nada aún. Me operaron hace un mes y lo he tenido un poco aparcado.

1 respuesta
pantocreitor

#27 Lo primero mejórate tío.
El tema del driver probe a cambiarlo, desinstalarlo, limpiar bien, pero es que es raro, si lo enchufas con el PC encendido funciona bien todo, se puede usar, se puede flashear el firmware y tal y no hay ningún problema.

AcidNos

Prueba a borrar la nand completamente a ver antes de meterle el firm

27 días después
pantocreitor

Pongo por aquí mis .dat y .hex

Todavía no se si se quedará así o cambiaré algo.
Las cosas así mas o menos especiales qu ehe configurado han sido un par de macros para mail y pass, una capa con el teclado numérico y el page up y page down en la capa FN realmente son ctrl+shift+page up y ctrl+shift+page down que son las combinaciones que tengo en todos los programas de comunicación (TS, curse, discord, etc...) para el mute del micro y el mute de sonido.

Poco mas, acepto sugerencias xD

EDIT: también tengo para alt+f4 fn -> alt+f4, aunque me gustaría poder hacerlo sin presionar FN, a ver si se os ocurre algo.