Làm cách nào để chuyển phím Command và phím Control trên MacBook Pro?


59

Tôi đã lướt web và dường như tôi không thể có Xmodmap / bất cứ thứ gì để hoạt động bình thường. Tôi muốn hoán đổi CẢ HAI phím lệnh của mình bằng phím Điều khiển - về bản chất, đảo ngược những gì chúng làm hiện tại.

Làm thế nào tôi có thể làm điều đó?

Tôi đã thử xmodmap -e "keycode 133 = Control_L"và các lệnh tương ứng cho mã phím 134 (lệnh phải) và 37 (điều khiển bên trái). Tôi thậm chí đã thử các lệnh này, cộng xmodmap -pke > ~/.Xmodmapxmodmap ~/.Xmodmaptrong .xinitrc.

Mục tiêu cuối cùng của tôi là tôi muốn HUD / Dash xuất hiện khi tôi nhấp controlcommandđể kiểm soát chức năng, nghĩa là, control-vmột phím tắt commond để dán, tôi sẽ nhấpcommand-v

Câu trả lời:


64

Tôi đã hiểu rồi. Đặt những thứ sau vào ~/.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

Để kiểm tra, hãy chạy lệnh:

xmodmap ~/.Xmodmap

Để làm cho nó chạy mọi lúc, hãy thêm nó vào Ứng dụng khởi động.

Điều này sẽ hoạt động trên mọi MacBook Pro; vấn đề là Xmodmap đã gán Super_L cho các phím lệnh trái và phải và Control_L cho phím điều khiển bên trái. Vì một số lý do, theo mặc định, Ubuntu nghĩ rằng MacBook Pro có bàn phím 105 tiêu chuẩn (có thể nghĩ về Bàn phím Apple đầy đủ) nhưng điều đó là sai. Dù sao, tôi đã gán lại mã phím cho các phím bên phải, sau đó gán các phím cho controlmod4.


Tôi có thêm một câu hỏi: làm thế nào tôi có thể thay đổi phím Control bên trái để trở thành phím alt và ngược lại, phím alt bên cạnh phím Control bên trái để trở thành phím Control bên trái?
719016

Làm thế nào để tôi giữ nút thắng bên tay phải làm việc?
arcanine

Lưu ý rằng điều này không hoạt động tốt với chuyển đổi bố trí bàn phím. Vì vậy, nếu bạn sử dụng nhiều hơn một bố cục, bạn sẽ phải chạy xmodmap sau mỗi lần thay đổi bố cục. Trả lời dưới đây cho thấy chỉnh sửa / usr / share / X11 / xkb / biểu tượng / pc là miễn dịch với điều đó.
clorz

Nó có chạy trên VNCViewer không. Tôi đang sử dụng máy tính để bàn Gnome và muốn thay thế bàn phím apple (Phím lệnh) bằng Phím Ctrl.
ahmed

32

Tôi vừa cài đặt khởi động kép Ubuntu 16.04 trên MBP13 "của tôi ngày hôm qua. Đối với Ubuntu 16.04, đây là cách tôi đã làm:

Bước 1: Khởi chạy thiết bị đầu cuối

Bước 2: Chỉnh sửa bàn phím X

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

Bước 3: Thực hiện các thay đổi sau. Đảm bảo tệp của bạn trông như thế này:

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

...

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

Bước 4: Xóa bộ nhớ cache của xkb

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

Bước 5 (có điều kiện): Nếu các phím không bị tráo đổi sau bước 4, hãy khởi động lại máy tính của bạn. Nó làm việc cho tôi sau này.

Hy vọng nó sẽ giúp, chúc may mắn!


Đây là một giải pháp tốt hơn nhiều so với câu trả lời được chấp nhận.
Ông Axilus

Không làm việc cho tôi.
chovy

Đây là câu trả lời thực tế (2017).
Cgill

Đây là câu trả lời. Cần khởi động lại sau khi thay đổi. Cảm ơn
lxm7

Điều này làm việc cho tôi! Cuối cùng, việc chuyển đổi giữa Mac OS và Linux không liên quan đến việc lập trình lại bộ nhớ cơ gần như nhiều như vậy :)
JoLoCo

15

Đi vào System -> Preferences -> Keyboard

Nhấp vào tab "Bố cục" và sau đó nhấp vào nút "Tùy chọn bố cục".

Nhấp vào "Hành vi phím Alt / Win"

