Cách chuyển đổi vĩnh viễn Caps Lock và Esc


116

Làm cách nào tôi có thể chuyển đổi vĩnh viễn các chức năng Caps LockEscphím trong Saucy? Tôi có thể sử dụng lệnh này để thực hiện tạm thời (cho đến khi khởi động lại):

/usr/bin/setxkbmap -option "caps:swapescape"

Tôi đã thử thêm lệnh đó dưới dạng Ứng dụng Khởi động, nhưng dường như nó không làm gì cả.


1
Tôi đặt lệnh đó trong tôi ~/.bashrcđể nó vẫn tồn tại giữa hệ thống khởi động lại. ( ctrl:nocapsđối với tôi, mặc dù, cho tmux)
opyate

2
@opyate Tôi sẽ đặt lệnh đó vào ~ / .profile để nó chỉ chạy một lần sau khi đăng nhập tương tác.
suzanshakya

Câu trả lời:


126

Một cách khác để làm điều này là thông qua dconf-editor. Phương pháp này có thêm một vài bước gnome-tweak-tool, nhưng rất hữu ích nếu bạn không muốn sử dụng các phụ thuộc từ công cụ chỉnh sửa.

Điều này sẽ cho phép bạn sử dụng caps:swapescapecú pháp và tự động thực hiện thay đổi vĩnh viễn.

sudo apt-get install dconf-tools

Sau khi bắt đầu dconf-editor, hãy điều hướng đến org >> gnome >> desktop >> nguồn đầu vào

Thêm các tùy chọn mà bạn cần trong xkb-options. Các chuỗi tùy chọn được bao quanh bởi các dấu ngoặc đơn và được phân tách bằng dấu phẩy. Hãy cẩn thận để không xóa dấu ngoặc ở cuối.

xkb-tùy chọn trong trình soạn thảo

Bạn có thể sử dụng phương pháp này để nhập hầu hết các tùy chọn xkb truyền thống không còn khả dụng trong Cài đặt hệ thống >> Nhập văn bản . Ngoại lệ là các cài đặt để chuyển đổi bố cục bàn phím, hiện không hoạt động do lỗi.

Để biết danh sách các tùy chọn và cú pháp, hãy sử dụng man 7 xkeyboard-configtrong một thiết bị đầu cuối.

Một tùy chọn phổ biến khác có thể được sử dụng là terminate:ctrl_alt_bkspcho phép ctrl+ alt+ backspacekết thúc phiên X.


5
+1 để tham khảo keyboard-config(7), đây là những gì tôi đang tìm kiếm.
ulidtko

61
Bạn cũng có thể thực hiện việc này từ dòng lệnh mà không cần cài đặt trình soạn thảo dconf:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport

4
Đừng chạy lệnh trên bằng cách sử dụng 'sudo' vì cài đặt này dường như theo từng người dùng cụ thể.
Bohr

11
Lưu ý rằng bạn cần sử dụng 'caps:swapescape'nếu bạn cần trao đổi hai khóa (thay vì chỉ gán Esccho Caps Lock).
thameera

1
hoặc bạn có thể làmgsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACyclic 7/12/14

50

Một giải pháp nên hoạt động cho hầu hết các bản phân phối linux:

setxkbmap -option caps:swapescape

Các tùy chọn khác là có thể:

  • caps:none để hủy kích hoạt
  • caps:escape để làm cho nó một lối thoát bổ sung
  • caps:super để làm cho nó một phím siêu (cửa sổ) bổ sung.

Để làm cho công việc này khi khởi động , bạn cần đặt nó vào ~/.profilevì nó sẽ chỉ chạy sau khi đăng nhập tương tác.


1
Điều này hoạt động trong Ubuntu 14.04, Unity.
Chad

2
Làm việc cho tôi trong Ubuntu 16.04 cũng vậy
Jesse Chan

4
kể từ ngày 18.04, việc đưa setxkbmapcác lệnh vào ~/.xsessionrc~/.profilekhông còn xuất hiện để duy trì cài đặt giữa các lần đăng nhập / khởi động lại
Conrad.Dean

2
@ Conrad.Dean Tôi đang sử dụng cái này trong Mint 19, dựa trên 18.04 LTS: Không có vấn đề gì ở đây. Các cài đặt không được cho là vẫn tồn tại nhưng được tải khi đăng nhập.
jojo

~/.profilelà một nơi kém để đặt cái này - tập tin đó được đọc trên mỗi vỏ đăng nhập. Đặt nó trong một tệp được sử dụng khi bắt đầu X11, như ~/.xinitrchoặc ~/.xsession.
đăng

