Рейтинг:2

Параметры xkb переопределяют специальную раскладку клавиатуры

флаг br

Я сделал специальную испанскую раскладку клавиатуры, включающую немецкую à на AltGr-s и скандинавскую æ à (ae, AE), ø à (oe, OE) и Ã¥ à (aring, Aring). ), на AltGr-e, AltGr-E, AltGr-o, AltGr-O, AltGr-a и AltGr-A соответственно. Знак â (EuroSign) был перемещен из AltGr-e в AltGr-5.

Это отлично работало на Ubuntu Budgie 21.04.С тех пор я вернулся к Ubuntu Budgie 20.04 LTS (свежая установка) на том же компьютере, скопировал пользовательский макет и сделал setxkbmap {custom_layout}. Внезапно на AltGr-e у меня получилось ¬, а на AltGr-5 у меня получилось ½. Я не могу увидеть, что происходит не так с приведенной ниже настройкой. Вы можете помочь?

// Модифицировано для настоящей испанской клавиатуры Джоном Томбсом.

частичные alphanumeric_keys по умолчанию
xkb_symbols "базовый" {

    включить "латынь (тип4)"

    имя[Группа1]="Испанский";

    key <AE01> {[1, восклицательный знак, полоса, восклицательный знак вниз]};
    key <AE03> { [ 3, точка в центре, числовой знак, фунты стерлингов ] };
    key <AE04> { [ 4, доллар, asciitilde, доллар ] };
    key <AE06> {[6, амперсанд, без знака, пять восьмых]};
    key <AE11> { [апостроф, вопрос, обратная косая черта, вопрос вниз]};
    key <AE12> { [exclamdown, questiondown, dead_tilde, asciitilde]};

    key <AD11> {[dead_grave, dead_circumflex, скобка влево, dead_abovering]};
    key <AD12> { [плюс, звездочка, правая скобка, dead_macron]};


    key <AC01> {[a, A, aring, Aring]};
    ключ <AD03> {[e, E, ae, AE]};
    key <AC10> {[ntilde, Ntilde, asciitilde, dead_doubleacute]};
    key <AC11> {[dead_acute, dead_diaeresis, braceleft, braceleft]};
    key <TLDE> { [мужской род, женский род, обратная косая черта, обратная косая черта]};

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

    включить "level3(ralt_switch)"
};

частичные alphanumeric_keys
xkb_symbols "подмигивающие ключи" {

    включить "es (базовый)"
    name[Group1]="Испанский (клавиши Win)";
    включить "еврознак (5)"
};

частичные alphanumeric_keys
xkb_symbols "Солнечные ключи" {

    включить "es (базовый)"

    key <AC11> {[dead_acute, dead_diaeresis, braceleft, braceleft]};
    key <AD11> {[dead_grave, dead_circumflex, скобка влево, dead_abovering]};
};

частичные alphanumeric_keys
xkb_symbols "солнечные ключи" {

    включить "es(Sundeadkeys)"

    name[Group1]="Испанский (с мертвыми клавишами Sun)";
};

частичные alphanumeric_keys
xkb_symbols "nodeadkeys" {

    включить "es (базовый)"

    name[Group1]="Испанский (без мертвых клавиш)";

    key <AD11> { [ могила, asciicircum, скобка влево, степень ] };
    key <AD12> { [плюс, звездочка, правая квадратная скобка, макрос]};
    ключ <AD03> {[e, E, ae, AE]};
    key <AC10> {[ntilde, Ntilde, asciitilde, dead_doubleacute]};
    key <AC10> {[ntilde, Ntilde, asciitilde, doubleacute]};
    key <AC11> {[острый, диэрезисный, braceleft, braceleft]};
    key <BKSL> {[ccedilla, Ccedilla, braceright, breve]};
    key <AB10> { [минус, подчеркивание, мертвая_нижняя точка, верхняя точка]};
};