Chọn "Điều khiển được ánh xạ tới các phím Win (và phím ctrl thông thường).

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


9
Chỉ cần một lưu ý - điều này không trao đổi các phím, nó chỉ làm cho các phím lệnh thêm các phím điều khiển.
Fabian Tamp

Điều này không hoạt động cho Ubuntu 16.04.
Độc đáo

Điều này dường như dẫn đến hành vi mong muốn trong Ubuntu 18.04
RM de Vos

Tôi đã sử dụng "alt được hoán đổi với Win" khi tôi đang sử dụng bàn phím Apple trên Ubuntu.
SM Ad Nam

6

Chuyển đến cài đặt hệ thống và sau đó đến bố trí bàn phím, sau đó đến các tùy chọn, sau đó đến hành vi phím Win / Alt, sau đó kiểm tra "Meta switch Ctrl" và sau đó trong Ctrl Position kiểm tra "Ctrl chuyển Meta" và bạn đã có nó!

vào ngày 12.04.1, bạn thay đổi điều này bằng cách:

Đầu tiên, đi đến "Cài đặt hệ thống", sau đó nhấp vào "Bàn phím" rồi "Cài đặt bố cục" (ở dưới cùng bên trái), sau đó "Tùy chọn" ở dưới cùng bên phải, sau đó mở rộng tab "Hành vi phím Alt / Win", sau đó chọn " Kiểm soát được ánh xạ để giành được Khóa (và các phím Ctrl thông thường) "


Làm việc cho tôi trong 12.04. Tôi thực sự không thể tin được, nhưng nó đã làm việc. Sau nhiều giờ lộn xộn với .xmodmap
jyoseph

Điều này thật tuyệt, cảm ơn. Tôi có hệ thống mới hơn (những gì bạn mô tả trong đoạn thứ hai). Ctrl được ánh xạ tới các phím Win làm cho Cmd hoạt động như Ctrl. Vị trí phím Ctrl -> Ctrl trái khi Meta thực hiện ngược lại. Cũng như một ghi chú bên lề, tôi phải vào Startup and Shutdown -> Service Manager -> Startup Services và kích hoạt Bàn phím Daemon (cái này bị tắt theo mặc định).
0__

14.04 dường như không có liên kết "Tùy chọn" đó.
Waldir Leoncio

Đối với Ubuntu 15.04, tùy chọn này hiện khả dụng tại "Thiết bị đầu vào> Bàn phím> tab Nâng cao> Phần hành vi phím Alt / Win> Ctrl được ánh xạ để giành được Khóa (và các phím Ctrl thông thường)"
Serj Zaharchenko

2
Không thể tìm thấy bất kỳ thứ gì trên Ubuntu 16.04
Houman

5

Các cộng đồng Ubuntu trang trợ giúp cho bàn phím Apple cung cấp cho các bước sau đây để làm vĩnh viễn thay đổi này: (thử nghiệm 2017/05/27)

Chạy lệnh sau để nối dòng cấu hình vào tệp /etc/modprobe.d/hid_apple.conftạo nó nếu cần:

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

Kích hoạt sao chép cấu hình vào bootfile initramfs.

sudo update-initramfs -u -k all

Tùy chọn, khởi động lại

sudo reboot

Để tạm thời kiểm tra, bạn có thể chạy

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

4

Cập nhật cho 18.04 vì không có câu trả lời nào được cung cấp có vẻ hoạt động trên hệ thống của tôi. Tôi đã cài đặt sạch 18.04 và cố gắng sử dụng bàn phím bằng nhôm có dây. Hành vi mặc định của Left Super trên tiếng Anh Hoa Kỳ được ánh xạ tới Bảng điều khiển máy tính để bàn Gnome. Công cụ tinh chỉnh có tất cả các cài đặt cần thiết trong GUI dễ sử dụng!

sudo apt install gnome-tweak-tool

Đầu tiên tôi đổi phím nóng bảng điều khiển sang bên phải và sau đó trong "Tùy chọn bố cục bổ sung", bạn có thể sử dụng "Vị trí Ctrl / Hoán đổi Win trái bằng Ctrl trái " để có hiệu quả tốt.


gnome-chỉnh-công cụ là tuyệt vời, cảm ơn bạn!
Dennis Golomazov