39

Được rồi, tìm thấy một cách để làm điều này bằng cách sử dụng công cụ gnome-chỉnh-công cụ.

Từ một thiết bị đầu cuối, chạy

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool

Bạn có thể tìm thấy một tùy chọn để trao đổi Caps Lock và Esc trong "Nhập -> hành vi phím Caps Lock".


5
Trên Ubuntu 14 bố cục của cửa sổ rất khó khăn, nhưng nó vẫn hoạt động.
uvasal

1
Có, tôi nghĩ gnome-tweak-toolkhông nên sử dụng cho nhiệm vụ này vì có các công cụ mặc định để thực hiện.
Léo Léopold Hertz

Đây là giải pháp tốt nhất.
Jason McVetta

2
Đối với Ubuntu> 18,04 nó có thể được tìm thấy trong Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus

Điều này làm việc cho tôi vào ngày 19.04. Tôi không thể có bất kỳ xmodmaphoặc setxkbmapgiải pháp nào để tiếp tục vào ngày 19.04.
ahmorris

23

Bạn có thể sử dụng xmodmap trong terminal để trao đổi Caps Lockvới Esc:

xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"   #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape"        #this will make Caps Lock to act as Esc

Để có được sự thay đổi này cho mỗi phiên, sau khi bạn đã chạy các lệnh trước đó, hãy tạo một tệp được gọi .xmodmapbằng các keymap mới, sử dụng lệnh sau:

xmodmap -pke > ~/.xmodmap

Sau đó, tạo một tệp được gọi .xinitrctrong thư mục chính của bạn, chứa dòng / lệnh sau:

xmodmap .xmodmap

6
Điều này không hoạt động trong Ubuntu 14.04. Tôi cũng đã thử một tệp .xsessionrc và nó cũng không hoạt động.
Miguel.martin

Làm thế nào để bạn hoàn tác các cài đặt?
hlin117

@ hlin117 Chỉ cần xóa nội dung của ~/.xmodmaptệp (bằng cách chỉ chạy > ~/.xmodmaptrong thiết bị đầu cuối của bạn), sau đó khởi động lại phiên của bạn.
Radu Rădeanu 2/215

2
Trên Ubuntu 14.04, điều này làm cho các bản đồ Escape thành Caps_Lock nhưng Caps_Lock không ánh xạ tới Escape.
dùng1691145

1
Xin chào, tôi đã làm điều này, và nó hoạt động. Tuy nhiên, bên cạnh esc bị ràng buộc với capslock, giờ đây caps-lock bị ràng buộc với cả caps-lock esc . Có thể là môi trường máy tính để bàn bằng cách nào đó vẫn ghi đè lên điều này? Tôi sử dụng KDE
xor

18

Tương tự như câu trả lời của @ Radu , nhưng tương thích với 14.04 (xem thêm câu trả lời này ).

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap

Nếu nó không hoạt động, thay thế:

xmodmap -e "remove Lock = Caps_Lock"

với:

xmodmap -e "clear Lock"

Không hoạt động trong Linux Mint 17.1 (dựa trên Ubuntu) :(
Jan Warchoł

3
đã phải thay đổi "remove Lock = Caps_Lock" thành "Clear Lock" để nó hoạt động
Sofia

13

Chuyển đến biểu tượng bánh răng ở góc trên cùng bên phải của màn hình và:

  • nhấp vào Cài đặt hệ thống
  • bố trí bàn phím
  • tùy chọn ... (góc dưới bên phải)
  • mũ khóa hành vi khóa (thứ 4 trở xuống)
  • Cuộn xuống và chọn "Hoán đổi ESC và Caps Lock".

Làm xong!


Joe : Chào mừng bạn đến hỏi Ubuntu! ;-) Bạn có thể vui lòng xem lại các chỉnh sửa của tôi và cũng xem lại trợ giúp chỉnh sửa để cải thiện khả năng đọc câu trả lời của bạn trong tương lai ... ;-)
Fabby 21/2/2015

2
Đây sẽ là câu trả lời tốt nhất cho Ubuntu và bạc hà
prasad

Điều này có làm gì ngoài các bản cập nhật theo kịch bản được đề cập ở đây không? Thích làm điều này trong một kịch bản.
Ben Creasy

7

Chạy lệnh này một lần trong một thiết bị đầu cuối. dconfnên đã được cài đặt với gnome 3.

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"

Giải pháp này vừa được thử nghiệm trên RedHat Enterprise Linux 7.
Chad Skeeter



2

