Cara mengganti Caps Lock dan Esc secara permanen

116

Bagaimana saya bisa secara permanen mengganti fungsi Caps Lockdan Esctombol di Saucy? Saya dapat menggunakan perintah ini untuk melakukannya sementara (hingga reboot):

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

Saya mencoba menambahkan perintah itu sebagai Aplikasi Startup, tetapi sepertinya tidak melakukan apa-apa.

Isaac Dontje Lindell
sumber
1
Saya menempatkan perintah itu di saya ~/.bashrcsehingga tetap di antara sistem restart. ( ctrl:nocapsbagi saya, untuk tmux)
opyate
2
@ Salin Saya akan menempatkan perintah itu di ~ /. profil sehingga hanya akan berjalan sekali setelah login interaktif.
suzanshakya

Jawaban:

126

Cara lain untuk melakukan ini adalah melalui dconf-editor. Metode ini memiliki beberapa langkah tambahan gnome-tweak-tool, tetapi berguna jika Anda tidak ingin menarik dependensi dari alat tweak.

Ini akan memungkinkan Anda untuk menggunakan caps:swapescapesintaks dan secara otomatis membuat perubahan itu permanen.

sudo apt-get install dconf-tools

Setelah memulai dconf-editor, navigasikan ke org >> gnome >> desktop >> sumber input

Tambahkan opsi yang Anda butuhkan xkb-options. String opsi dikelilingi oleh tanda kutip tunggal dan dipisahkan dengan koma. Berhati-hatilah untuk tidak menghapus tanda kurung di ujungnya.

xkb-options di dconf-editor

Anda dapat menggunakan metode ini untuk memasukkan sebagian besar opsi xkb tradisional yang tidak lagi tersedia di Pengaturan Sistem >> Entri Teks . Pengecualian adalah pengaturan untuk beralih tata letak keyboard, yang saat ini tidak berfungsi karena bug.

Untuk daftar opsi dan sintaksis, gunakan man 7 xkeyboard-configdi terminal.

Opsi umum lainnya yang dapat digunakan adalah terminate:ctrl_alt_bkspuntuk mengizinkan ctrl+ alt+ backspaceuntuk mengakhiri sesi-X.

chaskes
sumber
5
+1 untuk referensi keyboard-config(7), ini yang saya cari.
ulidtko
61
Anda juga dapat melakukan ini dari baris perintah, tanpa menginstal dconf-editor:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport
4
Jangan jalankan perintah di atas menggunakan 'sudo' karena pengaturan ini tampaknya per pengguna tertentu.
Bohr
11
Perhatikan bahwa Anda perlu menggunakan 'caps:swapescape'jika Anda harus menukar kedua kunci (bukan hanya menetapkan Escuntuk Caps Lock).
thameera
1
atau Anda dapat melakukannyagsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACyclic
50

Sebuah solusi yang bisa digunakan untuk sebagian besar distro linux:

setxkbmap -option caps:swapescape

Opsi lain dimungkinkan:

  • caps:none untuk menonaktifkan
  • caps:escape untuk membuatnya menjadi pelarian tambahan
  • caps:super untuk membuatnya menjadi kunci super (windows) tambahan.

Untuk membuat ini berfungsi saat startup , Anda harus memasukkannya ~/.profilekarena ini hanya akan berjalan setelah login interaktif.

jojo
sumber
1
Ini berfungsi di Ubuntu 14.04, Unity.
Chad
2
Bekerja untuk saya di Ubuntu 16,04 juga
Jesse Chan
4
pada 18,04, menempatkan setxkbmapperintah ~/.xsessionrcdan ~/.profiletidak lagi muncul untuk membuat pengaturan tetap ada antara login / restart
Conrad.Dean
2
@ Conrad.Dean Saya menggunakan ini di Mint 19 yang didasarkan pada 18,04 LTS: Tidak ada masalah di sini. Pengaturan tidak seharusnya bertahan tetapi dimuat saat login.
jojo
~/.profileadalah tempat yang buruk untuk meletakkan ini - file itu dibaca pada setiap shell login. Masukkan ke dalam file yang digunakan saat memulai X11, suka ~/.xinitrcatau ~/.xsession.
sarnold
39

Oke, temukan cara untuk melakukan ini menggunakan gnome-tweak-tool.

