Reasignación de atajos de teclado (copiar, pegar, etc.) a la tecla Alt en lugar de Ctrl

Reasignación de atajos de teclado (copiar, pegar, etc.) a la tecla Alt en lugar de Ctrl

Curiosamente, resulta que esto es casi imposible de hacer. Reasignar la tecla Alt para que se comporte como otra tecla Ctrl no es una solución porque se pierden las funcionalidades de la tecla Alt (algunas de las cuales son esenciales, como Alt+Tab).

Entonces, ¿cómo puedo obtener un comportamiento similar a MacOS donde la tecla cmd se usa para atajos de teclado (pero también para cambiar entre ventanas con cmd+Tab)?

Sé que puedo asignar Ctrl+Tabel cambio entre ventanas después de reasignar la tecla Alt como tecla Ctrl. Pero luego pierdo la Ctrl+Tabfuncionalidad real en algunas aplicaciones, que también son críticas, como cambiar de pestaña en Chrome. Básicamente, mis teclas Ctrl y Alt se convertirían en la misma tecla y será imposible tener dos conjuntos diferentes de atajos para estas dos teclas modificadoras.

Una buena solución para mí probablemente sería una forma de detectar Alt+C, Alt+V, Alt+X, etc.en el nivel de administración de ventanas y enviar un mensaje Ctrl+C or Ctrl+V or Ctrl+X etc.a la ventana enfocada. En Windows esto era posible mediante AutoHotKey. En Linux, escuché acerca de una aplicación llamada AutoKey pero, a diferencia de AutoHotKey, debes usar una GUI para configurar los accesos directos. Dado que escribiré casi todas las combinaciones de Alt manualmente, no quiero que una aplicación GUI haga esto. Debería poder configurarlo escribiendo un archivo de texto.

¿Es posible lograr esto con Gnome o Xmonad?

Respuesta1

Puedes usarXKeyCaps.

Este es mi .Xmodmaparchivo, tengo un teclado Apple.

! Swap Alt and Cmd keys.
keycode 37 =    Control_L
keycode 133 =   Alt_L Meta_L
keycode 64 =    Super_L
keycode 108 =   Super_R
keycode 134 =   ISO_Level3_Shift Multi_key
keycode 105 =   Control_R       Multi_key
clear Shift
clear Lock
clear Control
clear Mod1
clear Mod2
clear Mod3
clear Mod4
clear Mod5
add    Shift   = Shift_L Shift_R
add    Lock    = Caps_Lock
add    Control = Control_L Control_R
add    Mod1    = Alt_L 0x007D
add    Mod2    = Num_Lock
add    Mod4    = Super_L Super_R
add    Mod5    = Mode_switch ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift

! Configure '=' key on numpad as '='.
keycode 0x7D =  equal

Respuesta2

Deberías poder utilizarxdotooly additionalKeysdesde elXMonad.Util.EZConfigmódulo para esto. Simplemente instale xdotool y luego en su ~/.xmonad/xmonad.hsarchivo de configuración podrá configurar claves adicionales como esta:

import XMonad.Util.EZConfig

...

main = xmonad $ defaultConfig { ... }
                 `additionalKeys`
                 [ ((mod1Mask, xK_c), spawn "xdotool key alt+c")
                 , ((mod1Mask, xK_v), spawn "xdotool key alt+v")
                 , ((mod1Mask, xK_x), spawn "xdotool key alt+x")
                 ]

información relacionada