Xorg compose key senza perdere preziose modalità key / bypass?


5

Vorrei impostare una chiave di composizione, ma le uniche opzioni disponibili nelle impostazioni di sistema di KDE (e tramite / usr / share / X11 / xkb / rules) sono:

compose:ralt         Right Alt
compose:lwin         Left Win
compose:rwin         Right Win
compose:menu         Menu
compose:lctrl        Left Ctrl
compose:rctrl        Right Ctrl
compose:caps         Caps Lock
compose:102          Less-than/Greater-than

Nessuno di quelli mi fa piacere però; "compose: caps" potrebbe essere ok, ma è già mappato su ctrl.

Esiste un'opzione per impostare un tasto (ad esempio alcuni di quei tasti funzione extra) o per ottenere il tasto stesso in qualche modo? (es. raltsarebbe OK, se potessi facilmente ottenere il comportamento originale della chiave (AltGr))

Mi piacerebbe avere qualcosa come Shift-AltGr per attivare la modalità Compose.

Immagino di poter aggiungere una regola extra, come è fatto per / con compose:102.. a cosa si riferisce 102? (non è qualcosa di scaricato tramite xev).

C'è anche un'opzione lv3:ralt_switch_multikey(Alt destra, Maiusc + Alt destra è Multi_Key), ma questo non ha funzionato come previsto (vedi http://bugs.kde.org/246472 ).

Risposte:


4

lv3:ralt_switch_multikey è quello che stavo cercando:

# But here it is: /usr/share/X11/xkb/rules/xorg.lst
# Anyway... what this is doing:
# lvl3:ralt_switch_multikey
#   right alt = AltGr = choose third shift level
#   shift + right alt = compose key aka Multi_Key

(tramite http://ndim.fedorapeople.org/stuff/radeonhd/xorg.conf )

Ho impostato questo tramite le impostazioni di sistema di KDE (Tastiera => Avanzate), in modo da avere quanto segue nel mio ~/.kde/share/config/kxkbrc:

Options=ctrl:nocaps,lv3:ralt_switch_multikey

+42 - wȯàkß łīkə ả čhą®µ ™ ;-) La cosa migliore è che le scorciatoie di caratteri nella mia mappa definita dall'utente funzionano ancora se uso AltGr+ Shift(quarto livello di spostamento) invece del meno comune Shift+ AltGr(ora Compose), e questo lo systemsettingsmantiene.
Punta orecchie

Non è necessario modificare il file di configurazione. Tale impostazione si trova in KDE 4.8.4 sotto "Tastiera" → "Avanzate" → "Tasto per passare al terzo livello di tastiera" → "Tasto Alt destro, Maiusc + tasto Alt destro è Tasto multiplo". Ecco perché sopravvive a un aggiornamento tramite la GUI. (Ho tradotto le etichette tedesche, quindi quelle inglesi possono variare.)
Pointed Ears

La domanda afferma che non funziona. Perché la risposta è accettata allora? Vedi anche: unix.stackexchange.com/questions/265834/…
Pavel Šimerda

@La risposta e la domanda di PavelŠimerda sono entrambe mie, e mentre uso una configurazione diversa, l'ho trovata così allora. Penso che potrebbe essere correlato al modo in cui lv3:ralt_switch_multikeyviene effettivamente utilizzato.
bluastra

1

Un altro approccio è usare xmodmap. Aggiungi quanto segue al tuo ~/.Xmodmap:

keycode 134 = ISO_Level3_Shift Multi_key

Questo è case sensitive. Il tasto alt destro ( AltGr) sulla mia tastiera sembra avere il codice chiave 134. Se questo non funziona, la probabile spiegazione è che la tua tastiera usa un numero diverso per quel tasto. Per scoprirlo, eseguirlo xev, premere il tasto che si desidera utilizzare e cercare la parte che dice "codice chiave XXX".

Ovviamente puoi usare qualsiasi tasto per lo scopo; per esempio,

keycode 38 = a Multi_key

farebbe in modo che la achiave fungesse da chiave di composizione (solo) quando spostata. L'incapacità di digitare il capitale Come sarebbe un evidente danno, quindi forse vuoi fare qualcos'altro ☺

Uso Shift + Shift con un trucco:

keysym Shift_L = Shift_L Multi_key
keysym Shift_R = Shift_R Multi_key

Questo fa sì che il tasto Maiusc sinistro funzioni come tasto Maiusc sinistro e il tasto Maiusc destro come tasto Maiusc destro, tranne che se si tiene premuto un tasto Maiusc, ogni tasto Maiusc si comporta come Compose. Alcuni scenari per illustrare:

Se si preme lo spostamento a sinistra, si preme lo spostamento a destra, si rilascia lo spostamento a destra e si rilascia lo spostamento a sinistra — si ottiene lo stesso effetto di se si fosse premuto un Composetasto fisico (le vecchie tastiere Sun avevano quelle, IIRC). Quindi in particolare:

  • ShiftShift+ :+ )produce uno smiley, ☺ (almeno con il mio ~/.XCompose)
  • ShiftShift+ a+ aproduce & aring; carattere, "å".

Se premi lo spostamento a sinistra, premi lo spostamento a destra, quindi rilascia i due tasti di spostamento nell'ordine opposto, otterrai lo stesso effetto di cui sopra.

Se si preme lo spostamento a sinistra e lo si rilascia nuovamente (senza spostamento a destra interveniente), si ottengono due eventi da tastiera:

  • un KeyPressevento perShift_L
  • un KeyReleaseevento perMulti_key

Questo perché quando si rilascia il tasto Maiusc sinistro, viene tenuto premuto un tasto Maiusc (quello sinistro -_-), quindi il tasto viene trattato come se Multi_keyfosse tutto ciò che ha mai fatto. Ciò non mi ha causato alcun problema evidente, ma forse un'applicazione vecchia e buggy potrebbe soffocare sul disadattamento KeyPressvs.KeyRelease

Si noti inoltre che l'interazione tra i tasti one-shot, i tasti modificatori e i tasti di stato (es a. ShiftE Caps Lock) interagiscono in modo divertente. Se si desidera utilizzare lo stesso tasto sia come tasto BLOC MAIUSC sia (quando si tiene premuto MAIUSC) un tasto di composizione, è possibile ottenere effetti funky. Mi sembra di ricordare che ottieni tutti gli effetti applicabili, che probabilmente non è quello che vuoi, ma sentiti libero di provarlo.

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.