A cosa serve il modificatore Mode_switch?


29

Giocando con xmodmapho incontrato un tasto di modifica non avevo sentito parlare di: Mode_switch. Sembra avere qualcosa a che fare con l'inserimento di caratteri speciali.

L'ho assegnato a un tasto ma sembra non avere alcun effetto. Cosa serve? È diverso da ISO_Level3_Shift(Alt Gr) ?



Collegamento a una domanda correlata: unix.stackexchange.com/questions/461972/…
Jeff Schaller

Risposte:


29

Mode_switchè il nome vecchio stile (pre-XKB) del tasto chiamato AltGrin molti layout di tastiera. È simile al fatto Shiftche quando si preme un tasto corrispondente a un carattere, si ottiene un carattere diverso se si preme Shifto AltGrviene premuto anche. Diversamente Shift, Mod_switchnon è un modificatore in senso X11 perché normalmente si applica ai caratteri, non ai tasti funzione, quindi le applicazioni devono solo eseguire una ricerca di caratteri per ottenere l'effetto desiderato.

ISO_Level3_Shiftè la versione XKB di questa chiave. In generale, XKB è molto più complicato e può fare cose extra fantasiose. Il meccanismo di XKB è più generale in quanto consente ai layout di tastiera di variare in base a quali tasti sono influenzati da quali modificatori, generalizza i modificatori appiccicosi ( CapsLockstile) e la pressione simultanea ( Shiftstile) e così via.


Fantastico sapere che ISO_Level3_Shiftpuò agire "appiccicosamente", stavo cercando quella funzionalità da molto tempo: unix.stackexchange.com/questions/39014/…
vemv

@Gilles Quindi, sono AltGre Mode_switchle stesse chiavi? In caso contrario, in questo collegamento , sembrano come se fossero le stesse cose. Potresti chiarire un po 'questo?
Utku,

@Utku Mode_switche ISO_Level3_Shiftfai la stessa cosa in modi leggermente diversi. Non pretendo di capire le differenze; il più delle volte non contano, ma ricordo che il mescolare xmodmap con i nomi XKB di tanto in tanto ha fatto sì che i modificatori non funzionassero correttamente.
Gilles 'SO- smetti di essere malvagio' il

@Gilles Anche io non capisco le differenze, ma sto finendo con le us(cz_sk_de)funzionalità o con i mapping xmodmap personalizzati per alcune chiavi (virgola per esempio) a seconda che AltGrsia Mode_switcho ISO_Level3_Shiftnon riesca a ottenere entrambe le funzioni contemporaneamente.
Pavel Šimerda,

4
I tasti appiccicosi non sono in CapsLockstile. I tasti permanenti sono chiamati "latch" e i tasti di blocco sono chiamati blocchi. I tasti permanenti vengono rilasciati dopo aver premuto il successivo non modificatore mentre i tasti di blocco sono attivi fino a quando non vengono premuti nuovamente.
Guildenstern,

12

Questa risposta non intende contraddire la risposta di @Gilles, ma è destinata a descrivere un altro aspetto della gestione degli input di che ritengo essere "sotto-illuminato" nella sua risposta.

Puoi usare entrambi ISO_Level3_Shift(Alt-Gr) e Mode_switchallo stesso tempo con risultati diversi . Richiede una configurazione, ma puoi averli entrambi e usarli per produrre 6 diversi tasti per ogni tasto della tastiera fisica!

Puoi ad esempio configurare Tabper essere Mode_switchtenuto con e , ad esempio il tasto con l'etichetta "H" sulla tastiera potrebbe produrre i seguenti caratteri / tasti:

h
H
← (Cursor)
← (Symbol)

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

Quindi, per tornare alla tua domanda: IL3Se Mode_switchpuò essere configurato per significare cose diverse, quindi puoi avere i tasti cursore e ~ 200 caratteri utili dalle lingue (accentate), dal disegno a scatola e dal set di caratteri tecnici sui 35 tasti di le righe di 3 lettere.

Per realizzare quanto sopra:

# 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"

esempio per 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'

Wow! Vedo cosa intendi nel tuo secondo paragrafo ora, mi hai appena reso felice 😉 Non ho più bisogno di copiare e incollare da htmlarrows.com per scrivere cose del genere fn: A → B.
Patrick McLaren,

Penso che il modo normale di farlo sia usando ISO_Level5_Shift. Questo produce 8 livelli, il settimo è lvl3+lvl5+Hecc.
Toothrot

1

Mode_shiftin Xkb è un tasto Maiusc per gruppi o layout. Se si dispone di un layout con più gruppi, è possibile tenere premuto questo tasto per accedere al gruppo successivo. Se si dispone di più layout, è possibile tenere premuto questo tasto per spostarsi tra i layout († 1).

Così Mode_shiftè per i gruppi ciò che Shift(o Shift_Le Shift_R, per usare i nomi keysym) è per livelli.

Questo potrebbe diventare più chiaro se consideriamo che Mode_shiftha un alias chiamato ISO_Group_Shift(† 2). Ci sono anche i tasti chiamati ISO_Group_Latche ISO_Group_Lockche corrispondono a ISO_Level2_Latch(Latch Shift) e Shift_Lock, rispettivamente († 3).

Esistono anche diversi alias per diversi script:

  • kana_switch
  • Arabic_switch
  • Greek_switch
  • Hebrew_switch
  • Hangul_switch

† 1: si basa sulla mia comprensione dei "gruppi" e dei "layout" di Xkb. Sembra che siano trattati allo stesso modo per quanto riguarda la selezione tra loro con tasti come questo.

† 2: lo sto basando sul file keysymdef.hin questo repository Git alla revisione ab8666661fc6 (“Aggiungi XF86XK_AudioPreset”, 10-05-2017). Sulle installazioni probabilmente troverai questo file su /usr/include/X11/keysymdef.h.

† 3: esiste anche una chiave ISO_Lock, una specie di chiave di blocco per scopi generici.

Il significato della AltGrchiave

Gilles menzionò nella sua risposta la connessione con la AltGrchiave:

Mode_switchè il nome vecchio stile (pre-XKB) del tasto chiamato AltGrin molti layout di tastiera.

Ciò mi porta a sospettare che "AltGr" potrebbe significare "gruppo alternativo / alternativo", poiché Mode_switchviene utilizzato per spostare i gruppi. Questo si è rivelato essere sbagliato, tuttavia. Secondo la pagina di Wikipedia sul AltGrtasto , "AltGr" sembra provenire da tastiere IBM e nei loro manuali afferma che è un'abbreviazione di "grafica alternativa". Ciò ha senso, poiché sembra probabile che l'uso della tastiera per disegnare "grafici" (caratteri di disegno a scatola utilizzati nelle interfacce utente di testo) sia arrivato molto prima che ci fosse un buon supporto per passare rapidamente da uno script all'altro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.