Permutation des touches AltGr et Space dans Kali - Firefox n'est pas affecté
Après avoir essayé plusieurs Spaceet AltGrclés idées de remappage, changer les xkb
regards les plus prometteurs. J'ai lu et utilisé ces idées liées à xkb
:
Remapper la touche altgr à AC10 dans XKB
Comment puis-je remapper les touches du clavier?
Dès le premier coup d'œil, mes corrections semblent fonctionner dans l'éditeur de texte et dans le terminal (le Spacesymbole est imprimé sur la AltGrtouche). Cependant, dans Firefox, cela ne fonctionne pas. En regardant de plus près, j'ai remarqué que dans les trois applications, les combinaisons de touches AltGrfonctionnent également (comme si aucun remappage n'avait été effectué), sauf que dans le terminal et dans l'éditeur de texte, la combinaison imprime en plus le caractère d'espace. Par exemple, dans le terminal et dans FireFox, la combinaison AltGr+ Fouvre le menu Fichier et dans le terminal un caractère espace est également imprimé.
Mon Spaceest cassé et je ne l'utilise pas AltGr. Je veux juste échanger complètement leurs fonctionnalités. Qu'est-ce que je rate? (J'utilise Kali Linux.)
Voici ce que j'ai fait:
1.
Opened /usr/share/X11/xkb/symbols/pc
2.
Changement de la ligne commentée avec celle ci-dessous:
// key <SPCE> { [ space ] };
key <SPCE> { [ ISO_Level3_Shift ] };
3.
Ajout de ces lignes:
// Additionally added
key <RALT> { [ 32 ] };
4.
Enregistré le pc
fichier. Vider
5.
le xkb
cache en cours d'exécution rm -rf /var/lib/xkb/*
6.
Redémarré
Informations supplémentaires (après les modifications énumérées ci-dessus).
pc
Fichier actuel complet :
default partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {
key <ESC> { [ Escape ] };
// 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 ] };
key <SPCE> { [ ISO_Level3_Shift ] };
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> { [ Caps_Lock ] };
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 ] };
// Beginning of modifier mappings.
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
modifier_map Mod2 { Num_Lock };
modifier_map Mod4 { Super_L, Super_R };
// Fake keys for virtual<->real modifiers mapping:
key <LVL3> { [ ISO_Level3_Shift ] };
key <MDSW> { [ Mode_switch ] };
modifier_map Mod5 { <LVL3>, <MDSW> };
key <ALT> { [ NoSymbol, Alt_L ] };
include "altwin(meta_alt)"
key <META> { [ NoSymbol, Meta_L ] };
modifier_map Mod1 { <META> };
key <SUPR> { [ NoSymbol, Super_L ] };
modifier_map Mod4 { <SUPR> };
key <HYPR> { [ NoSymbol, Hyper_L ] };
modifier_map Mod4 { <HYPR> };
// End of modifier mappings.
key <OUTP> { [ XF86Display ] };
key <KITG> { [ XF86KbdLightOnOff ] };
key <KIDN> { [ XF86KbdBrightnessDown ] };
key <KIUP> { [ XF86KbdBrightnessUp ] };
// Additionally added
key <RALT> { [ 32 ] };
};
hidden partial alphanumeric_keys
xkb_symbols "editing" {
key <PRSC> {
type= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Sys_Req ]
};
key <SCLK> { [ Scroll_Lock ] };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
};
key <INS> { [ Insert ] };
key <HOME> { [ Home ] };
key <PGUP> { [ Prior ] };
key <DELE> { [ Delete ] };
key <END> { [ End ] };
key <PGDN> { [ Next ] };
key <UP> { [ Up ] };
key <LEFT> { [ Left ] };
key <DOWN> { [ Down ] };
key <RGHT> { [ Right ] };
};
setxkbmap -print
:
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)" };
xkb_geometry { include "pc(pc105)" };
};
xev
( AltGrappuyez et relâchez):
KeyPress event, serial 34, synthetic NO, window 0x3400001,
root 0x6cb, subw 0x0, time 1249191, (168,-8), root:(797,298),
state 0x0, keycode 108 (keysym 0x20, space), same_screen YES,
XLookupString gives 1 bytes: (20) " "
XmbLookupString gives 1 bytes: (20) " "
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x3400001,
root 0x6cb, subw 0x0, time 1249261, (168,-8), root:(797,298),
state 0x8, keycode 108 (keysym 0x20, space), same_screen YES,
XLookupString gives 1 bytes: (20) " "
XFilterEvent returns: False
Comme la Spacetouche de mon clavier est cassée, je ne peux pas la montrer xev
.
Réponses
Je l'ai fait fonctionner même avec xkeymap
, je la laisse ici comme une réponse différente car la méthode est strictement différente de ma solution précédente.
Peut-être que vous avez manqué une occurrence d' AltGrutilisation.
Essayer de mimer votre configuration, j'ai exporté le fichier de configuration en cours avec la commande xkbcomp $DISPLAY current.xkb
et édita en supprimant tous ISO_Level3_Shift
, LVL3
et les Mod5
occurrences.
Justement, ce que j'ai supprimé est:
interpret ISO_Level3_Shift+AnyOf(all) {
virtualModifier= LevelThree;
useModMapMods=level1;
action= SetMods(modifiers=LevelThree,clearLocks);
};
interpret ISO_Level3_Shift+AnyOfOrNone(all) {
action= SetMods(modifiers=LevelThree,clearLocks);
};
key <LVL3> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ]
};
key <RALT> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ]
};
modifier_map Mod5 { <LVL3> };
Ensuite, j'ai inséré:
key <LVL3> {[space]};
key <RALT> {[space]};
Cette configuration modifiée peut être testée en la chargeant avec
xkbcomp new_conf.xkb $DISPLAY
Je n'ai trouvé aucune référence qui prouve que ce que vous proposez ne devrait pas fonctionner sur Firefox, alors qu'il semble que Chromium (et donc Chrome) ne repose pas sur xkeymaps: c'est un choix en développement qui intègre mieux le programme dans ChromeOS. Certains remappages système peuvent donc ne pas être pris en charge.
Un correctif qui a fonctionné pour moi est de remapper les codes clés au niveau du noyau. Pour ce faire, j'ai collecté des scan-codes (l'ID matériel de la clé) et des key-codes (le symbole dans lequel ils sont mappés) pour l'espace et altGr:
# to collect scan-codes
sudo showkey -s
# space press: 0x39
# altGr press: 0xe0 0x38
# to collect key-codes
sudo showkey
# space press: 57
# altGr press: 100
Pour autant que je sache, vous souhaitez remapper l'altGr en espace car votre barre d'espace est cassée, par conséquent:
sudo setkeycodes e038 57
devrait faire l'affaire.
Afin de rendre ce permanent sous Kali Linux, vous devez éditer le fichier xinit par défaut, /etc/xdg/xfce4/xinitrc
en face à ~/.xinitrc
et insérer sudo setkeycodes e038 57
avant l'instruction if qui contient exec xfce4-session
; sur le fichier par défaut de Kali 20.04, cette instruction if est à la ligne 86.
Notez que cela nécessite d' activer sudo sans mot de passe ), mais pour autant que je me souvienne, c'est déjà l'option par défaut dans Kali.