// Испанское отображение (обратите внимание на обмен R-H)
частичные alphanumeric_keys
xkb_symbols "дворак" {

    name[Group1]="Испанский (Дворак)";

    key <TLDE> {[мужской род, женский род, обратная косая черта, степень]};
    key <AE01> {[ 1, восклицательный знак, бар, высший уровень]};
    key <AE02> {[ 2, quotedbl, at, twosuperior]};
    key <AE03> {[ 3, точка в центре, числовой знак, тройка выше]};
    ключ <AE04> {[ 4, доллар, asciitilde, одна четверть]};
    key <AE05> {[ 5, процентов, EuroSign, пять восьмых]};
    key <AE06> {[ 6, амперсанд, незнак, три четверти]};
    key <AE07> {[ 7, косая черта, половина, семь восьмых]};
    key <AE08> {[ 8, скобка слева, одна восьмая, три восьмых]};
    key <AE09> {[ 9, parenright, asciicircum ]};
    ключ <AE10> {[ 0, равно, могила, dead_doubleacute ]};
    key <AE11> {[апостроф, вопрос, dead_macron, dead_ogonek]};
    key <AE12> {[ восклицание, вопрос вниз, dead_breve, dead_abovedot]};

    key <AD01> {[точка, двоеточие, меньше, guillemotleft]};
    key <AD02> {[ запятая, точка с запятой, больше, правый угол ]};
    key <AD03> {[ntilde, Ntilde, lstroke, Lstroke]};
    key <AD04> {[p, P, параграф]};
    key <AD05> {[y, Y, yen]};
    ключ <AD06> {[ f, F, tslash, Tslash ]};
    key <AD07> {[ g, G, dstroke, Dstroke ]};
    key <AD08> {[c, C, цент, авторское право]};
    key <AD09> {[h, H, hstroke, Hstroke ]};
    key <AD10> {[l, L, sterling]};
    key <AD11> {[ dead_grave, dead_circumflex, скобка влево, dead_caron ]};
    key <AD12> {[плюс, звездочка, правая квадратная скобка, плюсминус]};

    ключ <AC01> {[ a, A, aring, Aring ]};
    клавиша <AC02> {[ о, о, ослэш, ослэш ]};
    key <AC04> {[ u, U, aring, Aring ]};
    ключ <AC05> {[ i, I, oe, ОЕ ]};
    ключ <AC06> {[ d, D, eth, ETH ]};
    ключ <AC07> {[ r, R, зарегистрированный товарный знак ]};
    клавиша <AC08> {[t, T, thorn, THORN]};
    клавиша <AC09> {[n,N,eng,ENG]};
    клавиша <AC10> {[s, S, ssharp, section]};
    key <AC11> {[ dead_acute, dead_diaeresis, braceleft, dead_tilde ]};
    key <BKSL> {[ccedilla, Ccedilla, braceright, dead_cedilla]};

    key <LSGT> {[ меньше, больше, guillemotleft, guillemotright ]};
    key <AB01> {[ минус, подчеркивание, дефис, макрон ]};
    ключ <AB02> {[q, Q, валюта]};
    клавиша <AB03> {[ j, J ]};
    ключ <AB04> {[к, к, кра]};
    клавиша <AB05> {[x, X, умножение, деление]};
    клавиша <AB06> {[ b, B ]};
    клавиша <AB07> {[м,м,мю]};
    клавиша <AB08> {[ w, W ]};
    клавиша <AB09> {[ v, V ]};
    клавиша <AB10> {[ z, Z ]};

    включить "level3(ralt_switch)"
};

частичные alphanumeric_keys
xkb_symbols "кошка" {

    включить "es (базовый)"

    name[Group1]="Каталонский (Испания, с точкой L посередине)";

    ключ <AC09> {[l, L, 0x1000140, 0x100013F]};
};

частичные alphanumeric_keys
xkb_symbols "аст" {

    включить "es (базовый)"

    name[Group1]="Asturian (Испания, с нижней точкой H и нижней точкой L)";

    ключ <AC06> { [h, H, 0x1001E25, 0x1001E24]};
    ключ <AC09> {[l, L, 0x1001E37, 0x1001E36]};
};

// Скопировано из macintosh_vndr/es
частичные alphanumeric_keys
xkb_symbols "макинтош" {
    включить "эс"
    name[Group1]= "Испанский (Macintosh)";
};

