Как привязать LSGT к левому элементу управления с помощью xkb?

Следующий скрипт AWK должен помочь, не используя слишком много памяти:

#!/usr/bin/awk -f

BEGIN {
    FS = ";"
}

{
    idx = match($2, "/[^/]+$")
    if (idx > 0) {
        path = substr($2, 1, idx)
        name = substr($2, idx + 1)
        if (paths[name] && paths[name] != path && !output[name]) {
            print name
            output[name] = 1
        }
        paths[name] = path
    }
}

Он извлекает путь и имя каждого файла и сохраняет последний увиденный путь для каждого имени. Если он ранее видел другой путь, он выводит имя, если только он уже не вывел его.

0
24.01.2020, 10:06
3 ответа

Я решил свою проблему, добавив ключевое слово replaceв первый блок кода. Теперь он читается как

partial modifier_keys alphanumeric_keys
xkb_symbols "lsgt_lctrl" {
   replace key <LSGT> { [Control_L] };
};

Я предполагаю, что вxkb(есть другое противоречивое определение для LSGT?)

примечание :поскольку я не зарегистрировался в первый раз, я не знаю, могу ли я правильно указать, что это я отвечаю на свой вопрос или что ответ действительно работает.

0
28.01.2020, 02:54

Я решил аналогичную проблему со следующим изменением в /usr/share/X11/xkb/keycodes/evdev

#        <LSGT> = 94;
#        <RCTL> = 105;
        <RCTL> = 94;

После этого "\&| *", известный как LSGT, который в моем случае занимал место правого контроля, работает как правый контроль. Недостатком является то, что на внешней клавиатуре правый контроль больше не работает после этого изменения.

Итак, чтобы LSGT работал как LCTL, попробуйте следующее

#        <LSGT> = 94;
#        <LCTL> = 37;
        <LCTL> = 94;
0
28.06.2020, 15:45

запуск setkbdmap -print > somefile.xkbраспечатывает конфигурацию XKB с расширенными макросами/директивами, как указано в этой ветке .

Если вы сравните это с нерасширенным выводом setkbdmap -print, проблемы с вашей конфигурацией могут быть более очевидными. это также дает вам файл с вашими кодами клавиш, перечисленными по порядку.

после просмотра этой конфигурации я обнаружил, что мои макросы/директивы XKB не раскрываются по порядку, в результате чего следующие строки оцениваются после того, как мои строки io(swapcaps)и ìo(intl)были включены.

    key <LVL3> {
        type= "ONE_LEVEL",
        symbols[Group1]= [ ISO_Level3_Shift ]
    };
    key <LSGT> {
        type= "FOUR_LEVEL",
        symbols[Group1]= [ backslash, bar, backslash, bar ]
    };

Кроме того, если вы перейдете к конфигурации клавиатуры (в модуле системных настроек KDE ), то в разделе «Раскладки» вы сможете создать предварительный просмотр своих раскладок. в этой ситуации предварительный просмотр дает лучший результат, чем анализ макетов с помощью xkbcomp /usr/share/X11/xkb/symbols/io $DISPLAYили setxkbmap -config ~/.config/me/xkb/io -print -verbose 10. как только вы получите предварительный просмотр для создания, вы должны увидеть символ «<>» на любой клавише, которую вы сопоставили/заменили.

Я пытаюсь сопоставить key <ESC> {[ LSGT ]}или использовать replace keyсо следующим скриптом ниже, а затем применить level5(lsgt_switch), чтобы получить дополнительный модключ --или, по крайней мере, получить расширенный диапазон символов для LaTeX/ Юля...

hidden partial
xkb_symbols "swapcaps" {
    key <ESC> {[ LSGT ]};
    key <CAPS> {[ Escape ]};
};

xkb_symbols "intl" {

    include "us(intl)"
    include "io(swapcaps)"
    include "level5(lsgt_switch)"

    name[Group1] = "Digimon - US (With Dead Keys)";

    key <SPCE> {[       space, underscore, nobreakspace, nobreakspace   ]};

    //key <TLDE> {[dead_grave, dead_tilde, grave, asciitilde ] };

    key <AE01> {[              exclam, 1,    exclamdown,      onesuperior ] };
    key <AE02> {[                  at, 2,   twosuperior, dead_doubleacute ] };
    key <AE03> {[          numbersign, 3, threesuperior,      dead_macron ] };
    key <AE04> {[              dollar, 4,      currency,         sterling ] };

    ////...
};

Некоторые примечания по кодам клавиш pc104 и pc105:

  • единственный код клавиши, которого нет на клавиатуре pc104, — это 93, который непосредственно предшествует key <LSGT> = 94. я все еще сталкиваюсь с проблемами. но странно, что этот ключ там вообще определен, так как единственная разница между pc104и pc105это добавленный ключ LSGT.
  • Я не могу найти фактическое определение pc105, которое, кажется, существует только в $XKB/symbols/pcкак символы.
0
01.03.2021, 03:09

Теги

Похожие вопросы