Bagaimana cara memetakan kembali kunci caps lock?

69

Di masa lalu saya biasa menggunakan xmodmapuntuk mencegah Caps Locktombol bekerja, dan kemudian memberitahu Launchy untuk menangani penekanan tombol sebagai gantinya. Sepertinya saya tidak bisa melakukan ini lagi.

Apa cara terbaik untuk menonaktifkan Caps Lockperilaku normal, dan membuatnya melakukan sesuatu yang lain?

Mehrdad
sumber
1
Untuk Ubuntu 14.04, lihat askubuntu.com/q/444714/25388
Léo Léopold Hertz 준영

Jawaban:

71

Dari howtogeek.com yang memiliki jawaban yang bagus untuk OS apa pun.

Untuk Linux (termasuk Ubuntu):

setxkbmap -option <OPTION>

Di mana <OPTION>bisa misalnya:

  • caps:none - Nonaktifkan Caps Lock.
  • caps:super- Caps Lock menjadi Super tambahan (alias tombol Win).
  • caps:ctrl_modifier- Caps Lock menjadi Ctrl tambahan .
  • caps:numlock- Caps Lock menjadi Num Lock tambahan .
  • caps:escape- Caps Lock menjadi Escape tambahan .
  • caps:backspace- Caps Lock menjadi Backspace tambahan .
  • caps:swapescape - Caps Lock menjadi Escape, dan Escape menjadi Caps Lock

Catatan: Xmodmap tidak digunakan lagi karena setxkbmap.

Wernight
sumber
3
love you man, terima kasih, ini berfungsi untuk ubutnu 14.10
Andrzej Rehmann
2
bekerja di ubuntu 15.10 juga! Terima kasih!
donatello
6
bagus dan sederhana, bekerja di 16,04
chepyle
4
Untuk mengembalikan setxkbmapperubahan apa pun (mis. Jika Anda memerlukan kunci Caps Anda kembali ke lokasi semula) Anda hanya perlu menjalankan ini:setxkbmap -option
landroni
1
Jika Anda memetakan kembali tombol Capslock untuk mundur dan sekarang Anda bertanya-tanya mengapa itu tidak akan menghapus kata-kata jika Anda terus menekannya, itu karena Anda perlu menggunakan perintah tambahan. Setelah setxkbmap -option caps:backspacemasuk xset r 66dan voilá.
Gabriel
19

Anda dapat menonaktifkannya dengan masuk ke keyboard-> Layouts-> options-> perilaku caps lock dan pilih "disable caps lock".


Edit :

Saya tidak tahu mengapa sepertinya tidak nyaman dengan tombol Keyboard lain.

Tapi Launchy berfungsi dengan baik setelah saya mencobanya dengan CTRL+ Super+ Space.

masukkan deskripsi gambar di sini

Dan Anda perlu daftar putih launchyke ikon baki. Lihat Bagaimana cara mengakses dan mengaktifkan lebih banyak ikon di baki sistem? . Anda juga perlu menambahkannya ke aplikasi Start Up, karena itu tidak akan berfungsi ketika tidak dibuka.


Lagi pula, Sebagai alternatif untuk Launcy, cobalah Synapse untuk integrasi terbaiknya dengan gnome dan persatuan.

Binarylife
sumber
Opsi ini sepertinya tidak tersedia bagi saya di Ubuntu 15.04.
MichielB
19

Di Ubuntu 11.10 - 13.04

  1. Buka aplikasi Layout Keyboard dan klik tombol "Opsi".
  2. Daftar opsi rebinding akan muncul. Pilih "Perilaku tombol Caps Lock".
  3. Pilih opsi repurposing Caps Lock yang Anda inginkan.

Cuplikan layar opsi yang tersedia

Jjed
sumber
1
@JacobJohanEdwards Catatan untuk diri sendiri, periksa apakah xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'masih berfungsi.
Jjed
Untuk pengguna vim, 'Praktis Vim' merekomendasikan untuk memetakan caps lock ke ctrl pada tingkat sistem. Layout Keyboard> Opsi> Posisi Tombol Ctrl> Caps Lock saat Ctrl melakukan trik.
rpattabi
12
Pengaturan ini tidak ada lagi di 13.10. Instal gnome-tweak-tool, di sana Anda akan memiliki pengaturan serupa di bawah "Mengetik".
pcworld
Ini tidak berfungsi untuk saya di Ubuntu 12.10. Bercak dengan pengaturan itu di pusat kontrol gnome tampaknya tidak berpengaruh.
Andrew Wagner
4
Mengapa mereka menghapus opsi ini dari 14,04?
Léo Léopold Hertz 준영
16

