Comment puis-je faire Ctrl + Alt agir comme Alt gr dans Ubuntu?

11

Je suis récemment passé à Ubuntu sur mon ordinateur portable et une chose qui m'a presque fait revenir à Windows est le fait que je ne peux pas faire Ctrl+ Altpour agir comme Alt gr.

J'ai programmé depuis plusieurs années et par exemple j'ai tellement l'habitude de faire le signe "$" en appuyant sur ctrl+ alt+ 4. Ici, dans Ubuntu, je dois utiliser "Alt gr + 4" qui me rend presque fou ...

Y a-t-il une solution à cela?

elitasson
la source
1
avez-vous essayé de jouer avec les mappages de la touche de composition? help.ubuntu.com/community/ComposeKey
Tim Kennedy
Vous pouvez utiliser la xmodmapcommande pour ce faire. Consultez ce askubuntu.com/questions/5095/typing-using-key-combinations
Bichoy
Essayez xmodmap, qui est disponible dans le paquet x11-xserver-utils dans ubuntu. Il vous permet de remapper n'importe quelle combinaison de touches.
Warren
@elitasson Si vous trouvez la réponse à votre propre question, veuillez la déposer comme une réponse distincte.
Bernhard
@Bernhard Non, vous ne pouvez pas faire cela avec xmodmap. Il ne prend pas en charge la combinaison Ctrl + Alt d'un modificateur distinct. Mais je pense que vous pouvez avec xkb .
Gilles 'SO- arrête d'être méchant'

Réponses:

3

Vous pouvez ajouter des raccourcis globaux pour écrire des caractères spéciaux. Je l'utilise souvent pour ma disposition de clavier allemande avec Ubuntu (sous Windows, cela fonctionne hors de la boîte).

J'ai ajouté les raccourcis suivants:

Shift+ Enter+ 7pour écrire la lettre{

Shift+ Enter+ 0pour écrire la lettre}

Shift+ Enter+ 8pour écrire la lettre[

Shift+ Enter+ 9pour écrire la lettre]

Pour ajouter ces raccourcis, vous aurez besoin xbindkeyset xvkbd:

sudo apt-get install xbindkeys xvkbd

Modifiez ensuite le fichier de configuration:

vim ~/.xbindkeysrc

Et ajoutez les lignes suivantes (modifiez-les selon vos préférences):

"xvkbd -xsendevent -text '{'"
    m:0xc + c:16
    Control+Alt + 7

"xvkbd -xsendevent -text '['"
    m:0xc + c:17
    Control+Alt + 8

"xvkbd -xsendevent -text ']'"
    m:0xc + c:18
    Control+Alt + 9

"xvkbd -xsendevent -text '}'"
    m:0xc + c:19
    Control+Alt + 0

"xvkbd -xsendevent -text '\[backslash]'"
    m:0xc + c:20
    Control+Alt + ssharp

"xvkbd -xsendevent -text '\[asciitilde]'"
    m:0xc + c:35
    Control+Alt + plus

Rechargez ensuite xbindkeys:

xbindkeys -f ~/.xbindkeysrc

