Cómo cambiar permanentemente Caps Lock y Esc

116

¿Cómo puedo cambiar permanentemente las funciones Caps Locky Escclave en Saucy? Puedo usar este comando para hacerlo temporalmente (hasta que se reinicie):

/usr/bin/setxkbmap -option "caps:swapescape"

Intenté agregar ese comando como una Aplicación de inicio, pero no parece hacer nada.

Isaac Dontje Lindell
fuente
1
Puse ese comando en mi ~/.bashrcpara que persista entre reinicios del sistema. ( ctrl:nocapspara mí, sin embargo, para tmux)
opiato
2
@opyate Pondría ese comando en ~ / .profile para que se ejecute solo una vez después de un inicio de sesión interactivo.
suzanshakya

Respuestas:

126

Otra forma de hacerlo es a través de dconf-editor. Este método tiene algunos pasos adicionales gnome-tweak-tool, pero es útil si no desea extraer las dependencias de la herramienta de ajustes.

Esto le permitirá usar la caps:swapescapesintaxis y hacer que el cambio sea permanente de forma automática.

sudo apt-get install dconf-tools

Después de iniciar el dconf-editor, vaya a org >> gnome >> >> escritorio de entrada: fuentes

Agregue las opciones que necesita xkb-options. Las cadenas de opciones están rodeadas de comillas simples y separadas por comas. Tenga cuidado de no eliminar los corchetes en los extremos.

xkb-options en dconf-editor

Puede usar este método para ingresar la mayoría de las opciones tradicionales de xkb que ya no están disponibles en Configuración del sistema >> Entrada de texto . La excepción son las configuraciones para cambiar las distribuciones del teclado, que actualmente no funcionan debido a un error.

Para obtener una lista de las opciones y la sintaxis, úsela man 7 xkeyboard-configen un terminal.

Otra opción común que podría usarse es terminate:ctrl_alt_bksppermitir que ctrl+ alt+ backspacefinalice la sesión X.

chaskes
fuente
55
+1 para referenciar keyboard-config(7), esto era lo que estaba buscando.
ulidtko
61
También puede hacerlo desde la línea de comandos, sin instalar dconf-editor:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport
44
No ejecute el comando anterior usando 'sudo' ya que esta configuración parece específica del usuario.
Bohr
11
Tenga en cuenta que debe usarlo 'caps:swapescape'si necesita intercambiar las dos teclas (en lugar de simplemente asignar Esca Caps Lock).
thameera
1
o puedes hacerlogsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACyclic
50

Una solución que debería funcionar para la mayoría de las distribuciones de Linux:

setxkbmap -option caps:swapescape

Otras opciones son posibles:

  • caps:none para desactivar
  • caps:escape para que sea un escape adicional
  • caps:super para convertirlo en una tecla adicional de super (windows).

Para que esto funcione en el inicio , debe ponerlo ya ~/.profileque esto solo se ejecutará después del inicio de sesión interactivo.

jojo
fuente
1
Esto funciona en Ubuntu 14.04, Unity.
Chad
2
También funcionó para mí en Ubuntu 16.04
Jesse Chan
44
a partir del 18.04, poner setxkbmapcomandos ~/.xsessionrcy ~/.profileya no parece hacer que la configuración persista entre inicios de sesión / reinicios
Conrad.Dean
2
@ Conrad.Dean Estoy usando esto en Mint 19 que se basa en 18.04 LTS: No hay problemas aquí. Se supone que la configuración no persiste, pero se carga al iniciar sesión.
jojo
~/.profilees un mal lugar para poner esto: ese archivo se lee en cada shell de inicio de sesión. Póngalo en un archivo utilizado al iniciar X11, como ~/.xinitrco ~/.xsession.
sarnold
39

Bien, encontré una manera de hacer esto usando gnome-tweak-tool.

Desde una terminal, ejecuta

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool

Puede encontrar una opción para intercambiar Bloq Mayús y Esc en "Mecanografía -> Comportamiento de la tecla Bloq Mayús".

