Saya ingin memetakan ulang caps lock untuk melarikan diri di X11 (yaitu dengan menekan tombol caps lock fisik akan diartikan sebagai esc oleh aplikasi dan perilaku esc tidak akan berubah). Solusinya harus bertahan X restart . xmodmap dan setxkbmap adalah solusi yang dapat diterima (seperti halnya program serupa). Saya tidak ingin berurusan dengan GUI, karena saya ingin solusi menjadi portabel dan merupakan bagian dari dotfile saya. Jika saya melewatkan solusi yang lebih baik / lebih mudah / lebih jelas, tolong katakan padaku, meskipun perlu dicatat bahwa saya tidak menggunakan DE (mencoba i3wm).
Sejauh ini saya sudah mencoba menggunakan xmodmap dan setxkbmap dengan sedikit keberhasilan.
Inilah upaya saya menggunakan xmodmap:
# ~/.xinitrc
xmodmap ~/.xmodmap
dan
# ~/.xmodmap
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
Menjalankan $ xmodmap ~/.xmodmap
dari baris perintah berfungsi dan melakukan apa yang saya inginkan. Masalahnya adalah ini akan diset ulang setiap kali x restart. Di situlah saya mengharapkan xinitrc masuk - bukankah seharusnya memuat setiap kali x memulai dan menjalankan perintah xmodmap? Jika perintah itu berfungsi, mengapa tidak melakukan apa-apa saat membaca dari sebuah file?
Saya sudah mencoba beberapa hal dengan setxkbmap, tidak ada yang berhasil. Dua upaya di bawah ini ada di file pada waktu yang berbeda.
# ~/.xinitrc
setxkbmap -option caps:esc # attempt 1
setxkbmap -option esc:nocaps # attempt 2
Tidak ada perintah yang melakukan sesuatu yang dapat dilihat dari baris perintah, jadi saya berasumsi bahwa saya salah mengartikannya. Saya suka ide solusi ini karena ini adalah one-liner dan tidak memerlukan apa pun di beberapa file lain. Kalau saja itu berhasil.
Apakah .xinitrc file yang salah untuk digunakan? Saya tahu startx sedang memuat dari ~ / .xinitrc.
Saya meminta solusi yang mungkin berisi seluruh file, bukan hanya satu baris (jika lebih dari satu diperlukan dalam file) jadi saya tidak mengacaukan beberapa langkah perantara. Misalnya, jika saya memerlukan sesuatu di .xinitrc dan sesuatu di .xcapsrebind, tolong tunjukkan kedua file dan semua konten yang diperlukan (saya juga dapat menangani diberitahu untuk menambahkan sesuatu sampai akhir, tetapi jika & & sejenisnya mungkin diperlukan, tolong beritahu aku).
xmodmap
di .xinitrc
harus bekerja. Itu yang saya lakukan. Mungkin memetakan sesuatu yang tidak biasa, untuk memastikan bahwa itu benar-benar berjalan ketika Anda mulai x? Juga, window manager / lingkungan desktop apa yang Anda gunakan? KDE secara berkala “mengoreksi” pemetaan keyboard saya tanpa saya beri tahu. Mungkin periksa pengaturan desktop Anda untuk memastikan tidak ada yang berjalan di xmodmap
belakang Anda.
~/.xinitrc
tidak dijalankan. Saya menggunakan i3wm dan tidak ada DE sekarang, meskipun hal yang sama terjadi di Pantheon ketika saya mencoba. Sejauh yang saya tahu, i3 tidak mengacaukan xinitrc atau memuat sendiri (tapi saya seorang noob, jadi apa yang saya tahu?).
Option "XkbOptions" "caps:escape"
dalam X
file konfigurasi keyboard, mis./etc/X11/xorg.conf.d/10-keyboard.conf
.xinitrc
:setxkbmap -option caps:escape