Tôi đến trễ để trả lời, nhưng cách thông thường để trao đổi EscCtrllà với các dòng sau trong ~/.Xmodmaptệp:

clear Lock
keysym Caps_Lock = Escape
keysym Escape = Caps_Lock
add Lock = Caps_Lock

Điều này sẽ hoạt động với tất cả các môi trường máy tính để bàn (KDE, Gnome) trên hầu hết các bản phát hành phổ biến (họ Ubuntu và Debian, họ Fedora và RH).


Nó không hoạt động trên Ubuntu 16.04, bạn có thể giải thích thêm không?
MaikoID

@MaikoID: Đây là cách khá hợp lý để hoán đổi CapsLock và Esc. Tôi hiểu rằng các phiên bản Ubuntu mới hơn với Unity phá vỡ rất nhiều thứ "unixy canonical", đó dường như là lý do tại sao tất cả các câu trả lời khác ở đây đề cập đến một số phương pháp cụ thể theo phiên bản hoặc cụ thể DE (Unity). Đối với những gì nó có giá trị, điều này không hoạt động trên Kubfox, mà cá nhân tôi sử dụng.
dotancohen

2

Đối với Ubuntu 18.04 và Gnome 3.30, điều này hoạt động với tôi:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"

vẫn làm việc vào ngày 19.04.
Tăng tốc-G

1

Trên GUI KDE (giao diện người dùng đồ họa), Điều này có thể được thực hiện từ Bố trí bàn phím trên Cài đặt hệ thống. Nhấp vào "Thiết bị đầu vào". Ở góc trên cùng bên trái, nhấp vào Bàn phím. Sau đó nhấp vào tab "Nâng cao" và bên dưới "Hành vi phím Caps Lock" chọn "chuyển Escape và Capslock".


Thật tuyệt khi bạn đã cung cấp một câu trả lời cho câu hỏi này. Bạn có thể chỉnh sửa câu hỏi của mình để mở rộng một chút, có thể với kết quả mong muốn sau khi chọn "Hoán đổi ESC và Caps Lock". đã được chọn.
Phil Anh

Xin chào và chào mừng bạn đến hỏi Ubuntu! Ở trạng thái hiện tại, câu trả lời này thực sự chưa hoàn chỉnh và do đó có nguy cơ bị xóa. Vui lòng đọc trang Trợ giúp Trả lời của chúng tôi , sau đó quay lại và chỉnh sửa câu trả lời của bạn để bao gồm chi tiết hơn, cụ thể cách giải quyết câu hỏi của OP. Ngoài ra, vui lòng đọc chuyến tham quan của chúng tôi để nhận huy hiệu và ý tưởng tốt hơn về cách trang web của chúng tôi hoạt động. Hẹn gặp lại bạn!
Kaz Wolfe

nhờ lời khuyên của bạn. tôi muốn chỉnh sửa này là bạn muốn.
farhad goodarzi

FYI, liên kết với tên miền của bạn dường như không hoạt động (ít nhất là đối với tôi), nhưng tên miền địa chỉ IP trước đó hoạt động.
Andrew T.

1

Câu trả lời "Bố trí bàn phím" với câu trả lời "chuyển Escape và Capslock" ở trên không còn hợp lệ trên Ubuntu 16.04 trở đi (có phải trước đây không? Dunno). Câu trả lời: để tránh sự hối hả với quyền, v.v. chỉ cần chuyển sang root trước khi bạn bắt đầu thực hiện tất cả bằng cách sunhập mật khẩu gốc của mình. Sau đó:

    cd /etc/default/
    vim keyboard

Ở đó bạn sẽ thấy dòng:

    XKBOPTIONS=""

Thay đổi nó thành:

    XKBOPTIONS="caps:swapescape"

Thoát vim với lưu:

    :wqa

Khởi động lại.

Và điều đó sẽ là vĩnh viễn , tôi hứa. :)


0

Lưu ý: Điều này không trao đổi, chỉ bản đồ khóa mũ để thoát. (Điều này là đủ tốt cho vim usecase của tôi.)

Đối với Ubuntu 16:04 (với môi trường i3): tệp đã tạo ~ / .xessionrc có nội dung

xmodmap -e "clear lock" #disable caps lock switch
xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape

1
Mặc dù câu trả lời này thực sự có thể giải quyết được 1/2 vấn đề mà OP đã hỏi về việc nó hiển thị trong hàng đợi câu trả lời chất lượng thấp do độ dài (tôi giả sử). Bạn có thể xem xét mở rộng nó với chi tiết hơn. Làm thế nào và tại sao nó hoạt động có lẽ.
Anh Cả Geek
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.