Puncte:2

opțiunile xkb suprascriind aspectul special al tastaturii

drapel br

Am realizat un aspect special al tastaturii spaniole, care include à germană pe AltGr-s și scandinavă æ à (ae, AE), ø à (oe, OE) și Ã¥ à (aring, Aring). ), pe AltGr-e, AltGr-E, AltGr-o, AltGr-O, AltGr-a și, respectiv, AltGr-A. ⬠(EuroSign) a fost mutat de la AltGr-e la AltGr-5.

Acest lucru a funcționat excelent pe Ubuntu Budgie 21.04.De atunci, m-am mutat înapoi la Ubuntu Budgie 20.04 LTS (instalare proaspătă) pe aceeași mașină, am copiat peste aspectul personalizat și am făcut setxkbmap {custom_layout}. Dintr-o dată, pe AltGr-e am â¬, iar pe AltGr-5 am ½. Nu sunt capabil să văd ce nu merge bine cu configurarea de mai jos. Poți să ajuți?

// Modificat pentru o tastatură spaniolă adevărată de Jon Tombs.

chei alfanumerice parțiale implicite
xkb_symbols „de bază” {

    include „latină(tip4)”

    nume[Group1]="spaniolă";

    tasta <AE01> { [ 1, exclam, bar, exclamdown ] };
    tasta <AE03> { [ 3, centrat în punct, semn numeric, liră sterlină ] };
    cheie <AE04> { [ 4, dolar, asciitilde, dolar ] };
    tasta <AE06> { [ 6, ampersand, notsign, cinci optimi ] };
    tasta <AE11> { [apostrof, întrebare, bară oblică inversă, întrebare în jos ] };
    tasta <AE12> { [exclamdown, questiondown, dead_tilde, asciitilde ] };

    cheie <AD11> { [mormânt_mort, circumflex_moar, bracketleft, dead_overing ] };
    tasta <AD12> { [ plus, asterisc, bracketright, dead_macron ] };


    tasta <AC01> { [ a, A, aring, Aring ] };
    tasta <AD03> { [ e, E, ae, AE ] };
    cheie <AC10> { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] };
    cheie <AC11> { [dead_acute, dead_dieresis, braceleft, braceleft ] };
    tasta <TLDE> { [ masculin, saufeminin, backslash, backslash ] };

    cheie <BKSL> { [ ccedilla, Ccedilla, braceright, dead_breve ] };

    include „level3(ralt_switch)”
};

chei_alfanumerice parțiale
xkb_symbols „winkeys” {

    include "es (de bază)"
    name[Group1]="Spaniolă (chei Win)";
    include „eurosign(5)”
};

chei_alfanumerice parțiale
xkb_symbols „Sundeadkeys” {

    include "es (de bază)"

    cheie <AC11> { [dead_acute, dead_dieresis, braceleft, braceleft ] };
    cheie <AD11> { [mormânt_mort, circumflex_moar, bracketleft, dead_overing ] };
};

chei_alfanumerice parțiale
xkb_symbols „sundeadkeys” {

    include „es(Sundeadkeys)”

    name[Group1]="Spaniolă (cu cheile Sun dead)";
};

chei_alfanumerice parțiale
xkb_symbols „nodeadkeys” {

    include "es (de bază)"

    name[Group1]="Spaniolă (fără chei moarte)";

    cheie <AD11> { [ mormânt, asciicircum, bracketleft, grad ] };
    tasta <AD12> { [ plus, asterisc, paranteză dreapta, macron ] };
    tasta <AD03> { [ e, E, ae, AE ] };
    cheie <AC10> { [ ntilde, Ntilde, asciitilde, dead_doubleacute ] };
    cheie <AC10> { [ ntilde, Ntilde, asciitilde, doubleacute ] };
    cheie <AC11> { [ acut, dieresis, braceleft, braceleft ] };
    cheie <BKSL> { [ ccedilla, Ccedilla, braceright, breve ] };
    tasta <AB10> { [ minus, liniuță de subliniere, punct_dedesubt, punct deasupra ] };
};

