MacBook Pro에서 Command 키와 Control 키를 어떻게 전환합니까?


59

웹을 sc이 뒤져서 Xmodmap / 아무것도 제대로 작동하지 않는 것 같습니다. 본질적으로 현재 수행중인 작업을 반전시켜 내 Command 키와 Control 키를 바꿉니다.

어떻게해야합니까?

xmodmap -e "keycode 133 = Control_L"키 코드 134 (오른쪽 명령) 및 37 (제어 왼쪽)에 해당하는 명령을 시도 했습니다. 나는 이러한 명령을 플러스 xmodmap -pke > ~/.Xmodmap하고 xmodmap ~/.Xmodmapin으로 시도 했다 .xinitrc.

내 최종 목표는 클릭 control하고 command기능 제어를 할 때 HUD / Dash가 나타나기를 control-v원한다는 것입니다.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을 할당한다는 것입니다. 어떤 이유로 든 우분투는 기본적으로 MacBook Pro에 표준 105 키 키보드 (아마도 전체 Apple 키보드를 생각할 것)가 있다고 생각하지만 잘못되었습니다. 어쨌든, 키 코드를 올바른 keysims에 다시 할당 한 다음 keysims를 controland에 할당했습니다 mod4.


추가 질문이 있습니다. 왼쪽 Control 키를 alt 키로 바꾸려면 어떻게하고 왼쪽 컨트롤 키 옆의 alt 키를 왼쪽 Control 키로 바꾸려면 어떻게해야합니까?
719016

오른쪽 승리 버튼을 계속 작동시키는 방법은 무엇입니까?
arcanine 2016 년

이것은 키보드 레이아웃 전환에서 잘 작동하지 않습니다. 따라서 둘 이상의 레이아웃을 사용하는 경우 레이아웃이 변경 될 때마다 xmodmap을 실행해야합니다. 아래 답변은 / usr / share / X11 / xkb / symbols / pc 편집이 그 영향을받지 않음을 나타냅니다.
clorz

VNCViewer에서 실행됩니까? Gnome 데스크탑을 사용하고 있으며 Apple 키보드 (명령 키)를 Ctrl 키로 바꾸고 싶습니다.
아메드

32

방금 MBP13에 Ubuntu 16.04 이중 부팅을 설치했습니다. "Ubuntu 16.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 단계 후에도 키가 바뀌지 않으면 컴퓨터를 다시 시작하십시오. 이 후에 나에게 효과가있었습니다.

도움이 되길 바랍니다. 행운을 빌어 요!


이것은 허용 된 답변보다 훨씬 나은 솔루션입니다.
Mr Axilus

나를 위해 일하지 않았다.
chovy

이것은 실제 (2017) 답변입니다.
CESCO

이것이 답입니다. 변경 후 다시 시작해야합니다. 감사합니다
lxm7

이것은 나를 위해 일했다! 마지막으로 Mac OS와 Linux 간 전환에는 거의 근육 메모리 재 프로그래밍이 필요하지 않습니다. :)
JoLoCo

15

들어가다 System -> Preferences -> Keyboard

"레이아웃"탭을 클릭 한 다음 "레이아웃 옵션"버튼을 클릭하십시오.

"Alt / Win 키 동작"을 클릭하십시오

"컨트롤이 Win 키 (및 일반적인 Ctrl 키)에 매핑됩니다.를 선택합니다.

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


9
참고 사항- 키를 바꾸지 않고 명령 키를 추가 제어 키로 만듭니다.
Fabian Tamp

Ubuntu 16.04에서는 작동하지 않습니다.
고유

이것은 우분투 18.04에 원하는 동작으로 이어질 것
RM 드 보스

우분투에서 Apple 키보드를 사용하면서 "alt가 Win과 교체되었습니다"를 사용했습니다.
SM Adnan

6

시스템 설정으로 이동 한 다음 키보드 레이아웃, 옵션, Win / Alt 키 동작으로 이동 한 다음 "메타 스위치 Ctrl"을 확인한 다음 Ctrl 위치 확인 "Ctrl 스위치 메타"에서 확인하십시오!

12.04.1에서 다음과 같이 변경하십시오.

먼저 "시스템 설정"으로 이동하여 "키보드"를 클릭 한 다음 "레이아웃 설정"(왼쪽 하단)을 클릭 한 다음 오른쪽 하단의 "옵션"을 클릭하고 "Alt / Win 키 동작"탭을 확장 한 다음 " 컨트롤은 승리 키 (및 일반적인 Ctrl 키)로 매핑됩니다. "


12.04에서 나를 위해 일했습니다. 실제로는 믿을 수 없지만 효과가있었습니다. .xmodmap로 몇 시간 엉망진창 후
jyoseph

