Do czego służy modyfikator Mode_switch?


29

Gry z xmodmapnatknąłem modyfikator klucza nie słyszał o: Mode_switch. Wydaje się, że ma to coś wspólnego z wstawianiem znaków specjalnych.

Przypisałem go do klucza, ale wydaje się, że nie ma żadnego efektu. Po co to jest? Czy różni się od ISO_Level3_Shift(Alt Gr) ?



Linkowanie w powiązanym pytaniu: unix.stackexchange.com/questions/461972/…
Jeff Schaller

Odpowiedzi:


29

Mode_switchto nazwa klucza w starszym stylu (wcześniejsza niż XKB), która jest wywoływana AltGrna wielu układach klawiatury. Jest ona podobna do Shift, że po naciśnięciu przycisku, który odpowiada charakter, otrzymasz inny charakter, jeśli Shiftlub AltGrteż przycisku. W przeciwieństwie do Shift, Mod_switchnie jest modyfikatorem w sensie X11, ponieważ zwykle dotyczy znaków, a nie klawiszy funkcyjnych, więc aplikacje muszą tylko wyszukiwać znaki, aby uzyskać pożądany efekt.

ISO_Level3_Shiftjest wersją tego klucza w wersji XKB. Ogólnie rzecz biorąc, XKB jest o wiele bardziej skomplikowane i może robić dodatkowe wymyślne rzeczy. Mechanizm XKB jest bardziej ogólny, ponieważ pozwala na różne układy klawiatury, w zależności od tego, które klawisze mają wpływ na jakie modyfikatory, uogólnia modyfikatory lepkie ( CapsLockstyl) i jednoczesne naciśnięcie ( Shiftstyl) i tak dalej.


ISO_Level3_ShiftDobrze wiedzieć, że może działać „lepko”, od dłuższego czasu szukałem tej funkcji: unix.stackexchange.com/questions/39014/…
vemv

@Gilles Więc, są AltGri Mode_switchte same klucze? Jeśli nie, w tym linku brzmią, jakby były tymi samymi rzeczami. Czy mógłbyś to trochę wyjaśnić?
Utku

@Utku Mode_switchi ISO_Level3_Shiftzrób to samo na nieco inne sposoby. Nie twierdzę, że rozumiem różnice; przez większość czasu nie mają znaczenia, ale pamiętam, że mieszanie xmodmap z nazwami XKB czasami powodowało, że modyfikatory nie działały prawidłowo.
Gilles 'SO - przestań być zły'

@Gilles Też nie rozumiem różnic, ale kończę albo na us(cz_sk_de)funkcjach, albo na niestandardowych mapowaniach xmodmap dla niektórych kluczy (na przykład przecinków) w zależności od tego, czy obie funkcje AltGrsą, ale nie mogą uzyskać jednocześnie. Mode_switchISO_Level3_Shift
Pavel Šimerda

4
Lepkie klucze nie są w CapsLockstylu. Lepkie klucze nazywane są „zatrzaskami”, a klucze do zamków nazywane są zamkami. Lepkie klawisze są zwalniane po naciśnięciu następnego niemodyfikatora, podczas gdy klawisze blokady działają aż do ponownego naciśnięcia.
Guildenstern,

12

Ta odpowiedź nie ma odpowiedzi w sprzeczności @Gilles', ale ma opisywać inny aspekt Podawanie który czuję jest «niedostatecznie oświetlone» w swojej odpowiedzi.

Możesz używać jednocześnie ISO_Level3_Shift(Alt-Gr) i Mode_switchjednocześnie z różnymi wynikami . Wymaga to pewnej konfiguracji, ale możesz mieć je obie i użyć ich do wyprodukowania 6 różnych klawiszy na fizyczny klawisz klawiatury!

Można np configure Tabsię Mode_switchpodczas rozmowy z i , następnie np klawisz oznaczony „H” na klawiaturze może powodować następujące znaki / klawisze:

h
H
← (Cursor)
← (Symbol)

with H
with ShiftH
with AltGrH
with AltGrShiftH
with TabH
with TabShiftH