частичные alphanumeric_keys
xkb_symbols "olpc" {

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

    включить "нас (базовый)"
    имя[Группа1]="Испанский";

    key <AE00> {[мужской род, ordfeminine]};
    key <AE01> {[1, восклицательный знак, полоса]};
    key <AE02> { [ 2, цитируемая bl, at ] };
    key <AE03> { [ 3, dead_grave, numbersign, могила ] };
    key <AE05> {[5, процент, EuroSign, dead_circumflex]};
    key <AE06> {[6, амперсанд, незнак]};
    key <AE07> {[7, косая черта, обратная косая черта]};
    ключ <AE08> {[8, parenleft]};
    ключ <AE09> {[9, parenright]};
    ключ <AE10> {[0, равно]};
    key <AE11> {[апостроф, вопрос]};
    key <AE12> {[восклицательный знак, вопросительный знак]};

    ключ <AD03> {[e, E, ae, AE]};
    key <AD11> {[dead_acute, dead_diaeresis, острое, dead_abovering]};
    key <AD12> {[ скобка влево, скобка влево ] };

    key <AC01> {[a, A, aring, Aring]};
    ключ <AC10> {[нтильда, нтильда]};
    key <AC11> {[плюс, звездочка, мертвая_тильда]};
    key <AC12> {[правая скобка, правая скобка, раздел]};

    ключ <AB08> {[запятая, точка с запятой]};
    ключ <AB09> {[точка, двоеточие]};
    key <AB10> {[минус, подчеркивание]};

    key <I219> { [меньше, больше, ISO_Next_Group]};

    включить "level3(ralt_switch)"
};

частичные alphanumeric_keys
xkb_symbols "olpcm" {

    // Механическая (немембранная) раскладка испанской клавиатуры OLPC.
    // См.: http://wiki.laptop.org/go/OLPC_Spanish_Non-membrane_Keyboard

    включить "нас (базовый)"
    имя[Группа1]="Испанский";

    key <AE00> {[вопрос вниз, восклицательный знак, обратная косая черта]};
    key <AE01> {[1, восклицательный знак, полоса]};
    key <AE02> { [ 2, цитируемая bl, at ] };
    key <AE03> { [ 3, dead_grave, numbersign, могила ] };
    key <AE04> { [4, доллар, asciitilde, dead_tilde]};
    key <AE05> {[5, процент, EuroSign, dead_circumflex]};
    key <AE06> {[6, амперсанд, незнак]};
    key <AE07> {[7, косая черта, обратная косая черта]}; // нет метки '\' на olpcm, оставить для совместимости
    key <AE08> {[8, скобка слева, мужской род]};
    key <AE09> {[9, parenright, ordfeminine]};
    ключ <AE10> {[0, равно]};
    key <AE11> {[апостроф, вопрос]};

    ключ <AD03> {[e, E, ae, AE]};
    key <AD11> {[dead_acute, dead_diaeresis, dead_abovering, острое]};
    key <AD12> {[плюс, звездочка]};

    key <AC01> {[a, A, aring, Aring]};
    ключ <AC10> {[нтильда, нтильда]};
    ключ <AC10> {[нтильда, нтильда]};
    // нет AC11 или AC12 на olpcm

    ключ <AB08> {[запятая, точка с запятой]};
    ключ <AB09> {[точка, двоеточие]};
    key <AB10> {[минус, подчеркивание]};

    ключ <AA02> {[меньше, больше]};
    key <AA06> {[ скобка влево, скобка влево, ccedilla, Ccedilla ] };
    key <AA07> {[правая скобка, правая скобка]};

    включить "level3(ralt_switch)"
};

частичные alphanumeric_keys
xkb_symbols "мертвая тильда" {

    включить "es (базовый)"

    name[Group1]="Испанский (мертвая тильда)";

    key <AE04> { [4, доллар, мертвая_тильда, доллар]};
};