Ini pada dasarnya merupakan modifikasi dari jawaban yang diberikan di https://askubuntu.com/a/223674/22073 .

Anda juga dapat mengubah perilaku Caps Lock menggunakan XKBOption. Perubahan ini bahkan dipropogasi ke konsol virtual (/ dev / tty [1-6], atau Ctrl-Alt-F [1-6]).

Misalnya, untuk menonaktifkan Caps Lock, Anda akan memiliki yang berikut di /etc/default/keyboard:

# Check /usr/share/doc/keyboard-configuration/README.Debian for
# documentation on what to do after having modified this file.

# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="caps:none"

# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap.  Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz

Maka Anda akan menjalankan:

sudo dpkg-reconfigure keyboard-configuration

Untuk daftar lengkap penyesuaian XKBOPTIONS, lihat /usr/share/X11/xkb/rules/base.lst. Berikut daftar lengkap dari mesin Ubuntu 13.10 saya: http://sprunge.us/cUZO

Bahkan lebih banyak informasi dapat ditemukan di wiki ArchLinux: https://wiki.archlinux.org/index.php/Keyboard_Configuration_in_Xorg

Ehtesh Choudhury
sumber
Sempurna, saya menggunakan XKBOPTIONS="ctrl:swapcaps"untuk menukar Ctrl Kiri dengan Caps.
Márcio
Ini bekerja pada 16,04 di X dan konsol virtual.
jfs
11

Untuk memetakan ulang caps_lock yang tidak berguna menjadi shift dasar, lakukan

xmodmap -e "keycode 66 = Shift_L"
jobwat
sumber
Ini tidak bertahan setelah restart.
Czarek Tomczak
3
Untuk membuatnya bertahan setelah restart lakukan: Beranda Dasbor Ubuntu> Aplikasi Startup> Tambah> Ketikkan perintah di atas.
Czarek Tomczak
7

Metode berikut menggunakan kombinasi Compiz untuk meluncurkan aplikasi saat penekanan tombol dilakukan.

Singkatnya -

  1. ubah perilaku tombol Caps Lock untuk meniru tombol lain.
  2. Konfigurasikan compiz untuk mendengarkan kunci yang baru saja ditiru dan menjalankan skrip khusus.

Ubah kunci caps lock

Juga mengubah perilaku Tombol Caps Lock, Anda dapat menggunakan xmodmapsebagai berikut:

  • buat file mis. "capslock"
  • salin dan rekatkan yang berikut ke dalam file
keycode 66 = cent
clear Lock
add Control = cent
  • sekarang jalankan xmodmap untuk mengenali perubahan Anda:

xmodmap capslock

Untuk menjalankan secara permanen, tambahkan perintah ini ke aplikasi startup.

Menekan Caps Lock sekarang hanya meniru dengan menekan tombol "cent" - perhatikan ini bukan kunci yang sebenarnya ada di keyboard saya.

Anda bisa mendapatkan daftar nama KeySym dari sini .

Konfigurasikan Compiz

Mulai Manajer Pengaturan CompizConfig

Di bagian umum, pastikan "Perintah" diaktifkan dan konfigurasikan perintah seperti yang ditunjukkan:

masukkan deskripsi gambar di sini

NB mengaktifkan pengikatan kunci dan menggunakan "ambil kombinasi tombol" untuk mengenali kunci "sen" Anda. Sayangnya, Anda tidak bisa mendapatkan compiz untuk mengenali kunci tutup kunci itu sendiri.

masukkan deskripsi gambar di sini

Jelas - ubah "firefox" untuk perintah apa pun yang Anda gunakan untuk memulai "launchy"

Sekarang ketika Anda menekan tombol Caps Lock, compiz akan mengenali kunci "cent" yang dipetakan dan menjalankan perintah - dalam hal ini firefox - dalam kasus Anda "launchy".

