come associare AltGr a <Ctrl> + <Alt>


11

Sto cercando di creare un equivalente Linux del layout ergonomico della tastiera Telugu chiamato Sarala (Hard la). Finora sono stato in grado di mappare tutti i tasti. Il layout utilizza le seguenti combinazioni di tasti per vari livelli.

None (Base): Level1
Shift: Level2
Ctrl + Alt: Level3
Ctrl + Alt + Shift:Level4

Dove come linux utilizza quanto segue per vari livelli.

None (Base): Level1
Shift: Level2
RAlt: Level3
RAlt + Shift:Level4

Per poter abbinare le combinazioni di tasti al mio layout, dovrei mappare AltGrcon un Ctrl+ Alt. Ho cercato senza successo attraverso vari file /usr/share/X11/xkb/. Qualcuno sa come posso legare ISO_Level3_Shiftcon Ctrl+ Alt?

key <RALT>  {
    symbols[Group1]= [ Mode_switch, Multi_key  ],
    virtualMods= AltGr
};

Se vuoi guardare il layout, è qui



2
Grazie, è molto istruttivo ma parla di tutto tranne la xkbconfigurazione.
ShaggyInjun,

Puoi consultare questa wiki da arch linux wiki e controllare la parte su Alt e Altgr (Livello 3). Non sono sicuro se questo ti aiuterà, ma sembra che ci siano molte informazioni su XKB
No Time,

Ho provato questo, xkb non riesce a caricare con un errore non così descrittivo. Non ho l'errore a portata di mano, ma posso collegarlo in seguito.
ShaggyInjun,

Risposte:


6

Devi definire un nuovo tipo di xkb. Puoi vedere degli esempi nella tua directory xkb / types (di solito /usr/share/X11/xkb/types). Lì puoi definire combinazioni arbitrarie di modificatori per ottenere diversi livelli di spostamento. Per il tuo problema, puoi usare qualcosa del genere:

type "C_A_to_L3" {
    modifiers = Control+Alt+Shift;
    map[None] = Level1;
    map[Shift] = Level2;
    map[Control+Alt] = Level3;
    map[Control+Alt+Shift] = Level4;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Alt Base";
    level_name[Level4] = "Shift Alt";
};

Quindi nel file dei simboli è possibile impostare quel tipo come predefinito o impostare in base alla chiave di quale tipo è. Nota che devi trovare il tipo in un file nella directory dei tipi e la definizione della chiave in un file nella directory dei simboli - xkb usa una rigida gerarchia di filesystem per trovare ogni componente.

Ho fatto un bel po 'di hacking sui layout di tastiera per costruire il mio layout personalizzato ( https://github.com/willghatch/hatchak ), che ha attraversato varie iterazioni in cui ho sperimentato cose strane. XKB può essere piuttosto fine e strano a volte, ma è ancora il sistema di tastiera più configurabile che abbia mai visto. I migliori riferimenti se hai più problemi sono:

[modifica: i link originali sono attualmente inattivi, ma per fortuna esiste archive.org]

https://web.archive.org/web/20150722164820/http://www.charvolant.org/~doug/xkb/html/index.html

e

https://web.archive.org/web/20190419170426/http://pascal.tsu.ru/en/xkb/

Attenzione: mentre questa è la migliore documentazione che ho trovato, lascia molti casi oscuri. In bocca al lupo.


Penso che la tua idea sia davvero utile, ma sto davvero lottando per usare il tipo creato nei file dei simboli come predefinito come hai detto. I file dei simboli che ho sul mio computer sono piuttosto lunghi e non vedo alcuna linea che assomigli a una definizione di un tipo predefinito.
Dave,

1
È possibile definire un valore predefinito per una sezione all'interno di un file di simboli impostando key.type. Probabilmente puoi vedere un esempio in /usr/share/X11/xkb/symbols/srvr_ctrl(o in un posto simile), nella sezione "no_srvr_keys". Ecco quello che ho: xkb_symbols "no_srvr_keys" {key.type = "TWO_LEVEL"; chiave <FK01> {[F1, F1]}; chiave <FK02> {[F2, F2]}; <etc ...>};
William Hatch,

Grazie per la risposta rapida. Penso che sarò in grado di applicarlo. Grazie mille in anticipo.
Dave,

Proprio come un feedback per tutti coloro che tornano su questa pagina anche molto tempo dopo. Per me questo approccio ha funzionato ora con una Fedora appena installata. Per qualche ragione (per me) sconosciuta, non ha funzionato con Mint quando ho scritto quel commento sopra. Ma ora funziona e mi fa risparmiare un sacco di tempo.
Dave,

-1

Da quello che mi sembra che tu abbia bisogno di un layout di tastiera che supporti AltGr, quindi puoi semplicemente cambiare il tasto di scelta rapida in "tastiera> scorciatoie> tasto caratteri alternativi" nel menu di configurazione. Normalmente puoi vederlo cambiando in un layout che "ha chiavi morte" o è scritto "AltGr chiavi morte"


Non sto chiedendo un uso personale, devo spedire il layout. Purtroppo questa è una cattiva risposta. Grazie comunque.
ShaggyInjun,
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.