пользовательская раскладка клавиатуры -не может открыть включаемый файл с нами

используйте это:

sed -i -z -u 's/\n/ /g' reallyBigFile.log

-г, --ноль -данные
отдельные строки символами NUL

-u, --небуферизованный
загружать минимальные объемы данных из входных файлов и чаще очищать выходные буферы

0
16.01.2021, 23:25
1 ответ

Быстро strace loadkeys /usr/local/share/kbd/keymaps/personal.mapпоказывает, что только каталоги includeи текущий рабочий каталог ищутся файлы для включения и как можно проверить с помощьюlocate:

$ sudo updatedb
$ locate -r "keymaps.*\.inc$"
/usr/share/kbd/keymaps/i386/include/azerty-layout.inc
/usr/share/kbd/keymaps/i386/include/compose.inc
/usr/share/kbd/keymaps/i386/include/euro1.inc
/usr/share/kbd/keymaps/i386/include/linux-keys-bare.inc
/usr/share/kbd/keymaps/i386/include/linux-keys-extd.inc
/usr/share/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc
/usr/share/kbd/keymaps/i386/include/linux-with-modeshift-altgr.inc
/usr/share/kbd/keymaps/i386/include/linux-with-two-alt-keys.inc
/usr/share/kbd/keymaps/i386/include/qwerty-layout.inc
/usr/share/kbd/keymaps/i386/include/qwertz-layout.inc
/usr/share/kbd/keymaps/mac/include/apple-a1048-base.inc
/usr/share/kbd/keymaps/mac/include/apple-a1243-fn-reverse.inc
/usr/share/kbd/keymaps/mac/include/apple-a1243-fn.inc
/usr/share/kbd/keymaps/mac/include/mac-azerty-layout.inc
/usr/share/kbd/keymaps/mac/include/mac-linux-keys-bare.inc
/usr/share/kbd/keymaps/mac/include/mac-qwerty-layout.inc
/usr/share/kbd/keymaps/mac/include/mac-qwertz-layout.inc

действительно, все файлы.inc находятся в каталогах с именем include.

Мне не удалось найти объяснение механизма включения в kbd man-страницы, но это также можно сделать из исходного кода . код:

static const char *const include_dirpath0[] = {
    "",
    NULL
};
static const char *const include_dirpath1[] = {
    "",
    "../include/",
    "../../include/",
    NULL
};
static const char *const include_dirpath3[] = {
    DATADIR "/" KEYMAPDIR "/include/",
    DATADIR "/" KEYMAPDIR "/i386/include/",
    DATADIR "/" KEYMAPDIR "/mac/include/",
    NULL
};

Вы также можете видеть, что к включенным файлам добавлен суффикс .inc. автоматически:

static const char *const include_suffixes[] = {
    "",
    ".inc",
    NULL
};

Итак, для изготовления loadkeys /usr/local/share/kbd/keymaps/personal.mapнужно:

zcat /usr/share/kbd/keymaps/i386/qwerty/us.map.gz > /usr/local/share/kbd/keymaps/us.inc
1
18.03.2021, 22:36

Теги

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