MacBook Proでコマンドキーとコントロールキーを切り替えるにはどうすればよいですか?


59

私はウェブを精査しましたが、Xmodmap /何かを適切に動作させることができません。コマンドキーとコントロールキーの両方を交換したい-本質的には、現在の操作を逆にしたい。

どうすればいいですか?

xmodmap -e "keycode 133 = Control_L"キーコード134(右コマンド)および37(左コントロール)の対応するコマンドを試しました。プラスxmodmap -pke > ~/.Xmodmapxmodmap ~/.Xmodmapでこれらのコマンドも試しました.xinitrc

私の最終目標である私がクリックしたときにHUD /ダッシュを思い付くしたいcontrolcommand機能制御に、すなわち、control-vペーストするcommondショートカットですが、私はクリックしますcommand-v

回答:


64

私はそれを考え出した。以下を入れます~/.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

テストするには、次のコマンドを実行します。

xmodmap ~/.Xmodmap

毎回実行するには、スタートアップアプリケーションに追加します。

これはどのMacBook Proでも動作するはずです。問題は、Xmodmapが左右のコマンドキーにSuper_Lを割り当て、左のコントロールキーにControl_Lを割り当てていたことです。何らかの理由で、デフォルトでは、UbuntuはMacBook Proに標準の105キーキーボード(おそらく完全なAppleキーボードについて考えている)があると考えていますが、それは間違っています。とにかく、キーコードを正しいキーシムに再割り当てし、キーシムをcontrolとに割り当てましたmod4


追加の質問があります:左側のControlキーをAltキーに変更するにはどうしたらいいですか?
719016

右側の勝利ボタンを機能させるにはどうすればよいですか?
アルカニン

これは、キーボードレイアウトの切り替えではうまく機能しないことに注意してください。したがって、複数のレイアウトを使用する場合は、レイアウトを変更するたびにxmodmapを実行する必要があります。/ usr / share / X11 / xkb / symbols / pcの編集はそれに対して影響がないことを示唆する以下の回答。
clorz

VNCViewerで実行されますか。Gnomeデスクトップを使用していますが、アップルキーボード(コマンドキー)をCtrlキーに置き換えたいと思います。
アーメド

32

昨日、MBP13 "にUbuntu 16.04デュアルブートをインストールしました。Ubuntu16.04の場合、次のようにしました。

ステップ1:ターミナルを起動する

ステップ2:Xキーボード拡張の編集

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

ステップ3:次の変更を行います。ファイルが次のようになっていることを確認します。

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

...

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

ステップ4:xkbのキャッシュをクリアする

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

ステップ5(条件付き):ステップ4の後にキーが交換されない場合は、コンピューターを再起動します。この後、私にとってはうまくいきました。

それがお役に立てば幸いです!


これは、受け入れられている答えよりもはるかに優れたソリューションです。
アキシルス氏16年

うまくいかなかった。
チョビー

これが実際の(2017)回答です。
CESCO

これが答えです。変更後に再起動する必要があります。ありがとう
ラセミ

これは私のために働いた!最後に、Mac OSとLinuxの切り替えには、筋肉メモリの再プログラミングはほとんど必要ありません:)
JoLoCo

15

に入る System -> Preferences -> Keyboard

[レイアウト]タブをクリックし、[レイアウトオプション]ボタンをクリックします。

「Alt / Winキーの動作」をクリックします

「コントロールはWinキー(および通常のctrlキー)にマップされます」を選択します。

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


9
注:これはキーを交換するのではなく、コマンドキーに追加のコントロールキーを作成するだけです。
ファビアンタンプ

これはUbuntu 16.04では機能しません。
ユニークな

これは、Ubuntu 18.04
RM de Vos

UbuntuでAppleキーボードを使用しているため、「altはWinと交換されます」を使用しました。
SMアドナン

6

システム設定、キーボードレイアウト、オプション、Win / Altキーの動作に移動し、「メタスイッチCtrl」をチェックしてから、Ctrl位置で「Ctrlスイッチメタ」をチェックしてください。

12.04.1では、これを次のように変更します。