// Cartografiere spaniolă (notați schimbul R-H)
chei_alfanumerice parțiale
xkb_symbols „dvorak” {

    nume[Group1]="Spaniolă (Dvorak)";

    tasta <TLDE> {[ masculin, saufeminin, backslash, grad ]};
    tasta <AE01> {[ 1, exclam, bar, onesuperior ]};
    tasta <AE02> {[ 2, citatbl, at, twosuperior ]};
    tasta <AE03> {[ 3, punct centrat, semn numeric, trei superioare ]};
    cheia <AE04> {[ 4, dolar, asciitilde, un sfert ]};
    tasta <AE05> {[ 5, procente, EuroSign, cinci optimi ]};
    tasta <AE06> {[ 6, ampersand, notsign, trei sferturi ]};
    tasta <AE07> {[ 7, bară oblică, jumătate, șapte optime ]};
    tasta <AE08> {[ 8, parenstânga, o optime, trei optime ]};
    tasta <AE09> {[ 9, parenright, asciicircum ]};
    tasta <AE10> {[ 0, egal, grav, dead_doubleacute ]};
    cheie <AE11> {[ apostrof, întrebare, dead_macron, dead_ogonek ]};
    tasta <AE12> {[ exclamdown, questiondown, dead_breve, dead_abovedot ]};

    tasta <AD01> {[ punct, două puncte, mai puțin, guillemotleft ]};
    tasta <AD02> {[ virgulă, punct și virgulă, mai mare, guillemotright ]};
    tasta <AD03> {[ ntilde, Ntilde, lstroke, Lstroke ]};
    tasta <AD04> {[ p, P, paragraful ]};
    tasta <AD05> {[ y, Y, yen ]};
    tasta <AD06> {[ f, F, slash, Tslash ]};
    tasta <AD07> {[ g, G, dstroke, Dstroke ]};
    tasta <AD08> {[ c, C, cent, copyright ]};
    tasta <AD09> {[ h, H, hstroke, Hstroke ]};
    cheia <AD10> {[ l, L, sterlină ]};
    cheie <AD11> {[ mormânt_mort, circumflex_moar, bracketleft, dead_caron ]};
    tasta <AD12> {[ plus, asterisc, paranteză dreapta, plusminus ]};

    tasta <AC01> {[ a, A, aring, Aring ]};
    tasta <AC02> {[ o, O, oslash, Oslash ]};
    tasta <AC04> {[ u, U, aring, Aring ]};
    tasta <AC05> {[ i, I, oe, OE ]};
    cheia <AC06> {[ d, D, eth, ETH ]};
    tasta <AC07> {[ r, R, înregistrat, marcă ]};
    cheie <AC08> {[ t, T, ghimpe, THIN ]};
    tasta <AC09> {[ n, N, eng, ENG ]};
    tasta <AC10> {[ s, S, sharp, secțiune ]};
    cheie <AC11> {[ dead_acute, dead_diaeresis, braceleft, dead_tilde ]};
    cheie <BKSL> {[ ccedilla, Ccedilla, braceright, dead_cedilla ]};

    cheie <LSGT> {[ mai puțin, mai mare, guillemotleft, guillemotright ]};
    tasta <AB01> {[ minus, subliniere, cratima, macron ]};
    tasta <AB02> {[ q, Q, valută ]};
    tasta <AB03> {[ j, J ]};
    tasta <AB04> {[ k, K, kra ]};
    tasta <AB05> {[ x, X, înmulțire, împărțire ]};
    tasta <AB06> {[ b, B ]};
    tasta <AB07> {[ m, M, mu ]};
    tasta <AB08> {[ w, W ]};
    tasta <AB09> {[ v, V ]};
    tasta <AB10> {[ z, Z ]};

    include „level3(ralt_switch)”
};

chei_alfanumerice parțiale
xkb_symbols „pisica” {

    include "es (de bază)"

    name[Group1]="Catalană (Spania, cu punct mijlociu L)";

    tasta <AC09> { [ l, L, 0x1000140, 0x100013F ] };
};

chei_alfanumerice parțiale
xkb_symbols „ast” {

    include "es (de bază)"

    name[Group1]="Asturiană (Spania, cu punctul de jos H și punctul de jos L)";

    tasta <AC06> { [ h, H, 0x1001E25, 0x1001E24 ] };
    tasta <AC09> { [ l, L, 0x1001E37, 0x1001E36 ] };
};

// Copiat de pe macintosh_vndr/es
chei_alfanumerice parțiale
xkb_symbols „mac” {
    include "es"
    name[Group1]= „Spaniolă (Macintosh)”;
};

