LINUX.ORG.RU

История изменений

Исправление debugger, (текущая версия) :

Если ты запустишь xkbcomp с ключиком -xkb, то получишь свою карту клавиатуры в человекочитаемом виде (только не запускай это в ~/.config/xkb, потому что ketmap.xkb будет затёрт):

$ xkbcomp -xkb -I$HOME/.config/xkb $HOME/.config/xkb/keymap.xkb
$ less keymap.xkb 

И там можно увидеть кое-что интересное:

<...>
xkb_symbols "pc+rus(tw)+eng(eng)+inet(evdev)" {

    name[group1]="English (US)";
    name[group2]="Russian (typewriter)";
<...>
    key <AD01> {
        type= "ALPHABETIC",
        symbols[Group1]= [               q,               Q ]
    };
<...>

То есть имена-то даются двум группам, но никаких символов во второй группе не определено (я не вижу symbols[Group2]=[...]). Так как вторая группа фактически отсутствует, то и переключение не даёт эффекта.

Вторую группу ты загружаешь неправильно. Надо вот так (в *твоём* файле keymap.xkb):

xkb_symbols   {
        include "pc+rus(tw):2+eng(eng)+inet(evdev)"
        include "capslock(grouplock)"
        include "compose(rctrl)"
};

Обрати внимание на двоеточие и двойку.

А вообще непонятно зачем ты всё это делаешь. Чтобы сделать свою раскладку, обычно хватает одного-двух файлов, необязательно копировать половину usr/share/X11/xkb.

А теперь контрольный вопрос в голову: можно ли понять в чём ошибка, располагая твоим первым сообщением? Напоминаю твоё шедевральное описание проблемы:

xkb_keymap "mymap" {[br]
  xkb_compat {...};[br]
  xkb_geometry {...};[br]
  xkb_keycodes {...};[br]
  xkb_types {...};[br]
  xkb_symbols {...};[br]
};

В каждой строчке только точки, догадайся, мол, сама.

Исправление debugger, :

Если ты запустишь xkbcomp с ключиком -xkb, то получишь свою карту клавиатуры в человекочитаемом виде (только не запускай это в ~/.config/xkb, потому что ketmap.xkb будет затёрт):

$ xkbcomp -xkb -I$HOME/.config/xkb $HOME/.config/xkb/keymap.xkb
$ less keymap.xkb 

И там можно увидеть кое-что интересное:

<...>
xkb_symbols "pc+rus(tw)+eng(eng)+inet(evdev)" {

    name[group1]="English (US)";
    name[group2]="Russian (typewriter)";
<...>
    key <AD01> {
        type= "ALPHABETIC",
        symbols[Group1]= [               q,               Q ]
    };
<...>

То есть имена-то даются двум группам, но никаких символов во второй группе не определено (я не вижу symbols[Group2]=[...]). Так как вторая группа фактически отсутствует, то и переключение не даёт эффекта.

Вторую группу ты загружаешь неправильно. Надо вот так (в *твоём* файле keymap.xkb):

xkb_symbols   {
        include "pc+rus(tw):2+eng(eng)+inet(evdev)"
        include "capslock(grouplock)"
        include "compose(rctrl)"
};

Обрати внимание на двоеточие и двойку.

А вообще непонятно зачем ты всё это делаешь. Чтобы сделать свою раскладку, обычно хватает одного-двух файлов, необязательно копировать половину usr/share/X11/xkb.

Исходная версия debugger, :

Если ты запустишь xkbcomp с ключиком -xkb, то получишь свою карту клавиатуры в человекочитаемом виде (только не запускай это в ~/.config/xkb, потому что ketmap.xkb будет затёрт):

$ xkbcomp -xkb -I$HOME/.config/xkb $HOME/.config/xkb/keymap.xkb
$ less keymap.xkb 

И там можно увидеть кое-что интересное:

xkb_symbols "pc+rus(tw)+eng(eng)+inet(evdev)" {

    name[group1]="English (US)";
    name[group2]="Russian (typewriter)";

<...>

    key <AD01> {
        type= "ALPHABETIC",
        symbols[Group1]= [               q,               Q ]
    };
<...>

То есть имена-то даются двум группам, но никаких символов во второй группе не определено (я не вижу symbols[Group2]=[...]). Так как вторая группа фактически отсутствует, то и переключение не даёт эффекта.

Вторую группу ты загружаешь неправильно. Надо вот так (в *твоём* файле keymap.xkb):

xkb_symbols   {
        include "pc+rus(tw):2+eng(eng)+inet(evdev)"
        include "capslock(grouplock)"
        include "compose(rctrl)"
};

Обрати внимание на двоеточие и двойку.

А вообще непонятно зачем ты всё это делаешь. Чтобы сделать свою раскладку, обычно хватает одного-двух файлов, необязательно копировать половину usr/share/X11/xkb.