Dari terminal, jalankan

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

Anda dapat menemukan opsi untuk menukar Caps Lock dan Esc di "Mengetik -> perilaku kunci Caps Lock".

Isaac Dontje Lindell
sumber
5
Pada Ubuntu 14 tata letak jendela sangat edan, tetapi masih berfungsi.
uvasal
1
Ya, saya pikir gnome-tweak-tooltidak boleh digunakan untuk tugas ini karena ada alat standar untuk melakukannya.
Léo Léopold Hertz 준영
Sejauh ini ini adalah solusi terbaik.
Jason McVetta
2
Untuk Ubuntu> 18,04 dapat ditemukan di Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus
Ini bekerja untuk saya pada 19.04. Saya tidak bisa mendapatkan salah satu xmodmapatau setxkbmapsolusi untuk bertahan pada 19.04.
ahmorris
23

Anda dapat menggunakan xmodmap di terminal untuk bertukar Caps Lockdengan 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

Untuk mendapatkan perubahan ini untuk setiap sesi, setelah Anda menjalankan perintah sebelumnya buat file yang disebut .xmodmapdengan keymaps baru, menggunakan perintah berikut:

xmodmap -pke > ~/.xmodmap

Kemudian, buat file yang disebut .xinitrcdi direktori home Anda, yang berisi baris / perintah berikut:

xmodmap .xmodmap
Radu Rădeanu
sumber
6
Ini tidak berfungsi di bawah Ubuntu 14.04. Saya juga mencoba file .xsessionrc, dan itu juga tidak berhasil.
miguel.martin
Bagaimana Anda membatalkan pengaturan?
hlin117
@ hlin117 Cukup hapus konten ~/.xmodmapfile (dengan menjalankan hanya > ~/.xmodmapdi terminal Anda), lalu mulai kembali sesi Anda.
Radu Rădeanu
2
Di Ubuntu 14.04, ini membuat Escape maps ke Caps_Lock tetapi Caps_Lock tidak memetakan ke Escape.
user1691145
1
Hai, saya melakukan ini, dan itu berhasil. Namun, selain esc terikat ke capslock, caps-lock sekarang terikat pada caps-lock dan melarikan diri. Apakah mungkin lingkungan desktop masih menimpa ini? Saya menggunakan KDE
xor
18

Mirip dengan jawaban @ Radu , tetapi kompatibel dengan 14,04 (lihat juga jawaban ini ).

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

Jika tidak berhasil, ganti:

xmodmap -e "remove Lock = Caps_Lock"

dengan:

xmodmap -e "clear Lock"
Gilly
sumber
Tidak bekerja di Linux Mint 17.1 (yang didasarkan pada Ubuntu) :(
Jan Warchoł
3
harus mengubah "hapus Kunci = Caps_Lock" menjadi "hapus Kunci" agar bisa berfungsi
Sofia
13

Buka ikon roda gigi di sudut kanan atas layar dan:

  • klik Pengaturan Sistem
  • tata letak keyboard
  • opsi ... (sudut kanan bawah)
  • perilaku caps lock key (4th down)
  • Gulir ke bawah dan pilih "Swap ESC dan Caps Lock".

Selesai!

Joe
sumber
Joe : Selamat Datang di Tanya Ubuntu! ;-) Bisakah Anda meninjau suntingan saya dan juga meninjau bantuan pengeditan untuk meningkatkan keterbacaan jawaban Anda di masa depan ... ;-)
Fabby
2
Ini harus menjadi jawaban terbaik untuk ubuntu dan mint
prasad
Apakah ini melakukan sesuatu selain pembaruan skrip yang disebutkan di sini? Lebih suka melakukan ini dalam skrip.
Ben Creasy
7

Jalankan perintah ini sekali di terminal. dconfseharusnya sudah diinstal dengan gnome 3.

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"
Chad Skeeters
sumber
Solusi ini baru saja diuji OK pada RedHat Enterprise Linux 7.
Chad Skeeters
3

Ini dapat dilakukan dari pengaturan sistem "Keyboard Layout" . Klik "opsi" untuk tata letak yang Anda gunakan, lalu di bawah "Perilaku tombol Caps Lock" pilih "switch Escape and Capslock".

