Wie wechsle ich die Befehlstaste und die Steuertaste auf einem MacBook Pro?

59

Ich habe das Web durchsucht und es scheint, als würde Xmodmap / irgendetwas nicht richtig funktionieren. Ich möchte BEIDE Befehlstasten mit meiner Steuertaste tauschen - im Wesentlichen umkehren, was sie gerade tun.

Wie würde ich das machen?

Ich habe versucht xmodmap -e "keycode 133 = Control_L"und entsprechende Befehle für Schlüsselcodes 134 (rechter Befehl) und 37 (Steuerung links). Ich habe sogar diese Befehle ausprobiert, plus xmodmap -pke > ~/.Xmodmapund xmodmap ~/.Xmodmapin .xinitrc.

Mein Endziel ist, dass HUD / Dash angezeigt wird, wenn ich auf klicke, controlund commandzur Funktionskontrolle, dh es control-vist eine übliche Verknüpfung zum Einfügen, auf die ich klicken würdecommand-v

Kalaracey
quelle

Antworten:

64

Ich habe es herausgefunden. Geben Sie Folgendes ein ~/.Xmodmap:

clear control
clear mod4

keycode 105 =
keycode 206 =

keycode 133 = Control_L NoSymbol Control_L
keycode 134 = Control_R NoSymbol Control_R
keycode 37 = Super_L NoSymbol Super_L

add control = Control_L
add control = Control_R
add mod4 = Super_L

Führen Sie zum Testen den folgenden Befehl aus:

xmodmap ~/.Xmodmap

Fügen Sie es zu Startup Applications hinzu, damit es jedes Mal ausgeführt wird.

Dies sollte auf jedem MacBook Pro funktionieren. Das Problem war, dass Xmodmap den linken und rechten Befehlstasten Super_L und der linken Steuertaste Control_L zuordnete. Aus irgendeinem Grund glaubt Ubuntu standardmäßig, dass das MacBook Pro eine Standardtastatur mit 105 Tasten hat (wahrscheinlich über die vollständige Apple-Tastatur nachgedacht), aber das ist falsch. Wie auch immer, ich habe die Keycodes den richtigen Keysims zugewiesen und die Keysims dann controlund mod4.

Kalaracey
quelle
Ich habe eine zusätzliche Frage: Wie kann ich die linke Steuertaste in die Alt-Taste und umgekehrt die Alt-Taste neben der linken Steuertaste in die linke Steuertaste ändern?
719016
Wie halte ich den Win-Button auf der rechten Seite am Laufen?
Arcanine
Beachten Sie, dass dies beim Umschalten des Tastaturlayouts nicht gut funktioniert. Wenn Sie also mehr als ein Layout verwenden, müssen Sie xmodmap nach jeder Layoutänderung ausführen. Die folgende Antwort deutet darauf hin, dass die Bearbeitung von / usr / share / X11 / xkb / symbols / pc dagegen immun ist.
Clorz
Läuft es in VNCViewer. Ich benutze Gnome Desktop und möchte meine Apple-Tastatur (Befehlstaste) durch die Strg-Taste ersetzen.
Ahmed
32

Ich habe gestern Ubuntu 16.04 Dual Boot auf meinem MBP13 "installiert. Für Ubuntu 16.04 habe ich es folgendermaßen gemacht:

Schritt 1: Terminal starten

Schritt 2: X-Tastaturerweiterung bearbeiten

sudo nano /usr/share/X11/xkb/symbols/pc

Schritt 3: Nehmen Sie die folgenden Änderungen vor. Stellen Sie sicher, dass Ihre Datei folgendermaßen aussieht:

key <LCTL> {    [ Super_L       ]   };
key <LWIN> {    [ Control_L     ]   };

...

key <RCTL> {    [ Super_R       ]   };
key <RWIN> {    [ Control_R     ]   };

Schritt 4: Löschen Sie den Cache von xkb

