Как постоянно повторно отобразить Caps Lock на esc в X11?

Много эмуляторов терминала сохраняют, по крайней мере, содержание окна в памяти, часто с отставанием нескольких сотен или тысячи строк; что-либо, что видит пользователь, идет туда. По всей вероятности эти данные никогда не сохраняются на диск, но я не был бы полностью удивлен, имели ли некоторые терминалы возможность записать это где-нибудь.

8
29.04.2015, 03:53
2 ответа

EDITAR :Como ha señalado un útil usuario, mi solución inicial no sobrevivirá a una actualización. Su solución en los comentarios debería funcionar. Si prefiere intercambiar Bloq Mayús y Escape, le recomendaría agregar los siguientes comandos desde su.xinitrc o desde la configuración de i3:

.xinitrc:

xmodmap -e "clear lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"

Archivo de configuración de i3 (normalmente ubicado en.config/i3/config o en.i3/config)

# swap caps lock and escape
exec_always --no-startup-id xmodmap -e "clear lock"
exec_always --no-startup-id xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
exec_always --no-startup-id xmodmap -e "keycode 66 = Escape NoSymbol Escape"

Me doy cuenta de que esta pregunta es bastante antigua, pero pensé que podría agregar una respuesta para aquellos de nosotros que todavía estamos tratando de resolver esto.

Después de tener problemas similares con algunos DE que no se cargan ~/.xinitrc, evité xmodmap por completo, fui a /usr/share/X11/xkb/symbolsy modifiqué la asignación de clave => símbolo directamente.

Para hacerlo, edité el archivo de configuración de mi teclado ubicado en /usr/share/X11/xkb/symbols. Para la mayoría de los teclados, este debería ser el archivo pc.

Después de abrir el archivo, cambié manualmente Escape y Bloq Mayús _para sus respectivas teclas, el resultado se muestra a continuación ). Como esto afecta la forma en que X asigna el hardware al símbolo clave, debería funcionar independientemente de si está en GNOME o i3 o algo así.

Un fragmento de mi archivo resultante es el siguiente:

default  partial alphanumeric_keys modifier_keys

xkb_symbols "pc105" {

    key <ESC>  {        [ Caps_Lock             ]       };

    // The extra key on many European keyboards:
    key <LSGT> {        [ less, greater, bar, brokenbar ] };

    // The following keys are common to all layouts.
    key <BKSL> {        [ backslash,    bar     ]       };
    key <SPCE> {        [        space          ]       };

    include "srvr_ctrl(fkey2vt)"
    include "pc(editing)"
    include "keypad(x11)"

    key <BKSP> {        [ BackSpace, BackSpace  ]       };

    key  <TAB> {        [ Tab,  ISO_Left_Tab    ]       };
    key <RTRN> {        [ Return                ]       };

    key <CAPS> {        [ Escape                ]       };
    key <NMLK> {        [ Num_Lock              ]       };

    key <LFSH> {        [ Shift_L               ]       };
    key <LCTL> {        [ Control_L             ]       };
    key <LWIN> {        [ Super_L               ]       };

    key <RTSH> {        [ Shift_R               ]       };
    key <RCTL> {        [ Control_R             ]       };
    key <RWIN> {        [ Super_R               ]       };
    key <MENU> {        [ Menu                  ]       };

Esto funcionó de maravilla para mí.

Al mirar alrededor de los archivos relacionados, encontré menciones repetidas e implementaciones parciales de algún tipo de bandera utilizada para cambiar ciertas teclas, como intercambiar Escape y Bloq Mayús. Supongo que esto es lo que usan Gnome Tweak Tool y setxkbmap; sin embargo, no pude averiguar cómo mantener estos indicadores con el administrador de ventanas i3. La solución anterior debería funcionar bien.

¡Espero que esto solucione el problema!

5
27.01.2020, 20:13

Dos posibilidades:

1).xinitrcno se está ejecutando -lo utilizan xinit, startx,y algunos otros métodos para iniciar X sesiones, pero no es universalmente compatible -, es posible que esté utilizando un administrador de visualización que no lo ejecuta. Agregar algo a.xinitrc como touch /tmp/xinitrc-was-runpuede ayudar a determinar si ese es el caso.

2 )Xorg se restablece automáticamente a la configuración predeterminada cuando no hay clientes conectados -si el.xinitrc finaliza antes de que el administrador de ventanas o cualquier otra cosa comience a ejecutarse, los cambios de xmodmap o setxkbmap se perderán.

Si ya hay una opción de XKB definida que desea usar, en lugar de ejecutar programas para cambiar la configuración cada vez que se inicia Xorg, simplemente puede indicarle a Xorg que se inicie con la configuración correcta. Por ejemplo, para habilitar las teclas Ctrl -Alt -Retroceso para matar mi Xserver, instalé un archivo llamado /etc/X11/xorg.conf.d/90-zap.confque contiene:

# This configuration snippet enables the Ctrl-Alt-Backspace server kill key
# 
# To use it, link or copy into /etc/X11/xorg.conf.d/
#
# Note that only the last XkbOptions setting seen for a device will be used,
# so to use multiple options, copy this file and add options into the Option
# string, such as "terminate:ctrl_alt_bksp,ctrl:swapcaps"

Section "InputClass"
    Identifier "keyboard zap by default"
    MatchIsKeyboard "on"

    Option "XKbOptions" "terminate:ctrl_alt_bksp"
EndSection

Puede leer más sobre esto en los documentos de X.Org enhttps://www.x.org/releases/X11R7.7/doc/xorg-docs/input/XKB-Config.html.

2
27.01.2020, 20:13

Теги

Похожие вопросы