chei_alfanumerice parțiale
xkb_symbols „olpc” {

    // http://wiki.laptop.org/go/OLPC_Spanish_Keyboard

    includeți „noi (de bază)”
    nume[Group1]="spaniolă";

    tasta <AE00> { [ masculin, saufeminin ] };
    tasta <AE01> { [ 1, exclam, bar ] };
    tasta <AE02> { [ 2, citatbl, la ] };
    cheie <AE03> { [ 3, mormânt_mort, semn numeric, mormânt ] };
    tasta <AE05> { [ 5, procente, EuroSign, dead_circumflex ] };
    tasta <AE06> { [ 6, ampersand, notsign ] };
    tasta <AE07> { [ 7, bară oblică, bară oblică inversă ] };
    tasta <AE08> { [ 8, parentleft ] };
    tasta <AE09> { [ 9, parenright ] };
    tasta <AE10> { [ 0, egal ] };
    tasta <AE11> { [ apostrof, întrebare ] };
    tasta <AE12> { [ exclamdown, questiondown ] };

    tasta <AD03> { [ e, E, ae, AE ] };
    cheie <AD11> { [ dead_acute, dead_diaeresis, acute, dead_overing ] };
    tasta <AD12> { [ bracketleft, braceleft ] };

    tasta <AC01> { [ a, A, aring, Aring ]};
    tasta <AC10> { [ ntilde, Ntilde ] };
    tasta <AC11> { [ plus, asterisc, dead_tilde ] };
    tasta <AC12> { [ bracketright, braceright, section ] };

    tasta <AB08> { [ virgulă, punct și virgulă ] };
    tasta <AB09> { [ punct, două puncte ] };
    tasta <AB10> { [ minus, subliniere ] };

    tasta <I219> { [ mai puțin, mai mare, ISO_Next_Group ] };

    include „level3(ralt_switch)”
};

chei_alfanumerice parțiale
xkb_symbols „olpcm” {

    // Dispoziție de tastatură spaniolă OLPC mecanică (fără membrană).
    // A se vedea: http://wiki.laptop.org/go/OLPC_Spanish_Non-membrane_Keyboard

    includeți „noi (de bază)”
    nume[Group1]="spaniolă";

    tasta <AE00> { [ întrebare jos, exclamdown, backslash ] };
    tasta <AE01> { [ 1, exclam, bar ] };
    tasta <AE02> { [ 2, citatbl, la ] };
    cheie <AE03> { [ 3, mormânt_mort, semn numeric, mormânt ] };
    cheie <AE04> { [ 4, dolar, asciitilde, dead_tilde ] };
    tasta <AE05> { [ 5, procente, EuroSign, dead_circumflex ] };
    tasta <AE06> { [ 6, ampersand, notsign ] };
    tasta <AE07> { [ 7, bară oblică, bară oblică inversă ] }; // fără etichetă „\” pe olpcm, lăsați pentru compatibilitate
    tasta <AE08> { [ 8, parentleft, masculin ] };
    tasta <AE09> { [ 9, dreptul părintelui, ordfeminin ] };
    tasta <AE10> { [ 0, egal ] };
    tasta <AE11> { [ apostrof, întrebare ] };

    tasta <AD03> { [ e, E, ae, AE ] };
    cheie <AD11> { [ dead_acute, dead_diaeresis, dead_overing, acute ] };
    tasta <AD12> { [ plus, asterisc ] };

    tasta <AC01> { [ a, A, aring, Aring ]};
    tasta <AC10> { [ ntilde, Ntilde ] };
    tasta <AC10> { [ ntilde, Ntilde ] };
    // nu AC11 sau AC12 pe olpcm

    tasta <AB08> { [ virgulă, punct și virgulă ] };
    tasta <AB09> { [ punct, două puncte ] };
    tasta <AB10> { [ minus, subliniere ] };

    tasta <AA02> { [ mai puțin, mai mare ] };
    tasta <AA06> { [ bracketleft, braceleft, ccedilla, Ccedilla ] };
    tasta <AA07> { [ bracketright, braceright ] };

    include „level3(ralt_switch)”
};

chei_alfanumerice parțiale
xkb_symbols „deadtilde” {

    include "es (de bază)"

    nume[Group1]="Spaniolă (tilde moartă)";

    cheie <AE04> { [ 4, dolar, dead_tilde, dolar ] };
};