частичные alphanumeric_keys
xkb_symbols "olpc2" {

    // Модифицированный вариант международной раскладки США, специально для Перу
    // Контактное лицо: Саяминду Дасгупта <[email protected]>

    включить "нас (olpc)"
    name[Group1]="Испанский (OLPC2)";

    key <AE03> { [ 3, numbersign, dead_grave, dead_grave] }; // объединение могил
    ключ <I236> {[XF86Start]};

    включить "level3(ralt_switch)"
};

// ДОПОЛНИТЕЛЬНО:

частичные alphanumeric_keys
    xkb_symbols "sun_type6" {
    включить "sun_vndr/es(sun_type6)"
};

Вывод setxbkmap -query -verbose:

    $ setxkbmap -print -verbose
Попытка построить раскладку с использованием следующих компонентов:
коды клавиш: evdev+алиасы(qwerty)
типы: полный
совместимость: полный
символы: pc+es+inet(evdev)+group(win_space_toggle)+еврознак(e)+terminate(ctrl_alt_bksp)
Геометрия: ПК (ПК105)
xkb_keymap {
    xkb_keycodes {include "evdev+aliases(qwerty)" };
    xkb_types { включить "полный" };
    xkb_compat { включить "полный" };
    xkb_symbols { include "pc+es+inet(evdev)+group(win_space_toggle)+eurosign(e)+terminate(ctrl_alt_bksp)" };
    xkb_geometry { включает "pc (pc105)" };
};

Я вижу, что xkb применяет изменение к еврознаку. Я полагаю, что изменение внесено после прочтения файла раскладки клавиатуры выше. Итак, вопрос в том, как я навсегда остановлю xkb от внесения этого изменения.

Изменение не происходит из файла конфигурации клавиатуры:

$ кошка /etc/по умолчанию/клавиатура 
# ФАЙЛ КОНФИГУРАЦИИ КЛАВИАТУРЫ

# Обратитесь к странице руководства по клавиатуре(5).

XKBMODEL="pc105"
XKBLAYOUT="es"
ХКБВАРИАНТ=""
XKBOPTIONS=""

BACKSPACE="угадай"

Я также пытался использовать dconf-editor, согласно это, но он показывает только варианты выше, то есть без вариантов. Я также пробовал:

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

Никакой радости.

Так, что происходит? Помощь очень ценится...

Примечание. Языковой стандарт — en-us, а клавиатура — es-es.

Andra avatar
флаг tr
каков вывод `setxkbmap -query` до этих изменений?
ElToro1966 avatar
флаг br
Выводы setxkbmap -query добавлены выше.
ElToro1966 avatar
флаг br
Ах. Теперь я понимаю, почему EuroSign существует. Параметры перезаписывают то, что находится в файле, верно? Однако знак ½ на AltGr-5 до сих пор остается загадкой.
Andra avatar
флаг tr
эта модификация вообще ничего не меняет? попробуйте `setxkbmap -print -verbose 10`
ElToro1966 avatar
флаг br
@Андра, я уточнил вопрос. Я внес изменения непосредственно в файл(ы) раскладки клавиатуры, чтобы внести нужные изменения. Это работало на старой установке Ubuntu. Теперь я вижу, что xkb вносит изменения в знак евро через опции. Я предполагаю, что это происходит после того, как раскладка клавиатуры была прочитана. I Таким образом, я думаю, что мне нужно остановить xkb от внесения этого изменения, и все будет работать. Спасибо.
vanadium avatar
флаг cn
Вы пытались отключить опцию клавиатуры для знака евро на терминале с помощью setxkbmap - возможно, ваши настройки будут работать должным образом
ElToro1966 avatar
флаг br
@vanadium, это работает! Если я сделаю $ sudo setxkbmap -опция он избавляется от всех предыдущих вариантов, и $ sudo setxkbmap -опция еврознак:5 У меня знак евро работает на AltGr-5. Однако это не сохраняется при перезапусках. После перезапуска я получаю результат в ответе ниже. Как сделать его постоянным? Спасибо.
vanadium avatar
флаг cn
Должен быть /etc/default/keyboard, но он также может быть переопределен Xorg (точно так же, как Gnome переопределяет его для текущего пользователя)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.