감사합니다. 나는 새로운 시스템을 가지고 있습니다 (두 번째 단락에서 설명하는 것). Ctrl이 Win 키에 매핑되어 Cmd가 Ctrl로 동작합니다. Ctrl 키 위치-> 왼쪽 Ctrl은 Meta와 반대입니다. 또한 부수적으로 시작 및 종료-> 서비스 관리자-> 시작 서비스로 이동하여 키보드 데몬을 활성화해야했습니다 (기본적으로 해제되어 있음).
0__

14.04에는 "옵션"링크가없는 것 같습니다.
Waldir Leoncio

Ubuntu 15.04의 경우이 옵션은 "입력 장치> 키보드> 고급 탭> Alt / Win 키 동작 섹션> Ctrl이 Win 키 (및 일반적인 Ctrl 키)에 매핑됩니다"
Serj Zaharchenko

2
우분투 16.04에 그 중 하나를 찾을 수 없습니다
Houman

5

사회 우분투 도움말 페이지 애플 키보드를 영구적으로 변경하려면 다음 단계를 제공합니다 (2017년 5월 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 Desktop 대시 보드에 매핑됩니다. 조정 도구는 사용하기 쉬운 GUI에 필요한 모든 설정을 갖추고 있습니다!

sudo apt install gnome-tweak-tool

먼저 대시 보드 핫키를 오른쪽으로 교체 한 다음 "추가 레이아웃 옵션"에서 "Ctrl position / 왼쪽 승리를 왼쪽 Ctrl로 교체 "를 사용하여 효과를 볼 수 있습니다.


gnome-tweak-tool은 훌륭합니다. 감사합니다!
Dennis Golomazov

이것이 정답입니다. Mac의 경우 현재 Gnome Tweak Tools에 Keybord & Mouse> 추가 레이아웃 옵션> Ctrl 위치> 왼쪽 Ctrl을 사용하여 왼쪽 승리 바꾸기에서 원하는 설정이 있음을 발견했습니다. Mac 키보드의 Command 키는 "Win"이라고합니다.
bhaller

2019 년 그놈에서 가장 쉬운 솔루션입니다. 감사합니다
jymbob

1

의 중복 단계로 XKB 단계로 명령 및 제어 키를 교환하는 방법?

16.04에서 마침내 이것이 작동하는 방식이 있습니다. Xmodmap은 모든 앱에서 보편적으로 작동하지 않습니다. gnome tweak 도구에는 기능이 없었으며 사용자 정의 altwin2 키 스왑 (여기의 주요 답변과 같은)을 편집하는 데 실패했습니다. 따라서 몇 가지 답변을이 완전하고 간단한 , 그리고 우아한 해결책 :

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 키를 왼쪽 Control 키로 전환 할 수 없습니다. ALT 키가 다르게 작동하는 것 같습니다. 내가 어떻게 할 수 있는지 알아?
Pierre Thibault

동일한 트릭이 무엇이든 작동합니다. 키 매핑과 modifier_map 매핑을 모두 전환해야합니다. 당신은 또한 gnome tweaks 또는 gconf로 뛰어들 수 있습니다. 나는 어느 것을 잊어 버렸으며 "swap ctrl and alt"와 같은 몇 가지 토글 설정이 있습니다.
Tom Mercer

키 <LALT> {[Control_L]}; 키 <RALT> {[Control_L]}; Alt는 다르게 취급됩니다. 그래서 Gnome Tweaks를 사용했습니다. 나는 내가 정확히 원하는 것을 가질 수 없었지만 그렇게 나쁘지는 않습니다.
Pierre Thibault

나는 당신의 문제를 이해하지 못합니다. 두 alt가 모두 컨트롤로 동작하도록하려면 위와 같은 파일을 사용하면 alt 키가 모두 컨트롤로 작동하고 두 컨트롤 키가 모두 alt로 작동합니다. 각 키를 원하는 것을 지정할 수 있다면 도울 수 있습니까? 이 파일을 사용해 보셨습니까? 어떤 기계를 사용하고 있으며 어떤 키보드를 사용하고 있습니까? 프랑스어 키보드 배열로 인해 문제가 발생할 수 있습니다.
Tom Mercer

아니요, 파일을 시도하지 않았습니다. 나중에 파일에서 두 개의 alt를 두 개의 ctrl으로 전환하고 있음을 알 수 있습니다. 나는 그것을 놓쳤다. 지적 해 주셔서 감사합니다. 나는 그것을 시도 할 것이다.
Pierre Thibault

0

Kinto가 유용 할 수 있습니다. 이 문제를 몇 가지 다른 방식으로 처리 한 후 몇 년 동안 내가 최근에 만든 프로젝트이며 지금은 공유하기에 충분히 견고하다고 생각합니다.

Kinto 설치 프로그램은 단순히 python을 사용하여 초기 설치를 수행 한 다음 시스템 서비스, 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.