web-dev-qa-db-fra.com

Remappage des raccourcis clavier (copier, coller, etc.) sur la touche Alt au lieu de Ctrl

Fait intéressant, il s'avère que c'est presque impossible à faire. Remapper la touche Alt pour qu'elle se comporte comme une autre touche Ctrl n'est pas une solution, car vous perdez les fonctionnalités de la touche Alt (dont certaines sont essentielles, comme Alt+Tab).

Alors, comment puis-je obtenir un comportement similaire à MacOS où la touche cmd est utilisée pour les raccourcis clavier (mais aussi pour passer d'une fenêtre à l'autre avec cmd+Tab)?

Je sais que je peux assigner Ctrl+Tab pour passer d’une fenêtre à l’autre après le remappage de la touche Alt en tant que touche Ctrl. Mais ensuite, je perds la fonctionnalité Ctrl+Tab réelle dans certaines applications, qui sont également critiques, comme le changement d’onglet dans Chrome. Fondamentalement, mes touches Ctrl et Alt deviendraient la même clé et il serait impossible d'avoir deux jeux de raccourcis différents pour ces deux touches de modification.

Une bonne solution pour moi serait probablement un moyen d’attraper Alt+C, Alt+V, Alt+X, etc. au niveau de la gestion de la fenêtre et d’envoyer plutôt un Ctrl+C or Ctrl+V or Ctrl+X etc. à la fenêtre active. Sous Windows, cela était possible via AutoHotKey. Sous Linux, j'ai entendu parler d'une application appelée AutoKey, mais contrairement à AutoHotKey, vous devez utiliser une interface graphique pour définir les raccourcis. Comme je vais écrire presque toutes les combinaisons de Alt manuellement, je ne veux pas qu'une application graphique s'en charge. Je devrais pouvoir le configurer en écrivant un fichier texte.

Est-il possible d'y parvenir avec Gnome ou Xmonad?

5
Eren Tantekin

Vous pouvez utiliser XKeyCaps .

Ceci est mon fichier .Xmodmap, j'ai un clavier 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
2
gianni

Vous devriez pouvoir utiliser xdotool et additionalKeys à partir du module XMonad.Util.EZConfig pour cela. Installez simplement xdotool, puis dans votre fichier de configuration ~/.xmonad/xmonad.hs, vous pouvez configurer des clés supplémentaires comme ceci:

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")
                 ]
2
Raugturi