Estoy buscando una forma de reasignar ciertas teclas en ubuntu.
es decir
Me gustaría cambiar PgUp a Home o PgDown a End .
¿Existe un comando integrado o una herramienta para reasignar las teclas en Ubuntu/GNOME?
Estoy buscando una forma de reasignar ciertas teclas en ubuntu.
es decir
Me gustaría cambiar PgUp a Home o PgDown a End .
¿Existe un comando integrado o una herramienta para reasignar las teclas en Ubuntu/GNOME?
Si se trata de mover una tecla Shift, hay algunos pasos adicionales:
xmodmap -e "keycode 62 = Up" # Shift => Up
xmodmap -e "keycode 111 = Shift_R" # Up => Shift
xmodmap -e "add shift = Shift_R" # Make the new Shift key actually do shifting
xmodmap -e "remove shift = Up" # Prevent the old Shift key from shifting
xset r 62 # Make the new Up key autorepeat
xset -r 111 # Prevent the new Shift key from autorepeating
Así es como intenté cambiar el mapeo del ENTER a la tecla SHIFT clave (y viceversa):
$ uname -a
INFORMES:
Linux box 2.6.32-37-generic #81-Ubuntu SMP Fri Dec 2 20:35:14 UTC 2011 i686 GNU/Linux
$ which xmodmap
INFORMES:
/usr/bin/xmodmap
$ which xev
INFORMES:
/usr/bin/xev
$ xev
(ignora las siguientes cincuenta líneas más o menos)
PRESS THE ENTER KEY (notice the third line):
KeyPress event, serial 33, synthetic NO, window 0x5600001,
root 0x110, subw 0x0, time 263441120, (738,242), root:(771,314),
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
XLookupString gives 1 bytes: (0d)
XmbLookupString gives 1 bytes: (0d)
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x5600001,
root 0x110, subw 0x0, time 263441271, (738,242), root:(771,314),
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
XLookupString gives 1 bytes: (0d)
XFilterEvent returns: False
PRESS THE SHIFT KEY (notice the third line):
KeyPress event, serial 30, synthetic NO, window 0x5600001,
root 0x110, subw 0x0, time 263592202, (464,368), root:(497,440),
state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 33, synthetic NO, window 0x5600001,
root 0x110, subw 0x0, time 263592298, (464,368), root:(497,440),
state 0x1, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Lo importante es la tercera línea de cada pulsación:
FOR:
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
The name "Return" is the name of the behavior of the key pressed.
The number of the key pressed is "36".
state 0x0, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
The name "Shift_R" is the name of the behavior of the key pressed.
The number of the key pressed is "62".
INVERTIR EL MAPEO:
$ xmodmap -e "keycode 62 = Return"
$ xmodmap -e "keycode 36 = Shift_R"
GUARDAR LOS RESULTADOS:
$ xmodmap -pke > ~/.Xmodmap
$ vi ~/.xinitrc
ADD
xmodmap ~/.Xmodmap
$ sudo reboot
El principal problema era que la inversión NO funcionaba. El ENTER fue asignada a la tecla SHIFT_R pero el SHIFT_R no fue asignada a la tecla ENTER clave. Imagínate.
Aviso: Desde 2013, Ubuntu y sus derivados ya no utilizan xmodmap
, pero en su lugar utiliza xkb
. Para más información, consulte esta respuesta . La respuesta que figura a continuación ya no es pertinente para las versiones actuales.
Para remapear ciertas teclas se necesitan dos herramientas. Primero xev (herramienta de línea de comandos) y segundo xmodmap (también herramienta de línea de comandos). Ambas deberían estar disponibles en Ubuntu sin necesidad de instalarlas.
Inicie la ventana del terminal y ejecute xev
. Ahora está activo y espera a que pulses una tecla. A continuación, pulsa la tecla cuyo comportamiento quieres cambiar, es decir PgUp .
xev
mostrará alguna información sobre la tecla pulsada. La tercera línea es importante. Debe ser similar a:
state 0x10, keycode 110 (keysym 0xff55, Prior), same_screen YES,
en este ejemplo Prior
es el nombre del comportamiento al que está asignada la llave en ese momento, el número keycode es el id interno para reconocer la llave. Ahora haz esto con otra llave, es decir PgDown dan este resultado
state 0x10, keycode 115 (keysym 0xff56, Next), same_screen YES,
Aquí también lo interesante para nosotros es keycode 115
y Next
- el nombre del comportamiento.
ahora cuando quieras intercambiar las dos teclas usa xmodmap
.
xmodmap -e "keycode 110 = Next"
Esto cambia la tecla con el código 110 en su teclado a la acción Next
. Es muy sencillo.
Tenga en cuenta que si la clave que está asignando debe tener un significado diferente cuando se utiliza con el Shift (por ejemplo, para las distribuciones de teclado británicas, Shift + 2 da comillas) entonces puede simplemente enumerar el comando secundario después del primero. Por ejemplo, si quiere que la tecla con el código 53 se asigne a la barra invertida normalmente, pero al símbolo de la barra cuando se usa con shift, podría hacer:
xmodmap -e "keycode 53 = backslash bar"
Información adicional: La secuencia de estas asignaciones depende de la disposición del teclado. Normalmente es Key , Shift+Key , mode_switch+Key , mode_switch+Shift+Key , AltGr+Key , AltGr+Shift+Key pero puede ser muy diferente para diseños más especiales, como en el caso de la Neo 2 uno. Para omitir una columna utilice NoSymbol
. Aquí hay un lista completa de todos los keysyms .
Puede ver la secuencia concreta de su diseño encontrándola en uno de los archivos de /usr/share/X11/xkb/symbols/
.
Nota: Estos cambios son sólo para la sesión X activa y se perderán después de reiniciar. Si desea guardar los cambios de forma permanente, debe ejecutar los siguientes comandos después de los anteriores:
xmodmap -pke >~/.Xmodmap
(crea un archivo llamado .Xmodmap
en su directorio principal ( ~
))
Luego hay que crear un archivo llamado .xinitrc
en su directorio de inicio donde puso el comando xmodmap .Xmodmap
en.
Ahora puede modificar .Xmodmap
y ejecutar xmodmap .Xmodmap
desde la consola para ver los cambios inmediatamente. Los cambios en .Xmodmap
persistirá.
fuente: Foruns de Ubuntu
Si la tecla que estás remapeando tiene un comportamiento diferente dependiendo de un estado ( como ocurre con las teclas del teclado numérico que dependen de NumLock) simplemente tienes que hacer xmodmap -pm
para obtener una lista de modificadores y luego hacer:
xmodmap -e "KEYCODE MODIFIER = behaviour behaviour_with_modifier"
Supongamos, por ejemplo, que quiere obtener un punto en lugar de una coma en el teclado numérico (útil para la mayoría de los programadores), pero quiere mantener el comportamiento de "borrado" cuando NumLock está desactivado.
xmodmap -e "keycode 91 mod2 = KP_Delete period"
mod2
porque xmodmap -pm
nos dice que mod2
es Num_Lock
los demás nombres se obtienen pulsando las teclas en xev
.
Para hacer reajustes globales independientemente de X, se puede hacer uso de consola-setup(5) en su lugar.
En mi caso quería reasignar Caps Lock clave para D desde que mi D -La llave está rota :)
Primero utilicé dumpkeys(1) para obtener una plantilla para un mapeo, en el caso del D -key, lo interesante es el mapeo para el keycode 32 (en mi teclado); ¡Observe que hay dos espacios en el patrón grep!
$ sudo dumpkeys | grep "keycode 32" > tempfile
$ cat tempfile
keycode 32 = +d
shift keycode 32 = +D
altgr keycode 32 = +eth
shift altgr keycode 32 = +ETH
control keycode 32 = Control_d
shift control keycode 32 = Control_d
altgr control keycode 32 = Control_d
shift altgr control keycode 32 = Control_d
(121 lines total...)
Para cambiar el mapa que se aplica a Caps Lock (código 58 en mi teclado) en lugar de
sed 's/32/58/' -i tempfile
Ahora dice
keycode 58 = +d
shift keycode 58 = +D
altgr keycode 58 = +eth
(etc...)
Para añadir esta reasignación al mapa por defecto, simplemente hay que añadirla al archivo de inclusión de la reasignación para console-setup
sudo sh -c 'cat tempfile >> /etc/console-setup/remap.inc'
y console-setup necesita ser reconfigurado (saltando las preguntas de baja prioridad con -phigh
)
sudo dpkg-reconfigure console-setup -phigh
Ahora el remapeo debería completarse, y cargarse automáticamente al arrancar.
Acabo de tener una idea de última hora.. Creo que se puede referir a algo totalmente diferente por "reasignación".. pero voy a dejar mi respuesta como es... (No sé cómo reasignar una tecla para que se comporte como otra)
ACTUALIZACIÓN : mi "ocurrencia" ha sido confirmada; ( he respondido a la pregunta equivocada :)... por favor vea la respuesta de la Wiki de la Comunidad de NES (aceptada arriba).
Hay dos formas generales de Remodelar volver a enlazar una llave.
En el caso de los métodos "locales a un programa", a veces hay una forma de cambiar las combinaciones de teclas que ofrece la propia aplicación... ej.
Firefox
tiene un complemento llamado keyconfig ... para más información vea esto Mensaje de MozillZine
La mayoría de los programas de Ubuntu están basados en Gnome y existe una utilidad específica para modificar el keybinding de cualquier elemento del menú de estas apps de Gnome... Se llama Editable Menu Accelerator
... Es una herramienta muy "delicada", pero bastante potente.. Puedes habilitarla ejecutando gconf-editor
(a través de Terminal o Alt+F2)... navegue hasta desktop
-- gnome
-- interface
y seleccione can_change_accels
.... A continuación, puede cambiar los elementos de menú para virtual cualquier cosa que desee (por programa / ventana) ... Te sugiero que lo desactives en cuanto hayas hecho lo que necesitas..
De lo contrario, puede configurar teclas de acceso rápido globales. Yo uso un programa llamado xbindkeys y también hay una opción disponible a través del Menú Principal -- Preferencias, llamada
Keyboard Shortcuts
Si usas xbindkeys, tendrás que añadirlo a tus "Aplicaciones de inicio" (Menú principal -- Preferencias) ... También (como sugirió Stefano Palazzo) he escrito previamente una descripción más detallada de xbindkeys en una respuesta en este Página de askubuntu
EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.