Gabe Moothart
sumber
Itu tidak tersedia setidaknya dalam 13.10.
Isaac Dontje Lindell
2

Saya terlambat menjawab, tetapi cara biasa untuk bertukar Escdan Ctrldengan baris berikut dalam ~/.Xmodmapfile:

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

Ini harus bekerja dengan semua lingkungan desktop (KDE, Gnome) pada distro yang paling umum (keluarga Ubuntu dan Debian, Fedora dan keluarga RH).

dotancohen
sumber
itu tidak berfungsi di ubuntu 16.04 bisakah Anda menjelaskan lebih lanjut?
MaikoID
@MaikoID: Ini cukup banyak cara kanonik unixy cara bertukar CapsLock dan Esc. Saya mengerti bahwa versi Ubuntu yang lebih baru dengan Unity memecah banyak hal "canonical unixy", yang tampaknya menjadi alasan mengapa semua jawaban lain di sini membahas beberapa metode khusus versi atau DE (Unity). Untuk apa itu layak, ini tidak bekerja pada Kubuntu, yang saya pribadi menggunakan.
dotancohen
2

Untuk Ubuntu 18.04 dan Gnome 3.30 ini berfungsi untuk saya:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"
modesto
sumber
masih bekerja pada 19,04.
Percepatan-G
1

Pada KDE GUI (antarmuka pengguna grafis), ini dapat dilakukan dari Layout Keyboard pada Pengaturan Sistem. Klik pada "Perangkat Input". Di sudut kiri atas, klik Papan Ketik. Kemudian klik "Advanced" tab. Dan di bawah "Caps Lock key behaviour" pilih "switch Escape and Capslock".

farhad goodarzi
sumber
Sangat menyenangkan bahwa Anda telah memberikan jawaban untuk pertanyaan ini. Bisakah Anda mengedit pertanyaan Anda untuk sedikit berkembang, mungkin dengan hasil yang diinginkan setelah memilih "Tukar ESC dan Caps Lock". dipilih.
Phil UK
Halo dan selamat datang di Tanya Ubuntu! Dalam kondisi saat ini, jawaban ini benar-benar tidak lengkap, dan karenanya berisiko dihapus. Baca halaman bantuan Cara Menjawab kami , lalu kembali dan edit jawaban Anda untuk memasukkan lebih detail, khususnya bagaimana ini memecahkan pertanyaan OP. Selain itu, baca tur kami untuk mendapatkan lencana dan gagasan yang lebih baik tentang cara kerja situs kami. Sampai jumpa!
Kaz Wolfe
terima kasih untuk saran anda Saya berharap hasil edit ini adalah yang Anda inginkan.
farhad goodarzi
FYI, tautan dengan domain Anda tampaknya tidak berfungsi (setidaknya untuk saya), tetapi domain alamat IP sebelumnya berfungsi.
Andrew T.
1

"Keyboard Layout" dengan "switch Escape and Capslock" di atas tidak lagi berlaku di Ubuntu 16.04 dan seterusnya (apakah sebelumnya? Entah). Jawabannya: untuk menghindari keributan dengan izin dll. Cukup beralih ke root sebelum Anda mulai melakukan ini semua dengan sumemasukkan kata sandi root Anda. Kemudian:

    cd /etc/default/
    vim keyboard

Di sana Anda akan melihat garis:

    XKBOPTIONS=""

Ubah ke:

    XKBOPTIONS="caps:swapescape"

Keluar vim dengan save:

    :wqa

Mulai ulang.

Dan itu akan permanen , aku janji. :)

Alex Fedotov
sumber
0

Catatan: Ini tidak bertukar, hanya peta yang mengunci caps ke esc. (Ini cukup baik untuk penggunaan vim saya.)

Untuk ubuntu 16:04 (dengan lingkungan i3): membuat file ~ / .xessionrc dengan konten

xmodmap -e "clear lock" #disable caps lock switch
xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape
Manoj Bisht
sumber
1
Meskipun jawaban ini memang dapat menyelesaikan 1/2 masalah yang ditanyakan OP tentang hal itu muncul dalam antrian jawaban berkualitas rendah karena (saya berasumsi) panjangnya. Anda dapat mempertimbangkan mengembangkannya dengan detail lebih lanjut. Bagaimana dan mengapa itu mungkin berhasil.
Penatua Geek