Cara memetakan tombol Caps Lock ke tombol Escape di Arch Linux

23

OS saya adalah Arch Linux amd64, Gnome ENV.

Saya ingin memetakan Caps Lockkunci untuk Esc(melarikan diri) di Arch Linux. Saya menjalankan perintah:

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

Ini bekerja dengan baik, tetapi sesaat kemudian, tombol Caps Lock berfungsi lagi. Dan saya harus menjalankan perintah lagi.

Saya cukup yakin bahwa solusi ini bekerja dengan baik mungkin setahun yang lalu. Apa masalah saya Adakah yang bisa membantu saya untuk memetakan tombol Caps Lock ke tombol Escape selamanya di OS Arch Linux saya?

G-Man Mengatakan 'Reinstate Monica'
sumber

Jawaban:

47

Salah satu dari yang berikut ini (dengan urutan kompleksitas yang meningkat):

  1. Gunakan setxkbmapuntuk memetakan ulang kunci (tidak memerlukan daemon dan tidak tergantung pada lingkungan desktop atau window manager Anda). Jangan lupa untuk menambahkan perintah sebelum baris exec gnome-session(atau serupa) di Anda ~/.xinitrcatau ~/.xsession:

    setxkbmap -option caps:escape
    

setxkbmapdapat ditemukan di paket extra / xorg-setxkbmap .

  1. dconf-editororg.gnome.desktop.input-sources.xkb-options→ Tambahkan caps:escapeke bidang yang disebutkan di atas.
  2. gnome-session-settings → Program Startup → Tambah → Nama = Remap caps lock untuk melarikan diri, perintah =setxkbmap -option caps:escape
  3. Buat tata letak papan ketik khusus

FYI, saya memperoleh aturan XKB dengan grep ping /usr/share/X11/xkb/rulesuntuk capsdan esc.

pilona
sumber
2
Metode dconf bekerja dengan baik untuk saya, terima kasih!
Keith Smiley
Terima kasih untuk tidak. 2. Saya mencari info itu sejak lama. Tidak, saya dapat mengatur ini di baris perintah melaluigsettings org.gnome.desktop.input-sources xkb-options ['caps:none', 'numpad:pc', 'numpad:mac']
Oliver Jan Krylow
Tentang no. 1: Jika Anda ingin menukar itu daripada memiliki dua kunci melarikan diri, Anda dapat menjalankan setxkbmap -option caps:swapescape.
comfreak
5

Untuk digunakan dalam X, halaman Wiki Gnome memiliki instruksi untuk memodifikasi keyboard dengan XkbOpsi :

Dengan menggunakan dconf-editor, navigasikan ke kunci bernama org.gnome.desktop.input-sources.xkb-options dan tambahkan XkbOptions yang diinginkan (mis. 'Caps: swapescape') ke daftar.

Di konsol, Anda dapat membuat keymap khusus untuk efek yang sama. Buat keymap pribadi Anda dengan perubahan syarat untuk CapsLockdan Escapedi /usr/share/kbd/keymaps/i386/qwerty/yourmapkemudian taritu dan termasuk garis di /etc/vconsole.confmenyebutnya:

KEYMAP=yourmap

sumber
3

Xorg.conf

Anda dapat mencapai ini dengan mengedit file /etc/X11/xorg.conf.d/00-keyboard.conf.

File contoh:

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

Anda dapat menentukan beberapa XkbOptions, misalnya caps:swapcaps,terminate:ctrl_alt_bkspuntuk memiliki esc dan caps bertukar tetapi juga memungkinkan X untuk dibunuh CtrlAlt Backspace. Anda dapat menemukan info lebih lanjut tentang ini di man xkeyboard-config.

GUI

Anda juga dapat menggunakan Alat Tweak GNOME (paket gnome-tweak-alat). Cukup klik Typingdan kemudian pilih apa pun yang Anda suka dari Ctrl positionmenu (lihat gambar di bawah).

masukkan deskripsi gambar di sini

styrofoam terbang
sumber
2

Anda dapat menggunakan xmodmap. Taruh ~/.Xmodmap:

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

(pastikan memulai X akan menggunakan Anda ~/.Xmodmap)

uzsolt
sumber
Ini adalah jawaban yang benar, distro-agnostik dan desktop-agnostik.
dotancohen
Ketika saya memasukkan ini ke dalam ~/.Xmodmap, tidak ada yang terjadi :(
Jan Warchoł
Letakkan garis di tangan xmodmap ~/.XmodmapAnda ~/.xinitrc!
uzsolt
Ketika saya memasukkan ini ke dalam ~/.Xmodmapdan kemudian menjalankan xmodmap ~/.Xmodmapsaya mendapatkan kesalahan: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
Anda akan membutuhkan ruang di sekitar tanda sama dengan. Saya memodifikasi jawabannya.
uzsolt
0

! Saya tidak tahu mengapa jawaban di atas tidak berhasil. Ini yang berfungsi untuk saya. Dalam ~ / .Xmodmap Anda

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

lalu

$ xmodmap ~/.Xmodmap

Saya menggunakan Fedora dan window manager non-Gnome. HTH

John Chain
sumber
0

File /etc/X11/xorg.conf.d/00-keyboard.confjuga dapat dibuat secara otomatis menggunakan systemd-localed. Gunakan perintah berikut:

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

Atau, termasuk beberapa opsi berguna lainnya:

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

Penjelasan cepat:

  • CapsLk berfungsi sebagai Esc
  • Beralih antara dua tata letak keyboard us/ dedengan Alt+CapsLk
  • CapsLk LED menunjukkan tata letak mana yang aktif
  • Alt Kanan ( RAlt) adalah "multikey" (lihat Compose Key )
    • RAlt+ emenghasilkan
    • RAlt+ 4menghasilkan (mirip dengan cara Shift+ 4menghasilkan $)
  • Ctrl+ Alt+ Backspacemembunuh X
friederbluemle
sumber