¿Hay alguna forma de invertir el papel de la acción del teclado Shift+[1..9]? Básicamente, me encuentro usando los símbolos en los números con mucha más frecuencia que los números mismos. Tengo el teclado numérico para los números. Y muchos de estos símbolos se usan en codificación y látex. Entonces, si alguien sabe cómo puedo obtener [email protected]#$%^&*() sin el uso de shift, estaría muy agradecido.
Respuesta aceptada:
En realidad, esto es bastante fácil de lograr usando xmodmap. Simplemente haga un nuevo archivo, con lo siguiente:
keycode 10 = exclam 1 exclam 1
keycode 11 = at 2 at 2
keycode 12 = numbersign 3 numbersign 3
keycode 13 = dollar 4 dollar 4
keycode 14 = percent 5 percent 5
keycode 15 = asciicircum 6 asciicircum 6
keycode 16 = ampersand 7 ampersand 7
keycode 17 = asterisk 8 asterisk 8
keycode 18 = parenleft 9 parenleft 9
keycode 19 = parenright 0 parenright 0
Guárdelo en la raíz de su directorio de inicio como .Xmodmap (las mayúsculas son importantes). Ahora, simplemente cierre la sesión y vuelva a iniciarla (es posible que tenga que reiniciar) y sus claves se intercambiarán. Sigue leyendo para saber cómo se me ocurrió esto. La información que usé para resolver esto vino de aquí. Inicie una terminal y escriba el siguiente comando:
xmodmap -pke
Esto arrojará un montón de pares de configuración/valor de código clave, como este:
......
keycode 27 = r R r R
keycode 28 = t T t T
keycode 29 = y Y y Y
keycode 30 = u U u U
keycode 31 = i I i I
keycode 32 = o O o O
keycode 33 = p P p P
keycode 34 = bracketleft braceleft bracketleft braceleft
keycode 35 = bracketright braceright bracketright braceright
keycode 36 = Return NoSymbol Return
keycode 37 = Control_L NoSymbol Control_L
keycode 38 = a A a A
keycode 39 = s S s S
keycode 40 = d D d D
keycode 41 = f F f F
keycode 42 = g G g G
keycode 43 = h H h H
keycode 44 = j J j J
keycode 45 = k K k K
......
El código clave es la tecla en su teclado físico, y el valor a la derecha del signo igual es lo que se envía a su PC. La razón por la que hay cuatro es que el primero es simple, el segundo es con shift presionado, y el tercero (simple) y el siguiente (shift) parecen estar habilitados una vez que hace clic en el botón Scroll Lock. Como puede ver, esto le da mucha flexibilidad para hacer cualquier cosa que pueda imaginar para modificar su teclado.
Ahora, esto solo funcionará cuando haya iniciado sesión en X (como en la GUI), de ahí el nombre. Si enciende una terminal en Gnome, Unity, etc., todavía es bueno usar Xmodmap, pero si desea la misma funcionalidad en la consola (es decir, después de presionar CTRL+ALT+1, entrar en un cuadro, trabajar en un servidor, o una PC sin GUI) necesitará usar loadkeys. Aunque la idea general es la misma, loadkeys ofrece mucha más funcionalidad y granularidad, por lo que es un poco más complicado. Ahora, todos estos comandos DEBEN realizarse desde la consola real, no se pueden realizar con un emulador de terminal, o recibirá un error como este:Couldn't get a file descriptor referring to the console
.
Primero necesitaremos crear nuestro mapa de teclas predeterminado, así:
dumpkeys > ~/my_keymap.map
Sería una buena idea hacer una copia de esto en caso de que realmente lo arruines. Ahora, solo tenemos que editarlo, con nuestros cambios. Cada definición clave se ve así:
keycode 2 = one exclam one one
alt keycode 2 = Meta_one
shift alt keycode 2 = Meta_exclam
altgr alt keycode 2 = Meta_one
shift altgr alt keycode 2 = Meta_one
shiftl keycode 2 = one
shift shiftl keycode 2 = exclam
altgr shiftl keycode 2 = one
shift altgr shiftl keycode 2 = one
alt shiftl keycode 2 = Meta_one
shift alt shiftl keycode 2 = Meta_exclam
altgr alt shiftl keycode 2 = Meta_one
shift altgr alt shiftl keycode 2 = Meta_one
shiftr keycode 2 = one
shift shiftr keycode 2 = exclam
altgr shiftr keycode 2 = one
shift altgr shiftr keycode 2 = one
alt shiftr keycode 2 = Meta_one
shift alt shiftr keycode 2 = Meta_exclam
altgr alt shiftr keycode 2 = Meta_one
shift altgr alt shiftr keycode 2 = Meta_one
shiftl shiftr keycode 2 = one
shift shiftl shiftr keycode 2 = exclam
altgr shiftl shiftr keycode 2 = one
shift altgr shiftl shiftr keycode 2 = one
alt shiftl shiftr keycode 2 = Meta_one
shift alt shiftl shiftr keycode 2 = Meta_exclam
altgr alt shiftl shiftr keycode 2 = Meta_one
shift altgr alt shiftl shiftr keycode 2 = Meta_one
ctrll keycode 2 = one
shift ctrll keycode 2 = exclam
altgr ctrll keycode 2 = one
shift altgr ctrll keycode 2 = one
alt ctrll keycode 2 = Meta_one
shift alt ctrll keycode 2 = Meta_exclam
altgr alt ctrll keycode 2 = Meta_one
shift altgr alt ctrll keycode 2 = Meta_one
shiftl ctrll keycode 2 = one
shift shiftl ctrll keycode 2 = exclam
altgr shiftl ctrll keycode 2 = one
shift altgr shiftl ctrll keycode 2 = one
alt shiftl ctrll keycode 2 = Meta_one
shift alt shiftl ctrll keycode 2 = Meta_exclam
altgr alt shiftl ctrll keycode 2 = Meta_one
shift altgr alt shiftl ctrll keycode 2 = Meta_one
shiftr ctrll keycode 2 = one
shift shiftr ctrll keycode 2 = exclam
altgr shiftr ctrll keycode 2 = one
shift altgr shiftr ctrll keycode 2 = one
alt shiftr ctrll keycode 2 = Meta_one
shift alt shiftr ctrll keycode 2 = Meta_exclam
altgr alt shiftr ctrll keycode 2 = Meta_one
shift altgr alt shiftr ctrll keycode 2 = Meta_one
shiftl shiftr ctrll keycode 2 = one
shift shiftl shiftr ctrll keycode 2 = exclam
altgr shiftl shiftr ctrll keycode 2 = one
shift altgr shiftl shiftr ctrll keycode 2 = one
alt shiftl shiftr ctrll keycode 2 = Meta_one
shift alt shiftl shiftr ctrll keycode 2 = Meta_exclam
altgr alt shiftl shiftr ctrll keycode 2 = Meta_one
shift altgr alt shiftl shiftr ctrll keycode 2 = Meta_one
Como puede ver, ofrece mucha más funcionalidad/granularidad. Para cada tecla, simplemente intercambie los valores shift y regulares, es decir, aquí estaría la tecla intercambiada:
keycode 2 = exclam one exclam exclam
alt keycode 2 = Meta_exclam
shift alt keycode 2 = Meta_one
altgr alt keycode 2 = Meta_exclam
shift altgr alt keycode 2 = Meta_exclam
shiftl keycode 2 = exclam
shift shiftl keycode 2 = one
altgr shiftl keycode 2 = exclam
shift altgr shiftl keycode 2 = exclam
alt shiftl keycode 2 = Meta_exclam
shift alt shiftl keycode 2 = Meta_one
altgr alt shiftl keycode 2 = Meta_exclam
shift altgr alt shiftl keycode 2 = Meta_exclam
shiftr keycode 2 = exclam
shift shiftr keycode 2 = one
altgr shiftr keycode 2 = exclam
shift altgr shiftr keycode 2 = exclam
alt shiftr keycode 2 = Meta_exclam
shift alt shiftr keycode 2 = Meta_one
altgr alt shiftr keycode 2 = Meta_exclam
shift altgr alt shiftr keycode 2 = Meta_exclam
shiftl shiftr keycode 2 = exclam
shift shiftl shiftr keycode 2 = one
altgr shiftl shiftr keycode 2 = exclam
shift altgr shiftl shiftr keycode 2 = exclam
alt shiftl shiftr keycode 2 = Meta_exclam
shift alt shiftl shiftr keycode 2 = Meta_one
altgr alt shiftl shiftr keycode 2 = Meta_exclam
shift altgr alt shiftl shiftr keycode 2 = Meta_exclam
ctrll keycode 2 = exclam
shift ctrll keycode 2 = one
altgr ctrll keycode 2 = exclam
shift altgr ctrll keycode 2 = exclam
alt ctrll keycode 2 = Meta_exclam
shift alt ctrll keycode 2 = Meta_one
altgr alt ctrll keycode 2 = Meta_exclam
shift altgr alt ctrll keycode 2 = Meta_exclam
shiftl ctrll keycode 2 = exclam
shift shiftl ctrll keycode 2 = one
altgr shiftl ctrll keycode 2 = exclam
shift altgr shiftl ctrll keycode 2 = exclam
alt shiftl ctrll keycode 2 = Meta_exclam
shift alt shiftl ctrll keycode 2 = Meta_exclam
altgr alt shiftl ctrll keycode 2 = Meta_exclam
shift altgr alt shiftl ctrll keycode 2 = Meta_exclam
shiftr ctrll keycode 2 = exclam
shift shiftr ctrll keycode 2 = one
altgr shiftr ctrll keycode 2 = exclam
shift altgr shiftr ctrll keycode 2 = exclam
alt shiftr ctrll keycode 2 = Meta_exclam
shift alt shiftr ctrll keycode 2 = Meta_one
altgr alt shiftr ctrll keycode 2 = Meta_exclam
shift altgr alt shiftr ctrll keycode 2 = Meta_exclam
shiftl shiftr ctrll keycode 2 = exclam
shift shiftl shiftr ctrll keycode 2 = one
altgr shiftl shiftr ctrll keycode 2 = exclam
shift altgr shiftl shiftr ctrll keycode 2 = exclam
alt shiftl shiftr ctrll keycode 2 = Meta_exclam
shift alt shiftl shiftr ctrll keycode 2 = Meta_one
altgr alt shiftl shiftr ctrll keycode 2 = Meta_exclam
shift altgr alt shiftl shiftr ctrll keycode 2 = Meta_exclam
El motivo de la granularidad adicional es que tiendes a usar muchos más atajos de teclado cuando usas la consola, debido a su naturaleza.
Relacionado:¿Cómo instalar Tor en Ubuntu?Ahora, para probar sus cambios, puede usar el siguiente comando:
loadkeys ~/my_keymap.map
Experimente, use algunos programas que usa habitualmente y asegúrese de que funcione de la manera que desea. Si te equivocaste, puedes usar las loadkeys
comando para volver al valor predeterminado. Para hacerlo permanente, puede agregar el comando al final de su ~/.bashrc
archivo.