Wie kann ich Strg + Alt in Ubuntu wie Alt gr verhalten?

11

Ich habe kürzlich auf meinem Laptop zu Ubuntu gewechselt und eine Sache, die mich fast dazu gebracht hätte, wieder zu Windows zu wechseln, ist die Tatsache, dass ich nicht Ctrl+ Altdazu bringen kann, mich wie Alt gr zu verhalten.

Ich habe in mehreren Jahren programmiert und bin es zum Beispiel gewohnt, das Zeichen "$" durch Drücken von ctrl+ alt+ zu setzen 4. Hier in Ubuntu muss ich "Alt gr + 4" verwenden, was mich fast verrückt macht ...

Gibt es eine Lösung dafür?

Elitasson
quelle
1
Haben Sie versucht, mit den Zuordnungen des Composekeys zu spielen? help.ubuntu.com/community/ComposeKey
Tim Kennedy
Sie können dazu den xmodmapBefehl verwenden. Überprüfen Sie diese askubuntu.com/questions/5095/typing-using-key-combinations
Bichoy
Probieren Sie xmodmap aus, das im Paket x11-xserver-utils in Ubuntu verfügbar ist. Sie können jede Tastenkombination neu zuordnen.
Warren
@elitasson Wenn Sie die Antwort auf Ihre eigene Frage herausfinden, schreiben Sie sie bitte als separate Antwort.
Bernhard
@Bernhard Nein, das geht mit xmodmap nicht. Es wird nicht unterstützt, die Strg + Alt-Kombination zu einem eindeutigen Modifikator zu machen. Aber ich denke du kannst mit xkb .
Gilles 'SO - hör auf böse zu sein'

Antworten:

3

Sie können globale Verknüpfungen hinzufügen, um spezielle Zeichen zu schreiben. Ich benutze dies oft für mein deutsches Tastaturlayout mit Ubuntu (unter Windows funktioniert dies sofort).

Ich habe die folgenden Verknüpfungen hinzugefügt:

Shift+ Enter+ 7um den Brief zu schreiben{

Shift+ Enter+ 0um den Brief zu schreiben}

Shift+ Enter+ 8um den Brief zu schreiben[

Shift+ Enter+ 9um den Brief zu schreiben]

Um diese Verknüpfungen hinzuzufügen, benötigen Sie xbindkeysund xvkbd:

sudo apt-get install xbindkeys xvkbd

Bearbeiten Sie dann die Konfigurationsdatei:

vim ~/.xbindkeysrc

Fügen Sie die folgenden Zeilen hinzu (bearbeiten Sie sie nach Ihren Wünschen):

"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

Laden Sie dann xbindkeys neu:

xbindkeys -f ~/.xbindkeysrc

Vielen Dank an whiz für das Teilen ( http://forum.ubuntuusers.de/topic/strg-%2B-alt-alt-gr-wie-in-windows/ ).

Chenym
quelle
1
Können Sie erklären, was die Zeilen m: 0xc + c: XX bewirken?
Elitasson
1
Ich weiß, dass dies eine alte Frage und Antwort ist, aber nur für diejenigen, die mehr Zeichen wie | hinzufügen möchten oder @ oder €: Die Schlüsselcodes, die bei verwendet c:XXwerden, sind meines Wissens nicht universell, so dass Sie kein Glück haben werden, das zu googeln. Sie können einen Schlüsselcode jedoch lokal herausfinden, indem Sie "xev" in Ihrer Befehlszeile installieren und ausführen. Es werden alle Ihre Tastatur- und Mausaktionen gedruckt, sodass Sie ein wenig scrollen müssen, um "Ihren" Charakter zu finden.
Nano Miratus
1
Wenn Sie beispielsweise <(zum Konfigurieren von |) drücken, während Sie xev ausführen, wird Folgendes ausgedruckt: 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: FalseDie Nummer, die Sie benötigen, steht immer in der dritten Zeile nach "keycode". Also in diesem Fall 94.
Nano Miratus
2

Nachdem ich versucht habe und es nicht geschafft habe, es mit einer Kombination aus xbindkeys und xvkbd / xte zum Laufen zu bringen (ich konnte bestimmte Zeichen {, [,],}, \ usw. nie dazu bringen, sich richtig zu verhalten, vielleicht weil ich ein skandinavisches Tastaturlayout verwende). Ich habe endlich eine einfache und praktische Lösung gefunden: Autokey. Hier sind die genauen Anweisungen, damit es funktioniert:

  1. Installieren Sie Autokey über die Ubuntu-Software (ich habe die GTK-Version verwendet, nicht KDE) oder über: "sudo apt-get install autokey-gtk".
  2. Konfigurieren Sie ein Skript pro Taste, z. B. für {Verwenden Sie diesen Code: keyboard.send_keys("<alt_gr>+7")und setzen Sie den Hotkey auf Strg + Alt + 7 (setzen Sie zuerst den Hotkey auf 7 und fügen Sie dann Strg und Alt als Modifikatoren hinzu). Dies funktionierte zumindest für die wichtigsten Schlüssel zum Schreiben von Code: {[]}.
  3. Fügen Sie Autokey zu Startup Applications hinzu (suchen Sie nach "start", um es zu finden) und fügen Sie dann ein Programm mit "autokey" als Befehl hinzu.

Diese Lösung funktioniert für alles, was in der aktuellen X-Sitzung ausgeführt wird (glaube ich), funktioniert jedoch nicht, wenn Sie eine neue Terminalsitzung mit Strg + Alt + (F2-F6) starten.

Jim Björklund
quelle
1

Obwohl dies Ihre Frage immer noch nicht beantwortet, finde ich, dass dies eine einfachere Lösung ist als die anderen Antworten.

Um die R-ALTArbeit so zu gestalten AltGr, können Sie Ihrer Zeile die folgende Zeile hinzufügen ~/.xinitrc:

setxkbmap -option lv3:ralt_switch

Es gibt andere Möglichkeiten, auf die 3. Ebene zu wechseln (die normalerweise mit dem AltGrSchlüssel erreicht wird), und es können neue Wege definiert werden /usr/share/X11/xkb/symbols/level3.

Oleks
quelle
1

Hier ist, was ich getan habe, damit der L-AltSchlüssel genau so funktioniert wie der AltgrSchlüssel. Ich habe es nicht mit dem CtrlAltSchlüssel versucht

Es besteht darin, die Level3-Datei zu ändern

Wechseln Sie im Terminal das Verzeichnis:

cd /usr/share/X11/xkb/symbols

Erstellen Sie eine Kopie der Level3-Datei:

sudo cp level3 level3.old

Bearbeiten Sie Level3 mit einem beliebigen Texteditor:

sudo gedit level3 

Sie sollten einen Block wie diesen finden:

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

Fügen Sie eine Kopie des Blocks mit LALT (links alt) anstelle von RALT (altgr) hinzu:

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

Jetzt sollten 3 weitere Blöcke mit beginnen key <RALT>

Mach dasselbe mit ihnen.

Speichern und Beenden.

Quentin Donner
quelle
0

Ich benutze die Sonderzeichen nur, wenn ich Code schreibe, also habe ich es geschafft, dies zu beheben, ist Sublime Text.

In den Einstellungen -> Tastenkombinationen - Benutzer

Fügen Sie Folgendes ein:

[
{ "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
quelle