chei_alfanumerice parțiale
xkb_symbols „olpc2” {

    // Varianta modificată a aspectului US International, special pentru Peru
    // Contact: Sayamindu Dasgupta <[email protected]>

    includeți „ne(olpc)”
    nume[Group1]="Spaniolă (OLPC2)";

    tasta <AE03> { [ 3, numere, mormânt_mort, mormânt_mort] }; // combinând mormânt
    tasta <I236> { [ XF86Start ] };

    include „level3(ralt_switch)”
};

// IN PLUS:

chei_alfanumerice parțiale
    xkb_symbols „sun_type6” {
    includeți „sun_vndr/es(sun_type6)”
};

Ieșirea setxbkmap -query -verbose:

    $ setxkbmap -print -verbose
Încercarea de a construi keymap folosind următoarele componente:
coduri cheie: evdev+aliases(qwerty)
tipuri: complete
compat: complet
simboluri: pc+es+inet(evdev)+group(win_space_toggle)+eurosign(e)+terminate(ctrl_alt_bksp)
geometrie: pc(pc105)
xkb_keymap {
    xkb_keycodes { include „evdev+aliases(qwerty)” };
    xkb_types { include "complet" };
    xkb_compat { include "complet" };
    xkb_symbols { includ „pc+es+inet(evdev)+group(win_space_toggle)+eurosign(e)+terminate(ctrl_alt_bksp)” };
    xkb_geometry { include "pc(pc105)"};
};

Văd că xkb aplică o modificare la eurosign. Presupun că schimbarea se face după citirea fișierului (fișierelor) de aspect al tastaturii de mai sus. Deci întrebarea este cum opresc permanent xkb să facă acea schimbare.

Modificarea nu provine din fișierul de configurare a tastaturii:

$ cat /etc/default/keyboard 
# FIȘIER DE CONFIGURARE TASTATURĂ

# Consultați pagina de manual pentru tastatură(5).

XKBMODEL="pc105"
XKBLAYOUT="es"
XKBVARIANT=""
XKBOPTIONS=""

BACKSPACE="ghici"

De asemenea, am încercat să folosesc dconf-editor, conform acest, dar arată doar opțiunile de mai sus, adică fără opțiuni. am incercat si eu:

sudo gsettings set org.gnome.desktop.input-sources xkb-options "['grp:win_space_toggle', 'terminate:ctrl_alt_bksp']"

Nicio bucurie.

Deci ce se întâmplă? Ajutor mult apreciat...

Notă: Localizarea este en-us, în timp ce tastatura este es-es.

Andra avatar
drapel tr
care este rezultatul `setxkbmap -query` înainte de aceste modificări?
ElToro1966 avatar
drapel br
Ieșirile setxkbmap -query adăugate mai sus.
ElToro1966 avatar
drapel br
Ah. Acum înțeleg de ce EuroSign este acolo. Opțiunile suprascriu ceea ce este în fișier, nu? Totuși, semnul ½ de pe AltGr-5 este încă un mister.
Andra avatar
drapel tr
modificarea asta schimbă ceva? încercați `setxkbmap -print -verbose 10`
ElToro1966 avatar
drapel br
@Andra, am clarificat întrebarea. Am făcut modificări direct în fișierul (fișierele) cu aspectul tastaturii pentru a face modificările pe care le-am dorit. Asta a funcționat la vechea instalare Ubuntu. Acum, văd că xkb face modificări semnului euro prin opțiuni. Presupun că asta se întâmplă după ce a fost citită aspectul tastaturii. Prin urmare, cred că trebuie să opresc xkb să facă acea schimbare și totul ar funcționa. Mulțumiri.
vanadium avatar
drapel cn
Ați încercat să dezactivați opțiunea de tastatură pentru semnul euro la terminal folosind setxkbmap - poate că personalizările dvs. vor funcționa așa cum vă așteptați
ElToro1966 avatar
drapel br
@vanadium, asta funcționează! Daca eu fac $ sudo setxkbmap -option scapă de toate opțiunile anterioare și $ sudo setxkbmap -option eurosign:5 Obțin semnul euro care funcționează pe AltGr-5. Cu toate acestea, acest lucru nu este persistent prin reporniri. După repornire, primesc rezultatul în răspunsul de mai jos. Cum o fac permanent? Mulțumiri.
vanadium avatar
drapel cn
Ar trebui să fie /etc/default/keyboard, dar poate fi suprascris și de Xorg (la fel cum Gnome îl înlocuiește pentru utilizatorul curent)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.