kebebasan fosil
sumber
Setelah beberapa menit, pengaturan kembali - dan lagi Caps Lock memiliki perilaku yang biasa.
Vitaly Zdanevich
5
  1. Gunakan perintah xev. Ketika Anda menekan enter, xev akan diluncurkan. xev mengambil semua input dan info kotoran Anda tentang kunci ke dalam baris perintah. Saya sarankan membawa mouse Anda di atas tombol keluar dari jendela xev, menekan tombol caps (atau tombol apa pun yang ingin Anda ketahui), dan segera keluar dari xev. Baris yang relevan pada sistem saya, untuk caps lock terlihat seperti:

    KeyPress event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164277, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False
    
    KeyRelease event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164397, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XFilterEvent returns: False
    

    Perhatikan keycode(66) dan keysym(0xffe5).

    Anda juga bisa, sekarang, mendapatkan data untuk kunci lain - yang Anda tidak benar-benar gunakan, dan yang, dalam konteks Anda ingin menggunakan tombol caps lock, tidak melakukan apa-apa. Jadi, jika Anda ingin caps lock mengaktifkan kotak pencarian Unity (seperti yang biasanya dilakukan super), mungkin gunakan `, misalnya. Di mesin saya:

    keycode 49 (keysym 0x60, grave)
    
  2. Ikat fungsi tombol baru ke tombol Caps Lock, menggunakan xmodmap. Saya cukup yakin Anda ingin menggunakan perintah seperti:

    xmodmap -e "keycode 66=0x60"
    

    Sekarang, jika Anda menekan tombol caps lock fisik di kotak teks, karakter kubur (`) akan muncul. Tetapi jika Anda memetakan kunci pintas untuk itu, itu akan melakukan sesuatu yang lain. Jika Anda ingin dapat menggunakannya dalam kotak teks, mungkin ganti caps lock dengan shift kiri, atau f10, atau yang lain yang sepertinya tidak akan mengganggu perintah yang ingin Anda gunakan.

  3. Uji untuk memastikan perintah yang saya berikan kepada Anda berfungsi seperti yang Anda inginkan.

  4. Buka aplikasi startup, dan tambahkan perintah itu ke aplikasi startup Anda. Dengan cara ini, kunci akan beralih dengan benar setiap kali Anda memulai.

  5. Menari.

(berteriak untuk tiba) Ganti Keybindings (perangkat keras ke perangkat lunak)

Juga, untuk bantuan lebih lanjut tentang xmodmap:

http://www.xfree86.org/4.2.0/xmodmap.1.html

http://www.in-ulm.de/~mascheck/X11/xmodmap.html

Daniel
sumber
5

Ubuntu 16.04

setxkbmap -option <OPTION> dari jawaban Wernight sepertinya langsung bekerja untukku.

Namun itu akan hilang saat reboot. Untuk mengatasi ini saya menambahkan ke aplikasi startup saya

  1. Cari dan jalankan Startup Applications>> Klik Tambah
  2. Dimasukkan /usr/bin/setxkbmap -option <OPTION>sebagai perintah (Catatan: path lengkap itu penting)

Ganti <OPTION>dengan sesuatu seperti caps:escape(Saya menggunakannya untuk vi)

Latar Belakang

Saya baru saja memutakhirkan dari 15,10 menjadi 16,04 dan apa pun yang saya gunakan untuk memetakan ini sebelum berhenti bekerja.

Anthony Astige
sumber
2

Opsi yang saya temukan terbaik untuk saya (dalam wm / de X yang kompatibel) adalah menambahkan

Option "XkbOptions" "caps:swapescape"

di dalam

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "US"
    Option "XkbOptions" "caps:swapescape" # << is what you want
EndSection

blokir di /etc/X11/xorg.conf.d/00-keyboard.conf (buat jika perlu).

Roman Riesen
sumber
1

sementara tentu saja opsi xmodmap akan berfungsi, saya ingin menemukan opsi yang menggunakan GUI. Ini tersedia untuk saya (menggunakan Ubuntu 15.10):

  • instal gnome-tweak-tool
  • pergi ke 'ketik'
  • di bawah 'Perilaku kunci Caps' pilih 'Caps lock dinonaktifkan'
MichielB
sumber
-1

Solusi paling kuat adalah membeli keyboard yang memungkinkan Anda memetakan kembali kunci dalam firmware, yaitu keyboard profesional yang dapat diprogram.

Ini biasanya biaya sekitar 200 dolar dan juga memiliki kunci tombol mekanik kelas tinggi. Mereka mahal, tetapi mereka adalah satu-satunya cara untuk menghindari keharusan bertarung dengan ini di setiap mesin baru yang Anda duduki, dan setiap kali pengembang membuat perubahan pada infrastruktur OS sama pentingnya dengan peta keyboard.

Andrew Wagner
sumber
1
Ini tidak membantu dengan laptop.
wallyk