Đây phải là câu trả lời được chấp nhận. Đối với Mac, hiện tại tôi thấy rằng Gnome Tweak Tools có cài đặt tôi muốn trong Keybord & Mouse> Tùy chọn bố cục bổ sung> Vị trí Ctrl> Hoán đổi Win trái bằng Ctrl trái. Phím Command của bàn phím Mac dường như được gọi là "Win".
bhaller

Năm 2019, trong Gnome, đây là giải pháp dễ nhất. Cảm ơn
jymbob

1

Bản sao Làm thế nào để hoán đổi các phím Lệnh và Điều khiển với xkb từng bước?

Vào ngày 16.04, đây là cách cuối cùng tôi đã làm việc này. Xmodmap không hoạt động phổ biến trong tất cả các ứng dụng, công cụ chỉnh sửa gnome thiếu chức năng, đã chỉnh sửa một hoán đổi khóa altwin2 tùy chỉnh (như câu trả lời chính ở đây), vì vậy tôi đã xé tóc ra cho đến khi tôi kết hợp nhiều câu trả lời vào đây, đơn giản và giải pháp tao nhã:

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

thay đổi nó thành:

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

Lưu lại.

rm -rf /var/lib/xkb/*

(Tôi không biết nếu điều này là bắt buộc, nhưng tôi đã làm nó.)

Khởi động lại.


Điều này thật tuyệt nhưng tôi không thể sử dụng cùng một thủ thuật để chuyển các phím ALT của mình thành một phím Điều khiển bên trái. Có vẻ như các phím ALT hoạt động khác nhau. Bạn có biết làm thế nào tôi có thể làm điều đó?
Pierre Thibault

Thủ thuật tương tự làm việc cho bất cứ điều gì. Bạn phải chuyển đổi cả ánh xạ chính cũng như ánh xạ modifier_map. Bạn cũng có thể nhảy vào các chỉnh sửa gnome hoặc gconf, tôi quên nó và có một số cài đặt chuyển đổi như "hoán đổi ctrl và alt".
Tom Mercer

Chúng tôi không thể thực hiện: key <LALT> {[Control_L]}; khóa <RALT> {[Control_L]}; Alt được đối xử khác nhau. Vì vậy, tôi đã sử dụng Gnome Tweaks. Tôi đã không thể có chính xác những gì tôi muốn nhưng nó không quá tệ.
Pierre Thibault

Tôi không chắc tôi hiểu vấn đề của bạn. Nếu bạn chỉ muốn cả hai alts hoạt động như các điều khiển, thì tệp chính xác như trên sẽ làm cho cả hai phím alt hoạt động như các điều khiển và cả hai phím điều khiển đều hoạt động như các alts. Nếu bạn có thể chỉ định những gì bạn muốn mỗi khóa là, tôi có thể giúp gì không? Bạn đã thử tập tin này? Bạn đang sử dụng máy gì, và bàn phím nào? Bố trí bàn phím tiếng Pháp có thể gây rắc rối cho chúng ta.
Tom Mercer

Không, tôi đã không thử tập tin. Tôi có thể thấy rằng sau này trong tệp bạn đang thực hiện chuyển đổi hai alt thành hai ctrl. Tôi bỏ lỡ điều đó. Cảm ơn bạn đã chỉ nó. Tôi sẽ thử nó.
Pierre Thibault

0

Bạn có thể thấy Kinto là hữu ích. Đó là một dự án tôi mới tạo gần đây, sau một vài năm giải quyết vấn đề này bằng một vài cách khác nhau và bây giờ tôi cảm thấy như nó đủ vững chắc để chia sẻ.

Trình cài đặt Kinto chỉ cần sử dụng python để thực hiện cài đặt ban đầu, sau đó, nó chỉ là một dịch vụ systemd, bash, xprop, setxkbmap và xkbcomp. Theo tôi thấy đó là giải pháp nhanh nhất và nguyên bản nhất cho vấn đề này mà bạn sẽ tìm thấy.

https://github.com/rbreaves/kinto

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

Đây cũng là một Gist, nếu bạn chỉ muốn xem những gì là trung tâm của tất cả, nó sẽ không thay thế sơ đồ bàn phím của bạn khi cần thiết. Gist cũng không bao gồm các tệp sơ đồ bàn phím xkb tùy chỉnh để thiết lập các con trỏ kiểu macOS / các thao tác từ thông minh sử dụng Cmd và các phím mũi tên.

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

nội dung chính

# 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!
#
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.