mengaktifkan kunci lengket di bawah xorg (manajer desktop yang mengagumkan)

12

Saya ingin mengaktifkan "kunci pengubah lengket" di bawah archlinux + mengagumkan, dan saya belum menemukan info yang benar.

Macario
sumber
Apa itu "kunci lengket"?
Daniel Andersson
benar, maksud saya "sticky modifier keys", itu berarti bahwa menekan tombol pengubah bertindak sebagai toggle dan biasanya toggle dilepaskan pada penekanan tombol berikutnya, jadi kunci tidak harus ditekan secara bersamaan tetapi dapat ditekan secara berurutan. Ini adalah aksesibilitas untuk fitur pengguna yang dinonaktifkan pada OS-X, Gnome, dan mungkin Windows, dan saya merasa lebih nyaman dan mengurangi ketegangan dengan fitur aktif.
Macario

Jawaban:

21

Aku memahaminya. Ada utilitas bernama xbkeys untuk mengatur opsi aksesibilti untuk xorg.

Dari manual xkbset ($ xkbset man):

To switch sticky keys on or off, and optionally set or reset:
() two keys pressed at the same time stops sticky keys;
() a modifier pressed twice will be locked:

    [-]{sticky|st} [[-]twokey|[-]latchlock]...

Saya menjalankan ini:

$ xkbset sticky -twokey -latchlock

Perintah itu bisa masuk .xinitrc

# turn on stickykeys. don't let two keys pressed at the same time disable it.
# don't turn on "latch lock", ie pressing a modifier key twice "locks" it on.
xkbset accessx sticky -twokey -latchlock

# don't expire these settings. (run xkbset q exp for details.)
xkbset exp 1 =accessx =sticky =twokey =latchlock

 

Macario
sumber
Berikut ini tautan ke xkbset: math.missouri.edu/~stephen/software/#xkbset
Ini tersedia dalam debian dalam paket xkbset.
Jesse Hallett
3
Jawaban ini sangat membantu! Sekarang saya hanya ingin menemukan cara untuk membatasi perilaku lengket ke tombol Shift.
Jesse Hallett
1
@JayeshBhoot Ya; xkb memiliki "latch" varian beberapa tombol. Saya mendapatkan shift lengket dengan memetakan tombol shift saya ISO_Level2_Latchyang bertindak seperti shift untuk keperluan pengubah. (Beberapa program yang mencari kode kunci shift secara khusus tidak bekerja dengan baik ISO_Level2, terutama permainan.) Saya punya konfigurasi online saya; tetapi Anda harus melihat beberapa dokumentasi tentang detail spesifik dari penerapan pemetaan kunci khusus. github.com/hallettj/dot-xmonad/blob/master/home/.config/X11/xkb/…
Jesse Hallett
1
@JesseHallett terima kasih atas penunjuknya! Saya akan mencoba ini secepatnya.
Jayesh Bhoot
5

Anda dapat menggunakan Xmodmap untuk mengatur kunci tombol untuk tombol Gulir, Kana, Jumlah, Caps, dan Shift. Juga beberapa kunci pengelompokan ISO dapat dipetakan ulang dengan cara ini. Misalnya, di keyboard saya, untuk mengatur Left Shift sebagai toggle, gunakan ini:

xmodmap -e "keycode 50 = Shift_Lock"

gunakan "xev" untuk mendapatkan kode kunci yang benar.

Cukup tambahkan perintah di dalam tanda kutip ke file bernama .Xmodmap dan mulai ulang X agar perubahannya permanen.

Sayangnya, saya tidak berpikir ada kode kunci untuk Mengunci tombol Kontrol, Alt, atau Meta. Jika Anda memposting pertanyaan yang lebih spesifik dan menambahkan karunia yang layak, saya mungkin dapat mengerjakan skrip shell dan / atau xorg perubahan untuk memungkinkan hal ini.

gogator
sumber
Sayangnya saya tidak punya poin lagi untuk ditawarkan, saya benar-benar kehilangan pengubah lengket seperti di cntrl, jendela, alt, meta ...
Macario
XKB adalah cara yang lebih baik untuk melakukan ini. Periksa Arch wiki
phil pirozhkov
1

Salah satu cara untuk mengaktifkan kunci lengket adalah dengan menekan StickyKeys_Enabletombol. Jika Anda tidak memetakannya ke keyboard Anda, Anda dapat mensimulasikan penekanan tombol dengan misalnya Xdotool:

> xdotool key StickyKeys_Enable
Guildenstern
sumber
-1

Sejauh yang saya tahu, Xorg tidak mendukung ini. Ini tidak dapat dipahami oleh driver keyboard kustom untuk mengimplementasikan ini, tapi saya belum pernah menemukan hal seperti itu.

mkaito
sumber
Mmm ... Saya benar-benar ingin memiliki ini tanpa harus menggunakan Gnome atau XFCE ... payah!
Macario