sudo rm -rf /var/lib/xkb/*

Schritt 5 (bedingt): Wenn die Schlüssel nach Schritt 4 nicht ausgetauscht wurden, starten Sie Ihren Computer neu. Danach hat es bei mir geklappt.

Hoffe es hilft, viel Glück!

klodal
quelle
Dies ist eine viel bessere Lösung als die akzeptierte Antwort.
Herr Axilus
Hat bei mir nicht funktioniert.
Chovy
Dies ist die aktuelle (2017) Antwort.
CESCO
Das ist die Antwort. Muss nach Änderung neu gestartet werden. Danke
lxm7
Das hat bei mir funktioniert! Das Umschalten zwischen Mac OS und Linux erfordert nicht annähernd so viel Umprogrammierung des Muskelspeichers :)
JoLoCo
15

Gehen in System -> Preferences -> Keyboard

Klicken Sie auf die Registerkarte "Layouts" und dann auf die Schaltfläche "Layout Options".

Klicke auf "Alt / Win key behaviour"

Wählen Sie "Steuerung ist Win-Tasten zugeordnet (und die übliche Strg-Taste).

von http://ubuntuforums.org/showthread.php?t=1293081

alex reska
quelle
9
Nur eine Anmerkung - dies vertauscht nicht die Tasten, sondern macht die Befehlstasten zu zusätzlichen Steuertasten.
Fabian Tamp
Dies funktioniert nicht für Ubuntu 16.04.
Einzigartig
Dies scheint zu dem gewünschten Verhalten in Ubuntu 18.04
RM de Vos
Ich habe "alt is swapped with Win" verwendet, da ich die Apple-Tastatur unter Ubuntu verwende.
SM Adnan
6

Gehen Sie zu den Systemeinstellungen und dann zum Tastaturlayout, dann zu den Optionen, dann zum Verhalten der Win / Alt-Taste, und überprüfen Sie dann die "Meta-Schalter Strg" und dann in der Strg-Position "Strg-Schalter Meta" und dort haben Sie es!

am 12.04.1 änderst du das durch:

Gehen Sie zuerst zu "Systemeinstellungen", klicken Sie dann auf "Tastatur", dann auf "Layouteinstellungen" (unten links), dann auf "Optionen" unten rechts, erweitern Sie dann die Registerkarte "Verhalten der Alt / Win-Taste" und wählen Sie dann " Die Steuerung wird zugeordnet, um Schlüssel (und die üblichen Strg-Tasten) zu gewinnen.

TenorB
quelle
Arbeitete für mich im 12.04. Ich kann es nicht glauben, aber es hat funktioniert. Nach stundenlangem Durcheinander mit .xmodmap
jyoseph
Das ist großartig, danke. Ich habe das neuere System (was Sie im zweiten Absatz beschreiben). Strg ist Win-Tasten zugeordnet, damit Cmd sich wie Strg verhält. Strg-Taste -> Linke Strg-Taste, während Meta das Gegenteil tut. Ebenfalls als Randnotiz musste ich zu Startup and Shutdown -> Service Manager -> Startup Services gehen und den Keyboard Daemon aktivieren (dies war standardmäßig deaktiviert).
20.
14.04 scheint diesen "Options" -Link nicht zu haben.
Waldir Leoncio
Wie bei Ubuntu 15.04 ist diese Option jetzt unter "Eingabegeräte> Tastatur> Registerkarte Erweitert> Alt / Win-Tastenverhalten"
Serj Zaharchenko,
2
Kann nichts davon auf Ubuntu 16.04
Houman
5

Die Ubuntu- Hilfeseite der Community für Apple-Tastaturen enthält die folgenden Schritte, um diese Änderung dauerhaft vorzunehmen: (getestet am 27.05.2017)

Führen Sie den folgenden Befehl aus, um die Konfigurationszeile /etc/modprobe.d/hid_apple.confbei Bedarf an die Datei anzuhängen, in der sie erstellt wurde:

echo options hid_apple swap_opt_cmd=1 | sudo tee -a /etc/modprobe.d/hid_apple.conf

Lösen Sie das Kopieren der Konfiguration in die initramfs-Bootdatei aus.

sudo update-initramfs -u -k all

Optional können Sie einen Neustart durchführen

sudo reboot

Um es vorübergehend zu testen, können Sie ausführen

echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd
RasmusWL
quelle
4

Aktualisiert für 18.04, da keine der angegebenen Antworten auf meinem System zu funktionieren schien. Ich habe eine Neuinstallation von 18.04 durchgeführt und versucht, eine kabelgebundene Aluminium-Apfeltastatur zu verwenden. Das Standardverhalten von Left Super auf Englisch US ist Gnome Desktop Dashboard zugeordnet. Das Tweak Tool hatte alle notwendigen Einstellungen in einer einfach zu bedienenden GUI!

sudo apt install gnome-tweak-tool

Zuerst habe ich den Dashboard-Hotkey nach rechts getauscht und dann können Sie unter "Zusätzliche Layoutoptionen" "Strg-Position / Linksgewinn mit Linksstrg tauschen " verwenden, um einen guten Effekt zu erzielen.

Dan Rozelle
quelle
Gnome-Tweak-Tool ist erstaunlich, danke!
Dennis Golomazov
Dies sollte die akzeptierte Antwort sein. Für den Mac stelle ich derzeit fest, dass Gnome Tweak Tools die gewünschte Einstellung unter Tastatur & Maus> Zusätzliche Layoutoptionen> Strg-Position> Linken Gewinn mit linker Strg tauschen hat. Die Befehlstaste der Mac-Tastatur wird anscheinend als "Win" bezeichnet.
bhaller
Im Jahr 2019 ist dies in Gnome die einfachste Lösung. Danke
jymbob
1

Duplikat von Wie tausche ich Schritt für Schritt die Befehls- und Steuertasten mit xkb?

Im 16.04 habe ich das endlich zum Laufen gebracht. Xmodmap funktioniert nicht überall in allen Apps, das Gnome-Tweak-Tool hatte keine Funktion, da die Bearbeitung eines benutzerdefinierten Altwin2-Schlüsselwechsels (wie die Hauptantwort hier) fehlgeschlagen ist, habe ich mir die Haare ausgerissen, bis ich mehrere Antworten zu diesem vollständigen, einfachen Ergebnis kombiniert habe und elegante Lösung:

gksudo gedit /usr/share/X11/xkb/symbols/pc

ändere es in:

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      ]   };

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> {    [ Alt_L     ]   };
key <LWIN> {    [ Super_L       ]   };

key <RTSH> {    [ Shift_R       ]   };
key <RCTL> {    [ Alt_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, Control_L, Control_R    ]   };
//include "altwin(meta_alt)"
key <LALT> {    [ Control_L     ]   };
key <RALT> {    [ Control_R     ]   };
modifier_map Mod1   { Alt_L, Alt_R, Meta_L, Meta_R };

key <META> {    [ NoSymbol, Meta_L, Meta_R  ]   };
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 ] };
};

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        ]   };
};

Sparen.

rm -rf /var/lib/xkb/*

(Ich weiß nicht, ob dies erforderlich ist, aber ich habe es getan.)

Starten Sie neu.

Tom Mercer
quelle
Das war schön, aber ich kann nicht den gleichen Trick verwenden, um meine ALT-Tasten als linke Strg-Taste zu schalten. Offenbar funktionieren ALT-Tasten anders. Weißt du wie ich das machen kann?
Pierre Thibault
Der gleiche Trick funktioniert für alles. Sie müssen sowohl die Tastenzuordnungen als auch die modifier_map-Zuordnungen umschalten. Sie können auch in Gnome Tweaks oder Gconf springen, ich vergesse welche, und es gibt verschiedene Einstellungen zum Umschalten wie "Swap Ctrl und Alt".
Tom Mercer
Wir können nicht machen: key <LALT> {[Control_L]}; Taste <RALT> {[Control_L]}; Alt wird anders behandelt. Also habe ich Gnome Tweaks benutzt. Ich konnte nicht genau das haben, was ich wollte, aber es ist nicht so schlimm.
Pierre Thibault
Ich bin mir nicht sicher, ob ich dein Problem verstehe. Wenn Sie nur möchten, dass sich beide Alts als Steuerelemente verhalten, bewirkt die Datei genau wie oben, dass sich beide ALT-Tasten als Steuerelemente und beide Steuertasten als Alts verhalten. Wenn Sie angeben können, wie jeder Schlüssel lauten soll, kann ich Ihnen vielleicht helfen? Hast du diese Datei ausprobiert? Welchen Computer verwenden Sie und welche Tastatur? Das französische Tastaturlayout könnte uns Probleme bereiten.
Tom Mercer
Nein, ich habe die Datei nicht ausprobiert. Ich kann später in der Datei sehen, dass Sie zwischen zwei Alt-Tasten und zwei Strg-Tasten umschalten. Das habe ich vermisst. Danke, dass Sie darauf hingewiesen haben. Ich werde es versuchen.
Pierre Thibault
0

Möglicherweise ist Kinto nützlich. Es ist ein Projekt, das ich vor kurzem ins Leben gerufen habe, nachdem ich dieses Problem einige Jahre lang auf verschiedene Weise angegangen bin und ich habe gerade das Gefühl, es sei solide genug, um es zu teilen.

Das Kinto-Installationsprogramm verwendet einfach Python, um die Erstinstallation durchzuführen. Danach handelt es sich nur noch um einen systemd-Dienst, bash, xprop, setxkbmap und xkbcomp. Für mich ist es die schnellste und ursprünglichste Lösung für dieses Problem, die Sie finden werden.

https://github.com/rbreaves/kinto

https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0

Hier ist auch eine Zusammenfassung: Wenn Sie nur sehen möchten, was das Herzstück des Ganzen ist, wird Ihre Tastaturbelegung bei Bedarf nicht geändert. Das Gist enthält auch keine benutzerdefinierten xkb-Keymap-Dateien, mit denen Cursor im MacOS-Stil oder wortweise Manipulationen mit Cmd und den Pfeiltasten eingerichtet werden.

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

Hauptinhalt

# permanent apple keyboard keyswap
echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf
update-initramfs -u -k all

# Temporary & instant apple keyboard keyswap
echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd

# Windows and Mac keyboards - GUI (Physical Alt is Ctrl, Physical Super is Alt, Physical Ctrl is Super)
setxkbmap -option;setxkbmap -option altwin:ctrl_alt_win

# Windows and Mac keyboards - Terminal Apps (Physical Alt is Super, Physical Super is Alt, Physical Ctrl is Ctrl)
setxkbmap -option;setxkbmap -option altwin:swap_alt_win

#
# If you want a systemd service and bash script to help toggle between
# GUI and Terminal applications then look at project Kinto.
# https://github.com/rbreaves/kinto
#
# Note: The above may not work for Chromebooks running Linux, please look
# at project Kinto for that.
#
# If anyone would like to contribute to the project then please do!
#
R Ben R
quelle