Tak więc, aby wrócić wokół na pytanie: IL3Sa Mode_switchmoże być skonfigurowany tak, aby oznaczać różne rzeczy, więc można mieć kursorów i ~ 200 użytecznych znaki z (akcentowane) języków, box-rysunku i zestaw znaków technicznej na 35 kluczy z 3 rzędy liter.

Aby osiągnąć powyższe:

# Initial Setup
xmodmap -e 'keycode 23 = Mode_switch ISO_Left_Tab Tab ISO_Left_Tab Tab ISO_Left_Tab'
xmodmap -e 'keycode any = Tab'
xcape -e "Mode_switch=Tab"

przykład dla H:

xmodmap -pke | grep 'h H'
# Make note of the keycode, note the 8 columns after the `=`,
# then edit and feed back into xmodmap with:
xmodmap -e 'keycode  43 = h H lowrightcorner uprightcorner Left leftarrow h H'

Łał! Rozumiem, co masz na myśli w drugim akapicie, właśnie zrobiłeś mój dzień 😉 Nie muszę już kopiować i wklejać z htmlarrows.com, aby pisać takie rzeczy fn: A → B.
Patrick McLaren,

Myślę, że normalnym sposobem na to jest użycie ISO_Level5_Shift. Daje to 8 poziomów, siódmym jest lvl3+lvl5+H& c.
Toothrot

1

Mode_shiftw Xkb jest klawiszem Shift dla grup lub układów. Jeśli masz układ z wieloma grupami, możesz przytrzymać ten klawisz, aby uzyskać dostęp do następnej grupy. Jeśli masz kilka układów, możesz przytrzymać ten klawisz, aby przełączać się między układami († 1).

Podobnie Mode_shiftjest z grupami, co Shift(lub Shift_Li Shift_Rużywanie nazw kluczy) oznacza poziomy.

Może to stać się bardziej jasne, jeśli weźmiemy pod uwagę, że Mode_shiftma on alias o nazwie ISO_Group_Shift(† 2). Istnieje również klawisze zwanych ISO_Group_Latchi ISO_Group_Lockktóre odpowiadają ISO_Level2_Latch(zatrzask przesunięcia) i Shift_Lockodpowiednio († 3).

Istnieje również szereg aliasów dla różnych skryptów:

  • kana_switch
  • Arabic_switch
  • Greek_switch
  • Hebrew_switch
  • Hangul_switch

† 1: Opiera się to na moim zrozumieniu „grup” i „układów” Xkb. Wygląda na to, że są one traktowane tak samo, jak wybór między nimi za pomocą takich klawiszy.

† 2: Opieram to na pliku keysymdef.hw tym repozytorium Git w wersji ab8666661fc6 („Dodaj XF86XK_AudioPreset”, 10.05.2017). Podczas instalacji prawdopodobnie znajdziesz ten plik na /usr/include/X11/keysymdef.h.

† 3: Istnieje również klucz ISO_Lock, rodzaj klucza zamka ogólnego przeznaczenia.

Znaczenie AltGrklucza

Gilles w swojej odpowiedzi wspomniał o związku z AltGrkluczem:

Mode_switchto nazwa klucza w starszym stylu (wcześniejsza niż XKB), która jest wywoływana AltGrna wielu układach klawiatury.

Doprowadziło mnie to do podejrzenia, że ​​„AltGr” może oznaczać „alternatywną / alternatywną grupę”, ponieważ Mode_switchsłuży do przenoszenia grup. Okazało się to jednak błędne. Według strony Wikipedia na AltGrklucz , „AltGr” wydaje się pochodzić z klawiatur IBM, a w ich podręcznikach jest napisane, że jest to skrót od „alternate grafika”. Ma to sens, ponieważ wydaje się prawdopodobne, że używanie klawiatury do rysowania „grafiki” (znaki rysowania ramek używane w tekstowych interfejsach użytkownika) przyszło na długo przed dobrym wsparciem szybkiego przełączania między wieloma skryptami.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.