keyboard - workman - teclado colemak
Colemak modificado para la programaciĆ³n (3)
¿Existe un diseño de teclado Colemak modificado diseñado específicamente para la programación?
Me volví loco en el diseño del teclado de Colemak hace unos días y realmente me gusta para el tipeo normal, pero tengo algunos problemas para los personajes frecuentes de programación como el ; (punto y coma) Un diseño modificado que tenga asignaciones directas para llaves y paréntesis sería bueno.
Obviamente, podría volver a asignar estas claves a través de prueba y error, pero espero que alguien haya hecho algunas pruebas para determinar un diseño óptimo para los caracteres de lenguaje común.
Fondo
Esta soy yo haciendo una presentación de una hora y media sobre la teoría y la historia del diseño del teclado: https://www.youtube.com/watch?v=i1hK1qrdYtU
Me tomo esto muy en serio, y estoy constantemente experimentando. Estoy obsesionado con el trabajo eficiente, y he manifestado resultados muy convincentes, por así decirlo, le garantizo que vale la pena el esfuerzo.
En mi respuesta, voy a ir más allá de la teoría, ya que mis diseños se adaptan principalmente a mis necesidades específicas de programación , y serían inadecuados, por ejemplo, para un Desarrollador de Python a menos que ajustara los caracteres grandes y de Nivel 1.
Usa la teoría y ajústala a tus necesidades.
Terminología:
- Altgr: por lo general, la tecla Alt derecha habilitada para escribir caracteres o acentos extraños.
- Nivel 1: diseño sin teclas modificadoras (
Shift
,Altgr
). - Nivel 2: diseño con
Shift
- Nivel 3: diseño con
Altgr
- Nivel 4: Diseño con
Shift + Altgr
Beta Keypad-Vim Programador de Colemak v3
Este es un diseño orientado a la derecha que estaba usando durante el año pasado:
Tenga en cuenta que este diseño se optimizó para:
-
vi
(Observe cómo las teclas direccionales están en la mano derecha, al igual quevi
) - C Idiomas
- APL (Sí, APL)
- XML (consideración secundaria)
- Bash (
set -o vi
)
Abarca tres teorías radicales principales en diseños de teclado:
- Teclas direccionales
Up Down Left Right Home End PgUp PgDn
debe delegarse al Nivel 3 todo al alcance de su colocación natural de los dedos. - Ambas teclas
Alt
deben convertirse enAltgr
, para que pueda acceder al Nivel 3 con cualquier mano. Los números deben sacarse de la fila superior y organizarse en un teclado. Los símbolos comunes de la calculadora deberían rodearlo.
- También se debe decir que los programadores, por principio, mueven las teclas de número del Nivel 1, porque un buen programador no debería usar Números muy a menudo. Ver: https://en.wikipedia.org/wiki/Magic_number_%28programming%29
Aquí se explica cómo se desarrollaron las teorías durante un año de uso:
Teoría 1 - Teclas direccionales
MEJORA EXPLOSIVA PARA TODO EL FLUJO DE TRABAJO, especialmente la edición de documentos (a diferencia de la programación donde vi
ya proporciona esa funcionalidad)
-
Home
teclasHome
yEnd
son extremadamente útiles cuando se ponen en el alcance adecuado. - Las teclas direccionales son indispensables.
-
PgDn
yPgDn
están infrautilizados, sin embargo, esto podría deberse a la inclinación del teclado escalonado, lo que hace que tengas que estirar paraPrior
. Actualmente está probando esto invertido con la mano izquierda (En la parte inferior de esta respuesta).
Teoría 2 - AltGr
Este era un requisito necesario, en el mismo vano que tenemos dos teclas de mayúsculas, dos teclas altgr están situadas a la izquierda inmediata y la derecha inmediata de la barra espaciadora. Trabajar con solo uno haría que escribir en un proceso doloroso.
Si bien es necesario, es importante mencionar que un dolor muy leve podría desarrollarse con el pulgar presionando con tanta frecuencia. Un pequeño precio a pagar. Si pudiera obtener un diseño reducido de la barra espaciadora, como por ejemplo:
Esto probablemente resolvería el problema.
El otro problema, que sería enorme para la mayoría de los usuarios, carecía de una tecla alt. Sin embargo, en Ubuntu, puede acceder a la mayoría de los comandos de menú usando el HUD, lo que elimina la necesidad del 90% de los atajos de teclado que usarían Alt
. El único problema que ocasionalmente tendría es no tener acceso a terminales TTY. ( Alt + Ctrl + F1 ) Nunca me molesté en reasignarlo, aunque debería.
Teoría 3: teclado numérico
Esta fue una pregunta difícil, principalmente por su orientación hacia la izquierda. En versiones anteriores, experimenté con mover el teclado hacia arriba un nivel para que 0 y 1 estuvieran en la fila de inicio, y con la progresión del número invertida (Observe cómo va 3210
lugar de 0123
).
En última instancia, he llegado a preferirlo, pero el ajuste fue bastante arduo porque:
- La memoria muscular para teclados es más a menudo con la mano derecha.
- Diseños de teclado horizontalmente escalonados (que son fantásticamente estúpidos. Mira mi video de youtube), haz una tabla numérica desafiante, aunque logré el mejor compromiso.
- El orden inverso de los números, que era necesario porque desea 0 y 1 (más común) accesible por su dedo índice.
Al final del día (y muchos meses de adaptación) lo prefiero, aunque siento que es solo un 40% tan bueno como podría ser. Más importante aún, descubrí algunas cosas:
-
+
realidad era más fácil escribir en el Nivel 3 que tenerlo en el Nivel 1 en su esquina o incluso en la fila superior. - El
.
fue increíblemente útil enb
Con todo esto en mente, he decidido experimentar cambiando el teclado numérico a la derecha, y las teclas direccionales a la izquierda. En esta orientación, repasaré las muchas pequeñas mejoras no mencionadas, y sobre mis nuevas teorías principales.
Programadores Beta WADS-Keypad Colemak v1
Optimizado para:
- C Idiomas
();
//
<< ""
/n
/t
m_
- Bash
/
""
<
*
&&
||
/
/(
/)
^C
- Edición de documentos
?
!
Shift_R
Control_R
Teorías de Holdover:
- Paréntesis invertidos : la orientación de
()
se cambia a)(
es muy preferido. Esto es parte de la teoría básica de Colemak, que establece que es más fácil pasar los dedos del dedo meñique al dedo pulgar (Colemak es un diseño que enfatiza el movimiento de los dedos sobre la mano alteración, que Dvorak prioriza). Especialmente útil para este extremadamente común trigrama de C ++();
fue sorprendentemente fácil acostumbrarse, aunque parezca al revés. - Nivel 2 casi intacto: esto es solo para un ajuste práctico. No es una capa terriblemente importante, por lo que se mantiene para la memoria muscular.
- Control entre shift y z: el mejor mod. Copiar, pegar, seleccionar todo y deshacer ya no son dolorosos ni incómodos, y ahora son un simple movimiento de dedos.
- Devuelve en el nivel 3 right pinky: en vim,
o
crea una nueva línea. Tiene sentido práctico colocar unReturn
en esta tecla para editar texto. Resultó ser muy conveniente y rápidamente se convirtió en memoria muscular. - Doble dedo medio: su criminal tiene la comilla doble en el nivel 2. Encontré mucha satisfacción al tenerla arriba en la tecla de la fila superior más fácil,
4
. - ? en el nivel 1: Hombre, amo esto No tener que terminar con el combo de teclas para cambiar de mano es el paraíso para escribir documentos.
Nuevas teorías
- El dedo meñique nunca debería tocar la fila de la barra espaciadora, ni siquiera las teclas de mayúsculas: los beneficios de mover esa tecla de control un nivel me convencieron absolutamente de esto. (Tenga en cuenta que tengo un diseño en francés que convierte el desplazamiento de la izquierda en dos botones). Después de todo, esto es lo que desarrolla el temido emacs pinky. Como tal, se ha colocado una tecla de mayúsculas en la fila de inicio. Mientras estaba tentado de convertir también a Capslock en una tecla de mayúsculas y retroceder a
Alt+D
, voy a seguir con la tecla Mayús derecha deo
. En mi corta experiencia, ya me encanta, y no te pierdas lo que tenía antes. - Nunca debe finalizar un enunciado, un párrafo o una oración en el Nivel 2: ¿ Por mi gran éxito
?
en el Nivel 1, ¡he decidido poner el!
allí también, aunque en el rincón más alejado. Lo moví a la esquina más alejada porque no es tan común, y¬
y~
son ambos representativos de declaraciones falsas / no.!=
~Deconstructors
(P & ¬Q)
. Sin embargo, lo más importante es que deberías poder completar una declaración, un párrafo, una oración, etc. sin tener que hacer una combinación de teclas, ya que esto interrumpe el flujo. - Utilice la memoria muscular WADS: mientras que
vi
tiene instrucciones en su mano derecha, cualquiera que haya jugado un videojuego está acostumbrado a hacer movimientos con la mano derecha, por lo que debe seguir que es perfectamente vendible hacer movimientos con la mano izquierda. Sin embargo, volverá a mapear a Vim para seguir su ejemplo, lo que requerirá algunos ajustes. - El teclado solo debe estar en la mano derecha : como se dijo anteriormente, esto tiene más sentido visual, mantiene 0 y 1 en el dedo índice, y aprovecha la memoria muscular desarrollada mediante el uso de un teclado.
- Escape en el Nivel 3
a
: Veremos cómo se desarrolla esto. Lo probé con la tilde, pero generalmente olvidé que estaba allí. Como usuario de vim, necesito un poco de Escape, pero normalmenteinoremap
esa necesidad mapeandoinoremap
para que las teclas de dirección del Nivel 3 escaparan (y movieran el cursor) cuando se presionan. - El nivel 3
C
yV
debe llenar con un gran bramido no alfanumérico muy común : por el momento, lo tengo con*/
ya que esto es importante para comentar, pero podría llenarse con muchas cosas diferentes. - & en el nivel 1 en su posición de cambio: el personaje más frustrante que haya intentado y presione mientras realiza el cambio. Lo mismo ocurre con el
^
que usaría bastante en expresiones regulares. Si confía en esto, necesita encontrar un lugar mejor para ellos. - Intentaremos Insertar y Eliminar en el Nivel 3
Z
yX
Todo lo demás es básicamente adornos. Nuevamente, los mueve según su uso. Un desarrollador de Python podría querer poner :
en el nivel uno, y situarlo en combo con Return
.
Teorías fallidas
Shift
+Backspace
debería realizar unaDelete
: demasiado confuso y nunca útil.78
/*
bigram : Este no era realmente tan malo, pero no fue terriblemente útil dado que el bigrama va en ambas direcciones. También requirió un estiramiento significativo. Creo que sería mejor tener los personajes en cada mano, así que es más fácil combinarlos en ambos sentidos.Tilde Escape : Just under used. Si vas a estirar esa distancia de todos modos, también podría presionar la tecla de escape, lo que hice con frecuencia.
{
}
en el nivel 1, mano derecha al lado de entrar, no al revés: este fue un bramido horrible y francamente doloroso, muy incómodo de realizar en caso de que alguna vez necesites un{}
. Mejor lugar para personajes únicos no relacionados (es decir, dos personajes que no presionarías en sucesión)
Construyendo su propio diseño personalizado
Creé esta hoja de cálculo que generará el código xkb apropiado para la inserción en un diseño. Sólo:
- Cambie los caracteres en la
Layout Definition Page
- Esto convertirá los caracteres a unicode que se concatenan en el código xkb.
- Vaya a la página de XKB, seleccione las filas e insértelas en su diseño.
- Proceda correctamente agregar un nuevo diseño.
Ahora, crear un diseño adecuado es realmente bastante difícil, así que simplemente reemplazo lo que ya está en la definición de colemak (BACKUP FIRST, si comete un error, no podrá escribir, e incluso podría necesitar un arranque en vivo para arregla el problema.)
y se ve así:
sudo vim /usr/share/X11/xkb/symbols/us
// Colemak symbols for xkb on X.Org Server 7.x
// 2006-01-01 Shai Coleman, http://colemak.com/
// Akiva Abraham WADS-Keypad Programmer''s Colemak
partial alphanumeric_keys
xkb_symbols "colemak" {
include "us"
name[Group1]= "English (Colemak)";
key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
key <LSGT> { [Control_R, Control_R, Control_R, Control_R] };
key <SPCE> { [ space, space, space, nobreakspace ] };
key <TLDE> { [U0021, U007E, U00AC, U00A4] };
key <AE01> { [U005B, U0021, U005B, U20AC] };
key <AE02> { [U005D, U0040, U005D, U00A2] };
key <AE03> { [U002F, U0023, U002F, U00A3] };
key <AE04> { [U0022, U0024, U0022, U00A5] };
key <AE05> { [U003C, U0025, U003C, U003C] };
key <AE06> { [U003E, U005E, U003E, U003E] };
key <AE07> { [U0026, U0026, U0026, U2030] };
key <AE08> { [U002A, U002A, U002A, U00BC] };
key <AE09> { [U0029, U007D, U0029, U00BD] };
key <AE10> { [U0028, U007B, U0028, U00BE] };
key <AE11> { [U005F, U005F, U002D, U2308] };
key <AE12> { [U003D, U002B, U003D, U230A] };
key <AD01> { [U0071, U0051, minus, U00A9] };
key <AD02> { [U0077, U0057, Home, U00AE] };
key <AD03> { [U0066, U0046, Up, U2191] };
key <AD04> { [U0070, U0050, End, U00B6] };
key <AD05> { [U0067, U0047, Prior, U2371] };
key <AD06> { [U006A, U004A, U0023, U2372] };
key <AD07> { [U006C, U004C, U0037, U00B0] };
key <AD08> { [U0075, U0055, U0038, U22A4] };
key <AD09> { [U0079, U0059, U0039, U00A7] };
key <AD10> { [U003B, U003A, U2234, U2234] };
key <AD11> { [U005C, U005C, minus, U0025] };
key <AD12> { [U007C, U00A6, U007C, U2262] };
key <BKSL> { [U0027, U0060, U0060, U2260] };
key <AC01> { [U0061, U0041, Escape, U2122] };
key <AC02> { [U0072, U0052, Left, U2190] };
key <AC03> { [U0073, U0053, Down, U2193] };
key <AC04> { [U0074, U0054, Right, U2192] };
key <AC05> { [U0064, U0044, Next, U2228] };
key <AC06> { [U0068, U0048, U0024, U2227] };
key <AC07> { [U006E, U004E, U0034, U22A3] };
key <AC08> { [U0065, U0045, U0035, U22A5] };
key <AC09> { [U0069, U0049, U0036, U22A2] };
key <AC10> { [U006F, U004F, Return, U2235] };
key <AC11> { [Shift_R, Shift_R, Shift_R, Shift_R] };
key <AB01> { [U007A, U005A, Insert, U2229] };
key <AB02> { [U0078, U0058, KP_Delete, U222A] };
key <AB03> { [U0063, U0043, U002A, U2282] };
key <AB04> { [U0076, U0056, U002F, U2283] };
key <AB05> { [U0062, U0042, U002E, U2022] };
key <AB06> { [U006B, U004B, U0030, U00BA] };
key <AB07> { [U006D, U004D, U0031, U00B9] };
key <AB08> { [U002C, U003C, U0032, U00B2] };
key <AB09> { [U002E, U003E, U0033, U00B3] };
key <AB10> { [U003F, U003F, U002F, U2020] };
include "level3(ralt_switch)"
include "level3(lalt_switch)"
};
¿Has echado un vistazo a los mods de ángulo amplio de dreymar en colemak.com?
podrías pegar el; en el medio del teclado para facilitar el acceso con [y] arriba y debajo, tal vez?
Me doy cuenta de que esta pregunta ya tiene un año, pero esta es mi respuesta en caso de que ayude a alguien más.
Este es un problema que he tratado más a menudo de lo que me gustaría explicar.
Baste decir que no, incluso después de meses de búsqueda, aún no he encontrado un "Colemak adecuado para la programación". Tiene la misma molestia que el teclado QWERTY habitual al usar demasiado el meñique derecho para símbolos especiales y habría sido deseable una reasignación, pero ahora que ya se hizo el desastre, no habrá soluciones inmediatas.
Solo hay dos cosas que puedes hacer:
1) Haz un teclado de diseño personalizado. Hay varias herramientas para hacer esto en Win / Lin / Mac. Esto es genial, ya que puede reorganizar todo lo que mejor le parezca. El gran inconveniente, por otro lado, es que nadie más usa tu diseño de teclado, y si alguna vez te piden que escribas algo en una computadora, estarás en problemas, ya que tu memoria muscular es completamente diferente.
2) Hay un diseño de teclado llamado Programmer Dvorak , que tiene como objetivo resolver su problema. Aquí, el inconveniente es que el programador Dvorak es relativamente desconocido en comparación con el teclado Dvorak estándar, por lo que el mismo problema que el anterior. Sin embargo, solo reorganiza los símbolos especiales, lo que significa que aún puede usar el estándar Dvorak si es necesario (y está mucho más extendido que Colemak). Sin embargo, prepárate para pasar meses en la transición.
Alternativamente, podría intentar optar por una tercera opción y tratar de persuadir a la comunidad de Colemak para que desarrolle una versión amigable de programador de colemak. Pero esto tomará tiempo y apuesto a que encontrará pocos partidarios.