Mengubah kunci Mod di Awesome WM

9

Saya mencoba mengubah kunci mod menjadi luar biasa dari tombol windows menjadi Pause, Scroll Lock, dan Escape.

Untuk semua kunci, saya mencoba mengubah entri dalam rc.luafile konfigurasi; Saya mencoba menggunakan xmodmap untuk menghapus kunci danadd mod4 = ...

Namun tampaknya apa pun yang saya lakukan, tombol-tombolnya menjadi "lengket" (kadang-kadang dengan cara yang aneh dan tidak konsisten), yaitu jika saya menekan mereka begitu komputer bertindak seolah-olah mereka terus ditekan.

Adakah cara yang masuk akal untuk mengubah perilaku ini?

Archie
sumber

Jawaban:

2

Saya memiliki file dengan dua baris ini di rumah saya:

clear lock 
keysym Caps_Lock = Super_L

Ini dipanggil dari rc.lua saya seperti ini:

awful.util.spawn("xmodmap /home/username/your_xmodmap.file")
kioopi
sumber
Saya tidak ingin menggunakan capslock sebagai modkey. yang clear lockClears perintah bergeser kunci, dan ada tidak boleh ada shift lock baik untuk kunci disebutkan di baris pertama dari pertanyaan saya.
Archie
2

Jauh terlambat, tetapi untuk referensi orang lain:

Masalahnya tampaknya xmodmap tidak mengidentifikasi salah satu kunci yang Anda daftarkan sebagai kunci pengubah. Oleh karena itu, AwesomeWM tidak mengizinkannya digunakan sebagai kunci pengubah.

Anda dapat mencoba menambahkan kunci yang ingin Anda gunakan sebagai Mod3 (yang tampaknya tidak digunakan untuk apa pun pada sebagian besar sistem yang pernah saya lihat), maka rc.lua Anda dapat mendaftarkan modkey sebagai "Mod3".

Tambahkan sebagai kunci pengubah

Anda dapat melihat kunci pengubah dengan xmodmap. Secara default Anda mungkin akan mendapatkan sesuatu seperti ini:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Dengan xevAnda dapat melihat nama tombol apa saja yang Anda tekan saat sedang berjalan, dan untuk Scroll Lock, tambang muncul sebagai:

KeyPress event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23086947, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23087091, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Anda akan melihat nama kuncinya Scroll_Lock.

Untuk menambah ke Mod3, Anda harus membuat atau menambah ~/.Xmodmap. Menambahkan baris ini menetapkan Mod3 menjadi hanya tombol Scroll_Lock:

add Mod3 = Scroll_Lock

Untuk menguji perubahan Anda dan melihat kesalahan dalam file .Xmodmap Anda, jalankan

xmodmap ~/.Xmodmap

Memperbarui rc.lua

Seperti yang sudah Anda ketahui, di bagian atas file rc.lua Anda (yang biasanya ada ~/.config/awesome/rc.lua), ada satu modkey = "Mod4"baris. Ubah ini menjadi modkey = "Mod3".

Peringatan

Tombol Esc digunakan untuk sejumlah pemetaan kunci oleh AwesomeWM. Saya menyarankan untuk mencoba Scroll Lock atau Pause karena sepertinya tidak ada konflik yang luas. Bahkan AwesomeWM tampaknya menganggap Esc dicadangkan untuk membatalkan operasi saat ini.

Scroll Lock tampaknya diperlakukan secara ajaib sebagai kunci pengunci, seperti Caps Lock. Perbedaannya adalah bahwa perilaku penguncian Caps Lock relatif sepele untuk dinonaktifkan, sedangkan Scroll Lock tidak dapat menonaktifkan perilaku ini sejauh yang saya tahu.

Saya sarankan mencoba ini dengan kunci seperti tombol Numpad 0, atau sesuatu yang biasanya tidak dirancang untuk menjadi kunci penguncian negara, konfirmasi berfungsi, lalu coba beralih ke kunci yang Anda inginkan.

mtalexan
sumber
0

Saya tahu saya terlambat 3 tahun, tetapi jika ini membantu siapa pun, beralihlah

modkey = "Mod4"

dengan

modkey = "Mod1"
TuxForLife
sumber
Itu konsep dasar, tetapi kunci spesifik yang dia daftarkan tidak dapat digunakan dengan modifikasi sederhana seperti itu ke rc.lua. Pengaturan modkey di rc.lua tampaknya hanya dapat diatur ke kunci yang diperlakukan xmodmap sebagai kunci pengubah (seperti shift atau ctrl), dan tidak dapat diatur ke sesuatu seperti 'x'.
mtalexan