Cách ánh xạ phím Caps Lock thành phím Escape trong Arch Linux


23

Hệ điều hành của tôi là Arch Linux amd64, Gnome ENV.

Tôi muốn ánh xạ Caps Lockkhóa tới Esc(thoát) trong Arch Linux. Tôi chạy lệnh:

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

Nó hoạt động tốt, nhưng một lát sau, phím Caps Lock hoạt động trở lại. Và tôi phải chạy lại lệnh.

Tôi khá chắc chắn rằng giải pháp này hoạt động tốt có thể một năm trước. Vấn đề của tôi là gì? Ai đó có thể giúp tôi ánh xạ khóa Caps Lock thành phím Escape mãi mãi trong hệ điều hành Arch Linux của tôi không?

Câu trả lời:


47

Bất kỳ điều nào sau đây (theo thứ tự tăng dần về độ phức tạp):

  1. Sử dụng setxkbmapđể ánh xạ lại khóa (không yêu cầu trình nền và độc lập với môi trường máy tính để bàn hoặc trình quản lý cửa sổ của bạn). Đừng quên thêm lệnh trước dòng exec gnome-session(hoặc tương tự) trong ~/.xinitrchoặc ~/.xsession:

    setxkbmap -option caps:escape
    

setxkbmapcó thể được tìm thấy trong gói thêm / xorg-setxkbmap .

  1. dconf-editororg.gnome.desktop.input-sources.xkb-options→ Thêm caps:escapevào trường đã nói ở trên.
  2. gnome-session-settings → Chương trình khởi động → Thêm → Tên = Remap mũ khóa để thoát, lệnh =setxkbmap -option caps:escape
  3. Tạo bố cục bàn phím tùy chỉnh

FYI, tôi đã có được quy tắc XKB bằng grep ping /usr/share/X11/xkb/rulescho capsesc.


2
Phương pháp dconf đã làm việc hoàn hảo cho tôi nhờ!
Keith Smiley

Cảm ơn vì không. 2. Tôi đã tìm kiếm thông tin đó từ lâu. Không tôi có thể đặt cái này trên dòng lệnh thông quagsettings org.gnome.desktop.input-sources xkb-options ['caps:none', 'numpad:pc', 'numpad:mac']
Oliver Jan Krylow

Về không. 1: Nếu bạn muốn trao đổi nó thay vì có hai phím thoát, bạn có thể chạy setxkbmap -option caps:swapescape.
comfreak

5

Để sử dụng X, trang Arch Wiki Gnome có hướng dẫn sửa đổi bàn phím bằng XkbOptions :

Sử dụng trình soạn thảo dconf, điều hướng đến khóa có tên org.gnome.desktop.input-nguồn.xkb-tùy chọn và thêm XkbOptions mong muốn (ví dụ: 'caps: swapescape') vào danh sách.

Trong bảng điều khiển, bạn có thể tạo một sơ đồ tùy chỉnh cho cùng hiệu ứng. Tạo sơ đồ bàn phím cá nhân của bạn với những thay đổi cần thiết cho CapsLockEscapetại /usr/share/kbd/keymaps/i386/qwerty/yourmapsau đó tarnó và bao gồm một dòng trong /etc/vconsole.confđể gọi nó là:

KEYMAP=yourmap

3

Xorg.conf

Bạn có thể đạt được điều này bằng cách chỉnh sửa các tập tin /etc/X11/xorg.conf.d/00-keyboard.conf.

Tệp ví dụ:

Section "InputClass"
        Identifier      "system-keyboard"
        MatchIsKeyboard     "on"
        Option          "XkbLayout" "us"
        Option          "XkbModel"  "pc104"
        Option          "XkbOptions" "caps:swapescape"
EndSection  

Bạn có thể chỉ định nhiều XkbOptions, ví dụ như caps:swapcaps,terminate:ctrl_alt_bkspcó esc và caps bị tráo đổi nhưng cũng cho phép X bị giết CtrlAlt Backspace. Bạn có thể tìm thêm thông tin về điều này trong man xkeyboard-config.

GUI

Bạn cũng có thể sử dụng Công cụ Tweak Gnome (gói gnome-chỉnh-công cụ). Chỉ cần nhấp vào Typingvà sau đó chọn bất cứ điều gì bạn thích từ Ctrl positionmenu (xem hình ảnh bên dưới).

nhập mô tả hình ảnh ở đây


2

Bạn có thể sử dụng xmodmap. Đặt của bạn ~/.Xmodmap:

remove Lock = Caps_Lock
keysym Escape = Caps_Lock
keysym Caps_Lock = Escape
add Lock = Caps_Lock

(hãy chắc chắn khi bắt đầu X sẽ sử dụng của bạn ~/.Xmodmap)


Đây là câu trả lời đúng, không phân biệt và bất khả tri.
dotancohen

Khi tôi đặt cái này vào ~/.Xmodmap, không có gì xảy ra :(
Jan Warchoł

Đặt hàng xmodmap ~/.Xmodmapcho bạn ~/.xinitrc!
uzsolt

Khi tôi đặt cái này vào ~/.Xmodmapvà sau đó chạy, xmodmap ~/.Xmodmaptôi gặp lỗi:xmodmap: .Xmodmap:1: bad remove modifier name 'lock=caps_lock', not allowed xmodmap: .Xmodmap:2: bad keysym target key symbol 'Escape=Caps_Lock' xmodmap: .Xmodmap:3: bad keysym target key symbol 'Caps_Lock=Escape' xmodmap: .Xmodmap:4: bad add modifier name 'lock=caps_lock', not allowed xmodmap: 4 errors encountered, aborting
comfreak

Bạn sẽ cần không gian xung quanh dấu bằng. Tôi sửa đổi câu trả lời.
uzsolt

0

! Tôi không biết tại sao câu trả lời ở trên không hoạt động. Đây là một trong những làm việc cho tôi. Trong ~ / .Xmodmap của bạn

! 66 is the keycode of Caps_Lock
clear    Lock
keycode  66 = Escape 

và sau đó

$ xmodmap ~/.Xmodmap

Tôi đang sử dụng Fedora và trình quản lý cửa sổ không phải Gnome. HTH


0

Các tập tin /etc/X11/xorg.conf.d/00-keyboard.confcũng có thể được tạo tự động bằng cách sử dụng systemd-localed. Sử dụng lệnh sau:

localectl set-x11-keymap us "" "" caps:escape

Hoặc, bao gồm một số tùy chọn hữu ích khác:

localectl set-x11-keymap us,de "" "" caps:escape,grp:alt_caps_toggle,grp_led:caps,lv3:ralt_switch_multikey,terminate:ctrl_alt_bksp,eurosign:e,rupeesign:4

Giải thích nhanh:

  • CapsLk có chức năng như Esc
  • Chuyển giữa hai bố trí bàn phím us/ devới Alt+CapsLk
  • CapsLk LED cho biết bố trí nào đang hoạt động
  • Right Alt ( RAlt) là "multikey" (xem Khóa soạn thảo )
    • RAlt+ etạo
    • RAlt+ 4tạo (tương tự như cách Shift+ 4tạo $)
  • Ctrl+ Alt+ Backspacegiết chết X
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.