włączanie lepkich klawiszy pod Xorg (niesamowity menedżer pulpitu)

12

Chciałbym włączyć „lepkie klawisze modyfikujące” w Archlinux + Awesome i nie znalazłem poprawnych informacji.

Macario
źródło
Co to są „lepkie klucze”?
Daniel Andersson,
tak, miałem na myśli „lepkie klawisze modyfikujące”, oznacza to, że naciśnięcie klawisza modyfikującego działa jak przełącznik i zwykle przełącznik jest zwalniany przy następnym naciśnięciu klawisza, więc klawisze nie muszą być naciskane jednocześnie, ale mogą być naciskane sekwencyjnie. Jest to dostępna dla niepełnosprawnych użytkowników funkcja na OS-X, Gnome i prawdopodobnie Windowsie, i uważam, że jest wygodniejsza i mniej obciążająca dłoń przy włączonej funkcji.
Macario,

Odpowiedzi:

21

Mam to. Istnieje narzędzie o nazwie xbkeys do ustawiania opcji accessibiltiy dla xorg.

Z instrukcji 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]...

Uruchomiłem to:

$ xkbset sticky -twokey -latchlock

To polecenie może przejść do .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
źródło
Jest to dostępne w pakiecie debian xkbset.
Jesse Hallett
3
Ta odpowiedź jest bardzo pomocna! Teraz chcę tylko znaleźć sposób na ograniczenie lepkiego zachowania do klawiszy Shift.
Jesse Hallett
1
@JayeshBhoot Tak; xkb ma warianty „zatrzaskowe” niektórych kluczy. Dostaję lepką zmianę, mapując moje klawisze Shift, na ISO_Level2_Latchktórych działa jak shift dla celów modyfikatora. (Niektóre programy, które szukają kodu shift nie działają ISO_Level2, szczególnie gry). Mam konfigurację online; ale musisz zapoznać się z dokumentacją dotyczącą szczegółowych szczegółów stosowania niestandardowych mapowań kluczy. github.com/hallettj/dot-xmonad/blob/master/home/.config/X11/xkb/…
Jesse Hallett
1
@JesseHallett dziękuję za wskaźnik! Spróbuję to jak najszybciej.
Jayesh Bhoot
5

Za pomocą Xmodmap można ustawić blokadę klawiszy dla klawiszy przewijania, Kana, Num, Caps i Shift. W ten sposób można również odwzorować niektóre klucze grupowania ISO. Na przykład na klawiaturze, aby ustawić lewy Shift jako przełącznik, użyj tego:

xmodmap -e "keycode 50 = Shift_Lock"

użyj „xev”, aby uzyskać poprawny kod dostępu.

Wystarczy dodać polecenie w cudzysłowie do pliku o nazwie .Xmodmap i zrestartować X, aby zmiany były trwałe.

Niestety nie sądzę, aby istniał kod blokujący klawisze Control, Alt lub Meta. Jeśli opublikujesz bardziej szczegółowe pytanie i dodasz przyzwoitą nagrodę, być może uda mi się opracować skrypt powłoki i / lub zmianę xorg, aby to umożliwić.

gogatorzy
źródło
Niestety nie mam już więcej punktów do zaoferowania, naprawdę brakuje mi lepkich modyfikatorów, takich jak cntrl, window, alt, meta ...
Macario,
XKB jest lepszym sposobem na to. Sprawdź Arch wiki
phil pirozhkov
1

Jednym ze sposobów włączenia lepkich klawiszy jest naciśnięcie StickyKeys_Enableklawisza. Jeśli nie masz go zmapowanego na klawiaturze, możesz symulować naciskanie klawiszy za pomocą np. Xdotool:

> xdotool key StickyKeys_Enable
Guildenstern
źródło
-1

O ile mi wiadomo, Xorg tego nie obsługuje. Nie jest nie do pomyślenia, aby niestandardowy sterownik klawiatury zaimplementował to, ale nigdy nie spotkałem się z czymś takim.

mkaito
źródło
Mmm ... Naprawdę chciałbym to mieć bez konieczności uciekania się do Gnome'a ​​lub XFCE ... śmieciarza!
Macario