まず、[システム設定]に移動し、[キーボード]、[レイアウト設定](左下)、右下の[オプション]の順にクリックし、[Alt / Winキーの動作]タブを展開して、[コントロールは、キー(および通常のCtrlキー)を獲得するためにマップされます」


12.04で私のために働いた。実際には信じられませんが、うまくいきました。何時間も.xmodmapをいじった後
jyoseph

これは素晴らしい、ありがとう。新しいシステムがあります(2番目の段落で説明します)。CtrlがWinキーにマップされると、CmdはCtrlとして動作します。Ctrlキーの位置->左のCtrlキーを押すと、Metaが逆になります。また、副次的な注意事項として、スタートアップとシャットダウン->サービスマネージャー->スタートアップサービスに移動し、キーボードデーモンをアクティブにする必要がありました(デフォルトではオフになっています)。
0__

14.04には「オプション」リンクがないようです。
ヴァルディールレオンシオ

Ubuntu 15.04に関しては、このオプションは「入力デバイス>キーボード>詳細タブ> Alt / Winキーの動作セクション> CtrlがWinキー(および通常のCtrlキー)にマップされます」で利用可能になりました
Serj Zaharchenko

2
Ubuntu 16.04
Houman

5

AppleキーボードのコミュニティUbuntuヘルプページには、この変更を永続的に行うための次の手順が記載されています:(テスト済み2017-05-27)

/etc/modprobe.d/hid_apple.conf必要に応じて、次のコマンドを実行して、構成行をファイルに追加して作成します 。

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

設定をinitramfsブートファイルにコピーするトリガー。

sudo update-initramfs -u -k all

オプションで、再起動します

sudo reboot

一時的にテストするには、次を実行できます。

echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd

4

18.04向けに更新。提供された回答がどれも私のシステム上で機能しないようだったため。18.04のクリーンインストールを行い、有線のアルミニウムアップルキーボードを使用しようとしました。英語(米国)でのLeft Superのデフォルトの動作は、Gnomeデスクトップダッシュボードにマップされます。Tweakツールは、使いやすいGUIで必要な設定をすべて備えていました!

sudo apt install gnome-tweak-tool

最初にダッシュボードのホットキーを右側に交換し、[ 追加のレイアウトオプション]で[Ctrl位置/ 左勝ちで左勝ちにスワップ ]を使用すると効果的です。


gnome-tweak-toolは素晴らしいです、ありがとう!
デニスゴロマゾフ

これは受け入れられた答えであるはずです。Macの場合、Gnome Tweak Toolsには、Keybord&Mouse> Additional Layout Options> Ctrl position> Swap Left Win with Left Ctrlで必要な設定があることがわかりました。Macキーボードのコマンドキーは「Win」と呼ばれるようです。
6

2019年のGnomeでは、これが最も簡単なソリューションです。おかげで
jymbob

1

xkbでコマンドキーとコントロールキーを段階的に交換する方法の重複

16.04では、これがようやく機能するようになりました。Xmodmapはすべてのアプリで普遍的に機能しません。gnomeの微調整ツールには機能がありません。カスタムaltwin2キースワップ(ここでの主な回答のような)dconfの編集は失敗したため、いくつかの回答をこの完全なシンプルな、そしてエレガントなソリューション:

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

次のように変更します。

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

セーブ。

rm -rf /var/lib/xkb/*

(これが必要かどうかはわかりませんが、それを行いました。)

リブート。


これは良かったのですが、ALTキーを左のコントロールキーとして切り替えるために同じトリックを使用することはできません。ALTキーの動作は異なるようです。どうすればいいか知っていますか?
ピエールティボー

同じトリックが何でも機能します。キーマッピングとmodifier_mapマッピングの両方を切り替える必要があります。また、gnomeの微調整またはgconfにジャンプすることもできますが、これは忘れてしまいます。また、「swrl ctrl and alt」などのトグル設定がいくつかあります。
トム・マーサー

次のことはできません。key <LALT> {[Control_L]}; キー<RALT> {[Control_L]}; Altの扱いは異なります。そこで、Gnome Tweaksを使用しました。欲しいものを正確に手に入れることはできませんでしたが、それほど悪くはありませんでした。
ピエールティボー

私はあなたの問題を理解しているかどうかわかりません。両方のaltをコントロールとしてのみ動作させる場合、上記のファイルとまったく同じように、両方のaltキーがコントロールとして動作し、両方のコントロールキーがaltとして動作します。各キーに必要なものを指定できる場合は、私がお手伝いできますか?このファイルを試しましたか?使用しているマシンとキーボードは何ですか?フランス語のキーボードレイアウトが問題を引き起こす可能性があります。
トム・マーサー

いいえ、ファイルを試しませんでした。ファイルの後半で、2つのaltを2つのctrlに切り替えていることがわかります。私は逃しました。ご指摘いただきありがとうございます。やってみます。
ピエールティボー

0

Kintoが役立つことがあります。数年にわたってこの問題にいくつかの異なる方法で取り組んだ後、私が最近作成したプロジェクトであり、今では共有するのに十分強固であると感じています。

Kintoインストーラーはpythonを使用して初期インストールを行うだけで、その後はsystemdサービス、bash、xprop、setxkbmap、およびxkbcompになります。私の知る限り、この問題に対する最速かつ最もネイティブなソリューションです。

https://github.com/rbreaves/kinto

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

ここにも要点があります。すべての核心にあるものを見たいだけなら、必要なときにキーマップを変更しません。Gistには、Cmdと矢印キーを使用するmacOSスタイルのカーソル/ワード単位の操作をセットアップするカスタムxkbキーマップファイルも含まれていません。

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

要旨

# 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!
#
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.