Isaac Dontje Lindell
fuente
55
En Ubuntu 14, el diseño de la ventana es muy complicado, pero aún funciona.
uvasal
1
Sí, creo gnome-tweak-toolque no debería usarse para esta tarea porque hay herramientas predeterminadas para hacerlo.
Léo Léopold Hertz 준영
Esta es, de lejos, la mejor solución.
Jason McVetta
2
Para Ubuntu> 18.04 que se puede encontrar en Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus
Esto funcionó para mí el 19.04. No pude conseguir ninguna de la xmodmapo setxkbmaplas soluciones a persistir en 19.04.
ahmorris
23

Puede usar xmodmap en la terminal para intercambiar Caps Lockcon Esc:

xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"   #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape"        #this will make Caps Lock to act as Esc

Para obtener este cambio para cada sesión, después de ejecutar los comandos anteriores, cree un archivo llamado .xmodmapcon los nuevos mapas de teclas, utilizando el siguiente comando:

xmodmap -pke > ~/.xmodmap

Luego, cree un archivo llamado .xinitrcen su directorio de inicio, que contenga la siguiente línea / comando:

xmodmap .xmodmap
Radu Rădeanu
fuente
66
Esto no funciona en Ubuntu 14.04. También probé un archivo .xsessionrc, y tampoco funcionó.
miguel.martin
¿Cómo deshaces la configuración?
hlin117
@ hlin117 Simplemente borre el contenido del ~/.xmodmaparchivo (ejecutando solo > ~/.xmodmapen su terminal), luego reinicie su sesión.
Radu Rădeanu
2
En Ubuntu 14.04, esto hace que Escape se asigne a Caps_Lock pero Caps_Lock no se asigna a Escape.
user1691145
1
Hola, hice esto y funciona. Sin embargo, además de que esc está vinculado al bloqueo de mayúsculas, el bloqueo de mayúsculas ahora está vinculado tanto al bloqueo de mayúsculas como al escape. ¿Es posible que el entorno de escritorio de alguna manera anule esto? Yo uso KDE
xor
18

Similar a la respuesta de @ Radu , pero compatible con 14.04 (ver también esta respuesta ).

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap

Si no funciona, reemplace:

xmodmap -e "remove Lock = Caps_Lock"

con:

xmodmap -e "clear Lock"
Gilly
fuente
No funciona en Linux Mint 17.1 (que está basado en Ubuntu) :(
Jan Warchoł
3
tuvo que cambiar "eliminar Lock = Caps_Lock" para "borrar Lock" para que funcione
Sofia
13

Vaya al icono de engranajes en la esquina superior derecha de la pantalla y:

  • haga clic en Configuración del sistema
  • Diseño del teclado
  • opciones ... (esquina inferior derecha)
  • comportamiento de la tecla de bloqueo de mayúsculas (cuarto abajo)
  • Desplácese hacia abajo y elija "Cambiar ESC y Bloq Mayús".

¡Hecho!

Joe
fuente
Joe : ¡Bienvenido a Ask Ubuntu! ;-) ¿Podría revisar mis ediciones y también revisar la ayuda de edición para mejorar la legibilidad de sus respuestas en el futuro ... ;-)
Fabby
2
Esta debería ser la mejor respuesta para ubuntu y mint
prasad
¿Esto hace algo además de las actualizaciones escritas mencionadas aquí? Prefiero hacer esto en un script.
Ben Creasy
7

Ejecute este comando una vez en una terminal. dconfya debería estar instalado con gnome 3.

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"
Chad Skeeters
fuente
Esta solución acaba de probar OK en RedHat Enterprise Linux 7.
Chad Skeeters
3

Esto se puede hacer desde la configuración del sistema "Distribución del teclado" . Haga clic en "opciones" para el diseño que está utilizando, luego en "Comportamiento de la tecla Bloq Mayús" elija "cambiar Escape y Bloq Mayús".

