Bagaimana cara menukar tombol caps dan esc key secara terprogram?

18

Saya adalah pengguna Vim yang berat dan salah satu hal pertama yang saya lakukan ketika saya mulai bekerja pada instalasi ubuntu yang bersih adalah dengan menukar caps lock dan tombol esc untuk mengurangi gerakan tangan di atas keyboard.

Sejauh ini saya telah melakukannya melalui dialog konfigurasi keyboard, tetapi saya sekarang sedang menulis satu set skrip yang akan mengatur Ubuntu seperti yang saya suka dan saya belum dapat menemukan cara skrip atau terprogram untuk mengubah item konfigurasi ini.

Saya tidak mencari opsi yang menukar tombol di tingkat lain selain gnome itu sendiri, jadi yang saya cari adalah cara untuk skrip perubahan ini dan membuatnya muncul dalam konfigurasi keyboard yang saya gunakan dulu, haruskah saya memutuskan untuk kembalikan secara manual di masa mendatang.

Jacobo de Vera
sumber
ide bagus! Saya telah mengeluh sepanjang waktu tentang menggerakkan tangan saya untuk Esc saat bekerja di Vim, tapi sekarang ini solusinya! thanx bro ;-)
sazary
1
Berhati-hatilah, begitu Anda terbiasa dengan mereka yang ditukar, itu menjadi canggung ketika Anda harus bekerja pada keyboard orang lain :)
Jacobo de Vera
2
Pilihan lain adalah Ctrl-C, bukan Esc. (Bekerja pada semua keyboard.
Eric Wilson
@FarmBoy, luar biasa! Saya tidak tahu itu!
Jacobo de Vera

Jawaban:

22

Anda dapat melakukan ini melalui GUI dengan membuka Keyboard Preferencespanel kontrol (di bawah System -> Preferences), dan pilih Layouttab. Klik pada Options...tombol untuk membuka dialog opsi tata letak. Luaskan Caps Lock key behaviourbagian dan pilih Swap ESC and Caps Lock.

Ada beberapa cara Anda bisa skrip hal semacam ini.

Langsung melalui Xkb

Kami dapat melakukan perubahan secara langsung dengan yang berikut:

setxkbmap -option caps:swapescape

Anda dapat menonaktifkan semua opsi tata letak saat ini (yang akan mengembalikan caps lock ke perilaku standarnya) dengan:

setxkbmap -option ''

Melalui GConf

Panel kontrol preferensi keyboard menyimpan konfigurasinya melalui gconf, dengan tata letak yang sebenarnya diterapkan oleh gnome-settings-daemon. Karena itu, Anda dapat gnome-settings-daemonmengatur tata letak dengan memperbarui sendiri gconf.

Pengaturan yang relevan dalam hal ini tampaknya /desktop/gnome/peripherals/keyboard/kbd/options. Jadi, Anda dapat mengatur opsi dengan:

gconftool-2 --set /desktop/gnome/peripherals/keyboard/kbd/options \
    --type list --list-type string \
    '[caps<tab>caps:swapescape]'

Di atas, <tab>harus karakter tab literal daripada spasi. Anda dapat menonaktifkan perilaku itu lagi dengan mengatur kunci gconf ke daftar kosong.

James Henstridge
sumber
Opsi gconf persis seperti yang saya cari, namun konfigurasi Anda mengubah caps lock menjadi tombol escape dan tombol escape menjadi tombol tab. Saya mengubah pengaturan secara manual lagi dan melihat nilai di gconf-editor, sebenarnya [caps<tab>caps:swapescape]. Semuanya berfungsi sekarang, saya menerima jawaban Anda dan menyarankan Anda mengeditnya untuk mengubah nilai untuk referensi di masa mendatang. Terima kasih.
Jacobo de Vera
@ Jacobo Di masa mendatang, Anda dapat menyarankan hasil edit sendiri - cukup tekan tombol edit di bawah jawaban. Perubahan Anda akan dengan cepat disetujui oleh seseorang. Saya telah mengeditnya untuk Anda (periksa apakah benar). Bagaimanapun, jawaban yang bagus @ James! +1
Stefano Palazzo
1
@Stefano, terima kasih, saya tidak memperhatikan opsi edit.
Jacobo de Vera
Apakah ada cara untuk membuatnya bekerja di GDM di layar masuk?
lindhe