Merci à Whiz pour le partage ( http://forum.ubuntuusers.de/topic/strg-%2B-alt-alt-gr-wie-in-windows/ ).

cheneym
la source
1
Pourriez-vous expliquer ce que font les lignes m: 0xc + c: XX?
elitasson
1
Je sais que c'est une vieille question et réponse, mais juste pour ceux qui veulent ajouter plus de caractères comme | ou @ ou €: Les codes clés utilisés à c:XX, pour autant que je sache, ne sont pas universels, vous n'aurez donc pas de chance à googler cela. Vous pouvez cependant trouver un code clé localement en installant et en exécutant "xev" dans votre ligne de commande. Il imprimera toutes les actions de votre clavier et de votre souris, vous devrez donc faire défiler un peu pour trouver "votre" personnage.
Nano Miratus
1
Par exemple, appuyer sur <(pour configurer |) lors de l'exécution de xev affiche ceci: KeyRelease event, serial 40, synthetic NO, window 0x4c00001, root 0x7e, subw 0x0, time 35363548, (135,60), root:(903,472), state 0x0, keycode 94 (keysym 0x3c, less), same_screen YES, XLookupString gives 1 bytes: (3c) "<" XFilterEvent returns: FalseLe numéro dont vous avez besoin est toujours sur la troisième ligne, après "keycode". Donc dans ce cas, 94.
Nano Miratus
2

Après avoir essayé et échoué à le faire fonctionner avec une combinaison de xbindkeys et xvkbd / xte (je n'ai jamais pu faire en sorte que certains caractères {, [,],}, \, etc. se comportent correctement peut-être parce que j'utilise une disposition de clavier scandinave), J'ai finalement trouvé une solution simple et pratique: Autokey. Voici les instructions exactes pour le faire fonctionner:

  1. Installez Autokey via le logiciel Ubuntu (j'ai utilisé la version GTK, pas KDE) ou par: "sudo apt-get install autokey-gtk".
  2. Configurez un script par touche, par exemple pour {utilisez ce code: keyboard.send_keys("<alt_gr>+7")et définissez le raccourci clavier sur Ctrl + Alt + 7 (définissez d'abord le raccourci clavier sur 7, puis ajoutez Ctrl et Alt comme modificateurs). Cela a au moins fonctionné pour les clés d'écriture de code les plus importantes: {[]}.
  3. Ajoutez autokey aux applications de démarrage (recherchez «start» pour le trouver), puis ajoutez un programme avec «autokey» comme commande.

Cette solution fonctionnera pour tout ce qui fonctionne dans la session X actuelle (je pense) mais ne fonctionnera pas si vous démarrez une nouvelle session de terminal en utilisant Ctrl + Alt + (F2-F6).

Jim Björklund
la source
1

Bien que cela ne réponde toujours pas à votre question, je trouve que c'est une solution plus facile que les autres réponses.

Pour faire R-ALTfonctionner comme AltGr, vous pouvez ajouter la ligne suivante à votre ~/.xinitrc:

setxkbmap -option lv3:ralt_switch

D'autres façons de passer au 3e niveau (ce qui est généralement obtenu à l'aide de la AltGrclé) peuvent être trouvées, et de nouvelles façons peuvent être définies dans /usr/share/X11/xkb/symbols/level3.

oleks
la source
1

Voici ce que j'ai fait pour que la L-Altclé agisse exactement de la même manière que la Altgrclé. Je n'ai pas essayé avec la CtrlAltclé

Il consiste à modifier le fichier level3

Dans le terminal, changez de répertoire:

cd /usr/share/X11/xkb/symbols

faites une copie du fichier level3:

sudo cp level3 level3.old

éditez level3 avec n'importe quel éditeur de texte:

sudo gedit level3 

Vous devriez trouver un bloc comme celui-ci:

  key <RALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  modifier_map Mod5   { ISO_Level3_Shift };

Ajoutez une copie du bloc avec LALT (alt gauche) au lieu de RALT (altgr):

  key <LALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  modifier_map Mod5   { ISO_Level3_Shift };

Maintenant, il devrait y avoir 3 autres blocs commençant par key <RALT>

Faites de même avec eux.

Sauvegarder et quitter.

Quentin Donner
la source
0

J'utilise uniquement les signes spéciaux lorsque j'écris du code, j'ai donc réussi à résoudre ce problème: Sublime Text.

Dans Préférences -> Raccourcis clavier - Utilisateur

insérer ce qui suit:

[
{ "keys": ["ctrl+alt+2"], "command": "insert", "args": {"characters": "@"} },
{ "keys": ["ctrl+alt+3"], "command": "insert", "args": {"characters": "£"} },
{ "keys": ["ctrl+alt+4"], "command": "insert", "args": {"characters": "$"} },
{ "keys": ["ctrl+alt+5"], "command": "insert", "args": {"characters": "€"} },
{ "keys": ["ctrl+alt+7"], "command": "insert", "args": {"characters": "{"} },
{ "keys": ["ctrl+alt+8"], "command": "insert", "args": {"characters": "["} },
{ "keys": ["ctrl+alt+9"], "command": "insert", "args": {"characters": "]"} },
{ "keys": ["ctrl+alt+0"], "command": "insert", "args": {"characters": "}"} },
{ "keys": ["ctrl+alt++"], "command": "insert", "args": {"characters": "\\"} },
{ "keys": ["ctrl+alt+<"], "command": "insert", "args": {"characters": "|"} }

]

elitasson
la source