Gabe Moothart
fuente
Eso no está disponible en al menos 13.10.
Isaac Dontje Lindell
2

Se me hace tarde para responder, pero la forma habitual para intercambiar Escy Ctrlestá con las siguientes líneas en el ~/.Xmodmaparchivo:

clear Lock
keysym Caps_Lock = Escape
keysym Escape = Caps_Lock
add Lock = Caps_Lock

Esto debería funcionar con todos los entornos de escritorio (KDE, Gnome) en las distribuciones más comunes (familia Ubuntu y Debian, familia Fedora y RH).

dotancohen
fuente
no funcionó en ubuntu 16.04 ¿podría por favor elaborar más?
MaikoID
@MaikoID: Esta es más o menos la forma canónica de intercambiar CapsLock y Esc. Entiendo que las versiones más nuevas de Ubuntu con Unity rompen muchas cosas de "canix unixy", esa es la razón por la cual todas las otras respuestas aquí abordan algún método específico de versión o específico de DE (Unity). Por lo que vale la pena, esto no funciona en Kubuntu, que utilizo personalmente.
dotancohen
2

Para Ubuntu 18.04 y Gnome 3.30, esto funciona para mí:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"
Modesto
fuente
sigue trabajando el 19.04.
Exeleration-G
1

En KDE GUI (interfaz gráfica de usuario), esto se puede hacer desde la distribución del teclado en la configuración del sistema. Haga clic en "Dispositivos de entrada". En la esquina superior izquierda, haz clic en Teclado. Luego haga clic en la pestaña "Avanzado". En "Comportamiento de la tecla Bloq Mayús", elija "cambiar Escape y Bloq Mayús".

farhad goodarzi
fuente
Es genial que hayas proporcionado una respuesta a esta pregunta. ¿Podría editar su pregunta para expandirla un poco, posiblemente con el resultado deseado una vez que seleccione "Cambiar ESC y Bloq Mayús". está seleccionado
Phil UK
Hola y bienvenidos a Ask Ubuntu! En su estado actual, esta respuesta realmente no está completa y, por lo tanto, corre el riesgo de ser eliminada. Lea nuestra página de ayuda Cómo responder y luego regrese y edite su respuesta para incluir más detalles, específicamente cómo esto resuelve la pregunta del OP. Además, lea nuestro recorrido para obtener una insignia y una mejor idea de cómo funciona nuestro sitio. ¡Nos vemos!
Kaz Wolfe
Gracias a tus consejos. Deseo que esta edición sea la que quieras.
farhad goodarzi
Para su información, el enlace con su dominio no parece funcionar (al menos para mí), pero el dominio de la dirección IP anterior funciona.
Andrew T.
1

La "Disposición del teclado" con la respuesta anterior "Cambiar escape y bloqueo de mayúsculas" ya no es válida en Ubuntu 16.04 y en adelante (¿era antes? No sé). La respuesta: para evitar el ajetreo con permisos, etc. simplemente cambie a root antes de comenzar a hacer todo esto sue ingrese su contraseña de root. Entonces:

    cd /etc/default/
    vim keyboard

Allí verás la línea:

    XKBOPTIONS=""

Cámbielo a:

    XKBOPTIONS="caps:swapescape"

Salga de vim con guardar:

    :wqa

Reiniciar.

Y eso será permanente , lo prometo. :)

Alex Fedotov
fuente
0

Nota: Esto no se intercambia, solo asigna el bloqueo de mayúsculas a esc. (Esto fue lo suficientemente bueno para mi caso de uso de vim).

Para ubuntu 16:04 (con entorno i3): archivo creado ~ / .xessionrc con contenido

xmodmap -e "clear lock" #disable caps lock switch
xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape
Manoj Bisht
fuente
1
Si bien esta respuesta puede resolver la mitad del problema que el OP preguntó acerca de que se muestra en la cola de respuesta de baja calidad debido a (supongo) la longitud. Puede considerar expandirlo con más detalle. Cómo y por qué funciona quizás.
Élder Geek