[Решено] Редактирование и подключение раскладки

Kubuntu, Xubuntu и другие

Модератор: Модераторы разделов

Moses
Сообщения: 93
ОС: Ubuntu

[Решено] Редактирование и подключение раскладки

Сообщение Moses »

Ubuntu 11.10
awesome wm

Редактирую раскладку в /usr/share/X11/xkb/symbols (файл ua). После рестарта иксов ничего не происходит. Пытаюсь проверить, та ли раскладка подключена, которую я редактирую, но не знаю где проверять. В /etc/X11/xorg.conf нету секции, посвященной раскладкам (там вообще одна только секция). Вобщем, где нынче в Ubuntu прописывается раскладка?
Спасибо сказали:
Moses
Сообщения: 93
ОС: Ubuntu

Re: [Решено] Редактирование и подключение раскладки

Сообщение Moses »

В общем, я нашел файл в котором прописаны раскладки клавиатуры в Ubuntu. Это /etc/defaults/keyboard. Не знал. Проблема оказалась в самом файле раскладки (/usr/share/X11/xkb/symbols/ua). Вернее в том, что система использует не его. Чтобы удостовериться в этом я переименовывал данный файл, но раскладки работали как и прежде. А где тот файл, который надо — понять не могу.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: [Решено] Редактирование и подключение раскладки

Сообщение sash-kan »

выложите получившийся файл /tmp/file.gz:
$ xkbcomp $DISPLAY - | gzip > /tmp/file.gz
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
liaonau
Сообщения: 390
ОС: gentoo

Re: [Решено] Редактирование и подключение раскладки

Сообщение liaonau »

Почти независимо от дистрибутива вы можете проделать следующее:
Поместите свои изменения в файл, допустим, ${HOME}/.xkb/symbols/moses примерно такого содержания:

Код: Выделить всё

partial alphanumeric_keys
xkb_symbols "acer_5230" {
    key <FK23>    { [ XF86Reload ] };
//…
};

partial alphanumeric_keys
xkb_symbols "remap" {
    replace key <CAPS>        { [ Escape            ] };
    replace key <ESC>            { [ ISO_Next_Group    ] };
    replace key <LCTL>            { [ Alt_L            ] };
    replace key <LALT>            { [ Control_L        ] };
    replace key <RALT>    { [ Control_R        ] };
    key <NMLK>                   { [                 ] };
    replace key <MENU>    { type[Group1]="TWO LEVEL", [ Multi_key, Multi_key ] };
    replace key <RCTL>    { [ Hyper_L        ] };
    modifier_map Mod3          {   Hyper_L          };
};
// vim:ft=xkb

Напишите свой ${HOME}/.Xkbcomp, примерно такого содержания:

Код: Выделить всё

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)"    };
    xkb_types        { include "complete"    };
    xkb_compat     { include "complete+ledcaps(group_lock)"    };
    xkb_symbols    { include "pc+us+ru(winkeys):2+inet(evdev)" replace moses(remap)+moses(acer_5230)" include "group(alts_toggle)"    };
    xkb_geometry { include "pc(pc104)"    };
};
// vim: ft=xkb

При старте в инит скрипт X сессии (здесь вот есть зависимость от дистрибутива, и, возможно, DE) внесите

Код: Выделить всё

xkbcomp -I${HOME}/.xkb ${HOME}/.Xkbmap 2>/dev/null

Спасибо сказали:
Moses
Сообщения: 93
ОС: Ubuntu

Re: [Решено] Редактирование и подключение раскладки

Сообщение Moses »

sash-kan писал(а):
23.12.2011 11:23
выложите получившийся файл /tmp/file.gz:
$ xkbcomp $DISPLAY - | gzip > /tmp/file.gz

Вот содержимое файла «file» (та часть, что касается раскладки, остальное в приложении):

Код: Выделить всё

xkb_symbols "pc+us+ua:2+inet(evdev)+group(alt_shift_toggle)" {

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

    key  <ESC> {         [          Escape ] };
    key <AE01> {         [               1,          exclam ] };
    key <AE02> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               2,              at ],
        symbols[Group2]= [               2,        quotedbl,     twosuperior,        NoSymbol ]
    };
    key <AE03> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               3,      numbersign ],
        symbols[Group2]= [               3,      numerosign,         section,           U20B4 ]
    };
    key <AE04> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               4,          dollar ],
        symbols[Group2]= [               4,       semicolon,          dollar,        EuroSign ]
    };
    key <AE05> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               5,         percent ],
        symbols[Group2]= [               5,         percent,          degree,        NoSymbol ]
    };
    key <AE06> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               6,     asciicircum ],
        symbols[Group2]= [               6,           colon,            less,        NoSymbol ]
    };
    key <AE07> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               7,       ampersand ],
        symbols[Group2]= [               7,        question,         greater,        NoSymbol ]
    };
    key <AE08> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               8,        asterisk ],
        symbols[Group2]= [               8,        asterisk, enfilledcircbullet,        NoSymbol ]
    };
    key <AE09> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               9,       parenleft ],
        symbols[Group2]= [               9,       parenleft,     bracketleft,       braceleft ]
    };
    key <AE10> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [               0,      parenright ],
        symbols[Group2]= [               0,      parenright,    bracketright,      braceright ]
    };
    key <AE11> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [           minus,      underscore ],
        symbols[Group2]= [           minus,      underscore,          emdash,          endash ]
    };
    key <AE12> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [           equal,            plus ],
        symbols[Group2]= [           equal,            plus,        notequal,       plusminus ]
    };
    key <BKSP> {         [       BackSpace ] };
    key  <TAB> {         [             Tab,    ISO_Left_Tab ] };
    key <AD01> {
        type= "ALPHABETIC",
        symbols[Group1]= [               q,               Q ],
        symbols[Group2]= [ Cyrillic_shorti, Cyrillic_SHORTI ]
    };
    key <AD02> {
        type= "ALPHABETIC",
        symbols[Group1]= [               w,               W ],
        symbols[Group2]= [    Cyrillic_tse,    Cyrillic_TSE ]
    };
    key <AD03> {
        type[group1]= "ALPHABETIC",
        type[group2]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               e,               E ],
        symbols[Group2]= [      Cyrillic_u,      Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ]
    };
    key <AD04> {
        type[group1]= "ALPHABETIC",
        type[group2]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               r,               R ],
        symbols[Group2]= [     Cyrillic_ka,     Cyrillic_KA,      registered,        NoSymbol ]
    };
    key <AD05> {
        type[group1]= "ALPHABETIC",
        type[group2]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               t,               T ],
        symbols[Group2]= [     Cyrillic_ie,     Cyrillic_IE,     Cyrillic_io,     Cyrillic_IO ]
    };
    key <AD06> {
        type= "ALPHABETIC",
        symbols[Group1]= [               y,               Y ],
        symbols[Group2]= [     Cyrillic_en,     Cyrillic_EN ]
    };
    key <AD07> {
        type= "ALPHABETIC",
        symbols[Group1]= [               u,               U ],
        symbols[Group2]= [    Cyrillic_ghe,    Cyrillic_GHE ]
    };
    key <AD08> {
        type= "ALPHABETIC",
        symbols[Group1]= [               i,               I ],
        symbols[Group2]= [    Cyrillic_sha,    Cyrillic_SHA ]
    };
    key <AD09> {
        type= "ALPHABETIC",
        symbols[Group1]= [               o,               O ],
        symbols[Group2]= [  Cyrillic_shcha,  Cyrillic_SHCHA ]
    };
    key <AD10> {
        type= "ALPHABETIC",
        symbols[Group1]= [               p,               P ],
        symbols[Group2]= [     Cyrillic_ze,     Cyrillic_ZE ]
    };
    key <AD11> {
        type[group2]= "ALPHABETIC",
        symbols[Group1]= [     bracketleft,       braceleft ],
        symbols[Group2]= [     Cyrillic_ha,     Cyrillic_HA ]
    };
    key <AD12> {
        type[group2]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [    bracketright,      braceright ],
        symbols[Group2]= [    Ukrainian_yi,    Ukrainian_YI, Cyrillic_hardsign, Cyrillic_HARDSIGN ]
    };
    key <RTRN> {         [          Return ] };
    key <LCTL> {         [       Control_L ] };
    key <AC01> {
        type= "ALPHABETIC",
        symbols[Group1]= [               a,               A ],
        symbols[Group2]= [     Cyrillic_ef,     Cyrillic_EF ]
    };
    key <AC02> {
        type[group1]= "ALPHABETIC",
        type[group2]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [               s,               S ],
        symbols[Group2]= [     Ukrainian_i,     Ukrainian_I,   Cyrillic_yeru,   Cyrillic_YERU ]
    };
    key <AC03> {
        type= "ALPHABETIC",
        symbols[Group1]= [               d,               D ],
        symbols[Group2]= [     Cyrillic_ve,     Cyrillic_VE ]
    };
    key <AC04> {
        type= "ALPHABETIC",
        symbols[Group1]= [               f,               F ],
        symbols[Group2]= [      Cyrillic_a,      Cyrillic_A ]
    };
    key <AC05> {
        type= "ALPHABETIC",
        symbols[Group1]= [               g,               G ],
        symbols[Group2]= [     Cyrillic_pe,     Cyrillic_PE ]
    };
    key <AC06> {
        type= "ALPHABETIC",
        symbols[Group1]= [               h,               H ],
        symbols[Group2]= [     Cyrillic_er,     Cyrillic_ER ]
    };
    key <AC07> {
        type= "ALPHABETIC",
        symbols[Group1]= [               j,               J ],
        symbols[Group2]= [      Cyrillic_o,      Cyrillic_O ]
    };
    key <AC08> {
        type= "ALPHABETIC",
        symbols[Group1]= [               k,               K ],
        symbols[Group2]= [     Cyrillic_el,     Cyrillic_EL ]
    };
    key <AC09> {
        type= "ALPHABETIC",
        symbols[Group1]= [               l,               L ],
        symbols[Group2]= [     Cyrillic_de,     Cyrillic_DE ]
    };
    key <AC10> {
        type[group2]= "ALPHABETIC",
        symbols[Group1]= [       semicolon,           colon ],
        symbols[Group2]= [    Cyrillic_zhe,    Cyrillic_ZHE ]
    };
    key <AC11> {
        type[group2]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [      apostrophe,        quotedbl ],
        symbols[Group2]= [    Ukrainian_ie,    Ukrainian_IE,      Cyrillic_e,      Cyrillic_E ]
    };
    key <TLDE> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [           grave,      asciitilde ],
        symbols[Group2]= [           U2019,      apostrophe,           U0301,      asciitilde ]
    };
    key <LFSH> {
        type= "PC_ALT_LEVEL2",
        symbols[Group1]= [         Shift_L,  ISO_Prev_Group ]
    };
    key <BKSL> {
        type[group2]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [       backslash,             bar ],
        symbols[Group2]= [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN,       backslash,             bar ]
    };
    key <AB01> {
        type= "ALPHABETIC",
        symbols[Group1]= [               z,               Z ],
        symbols[Group2]= [     Cyrillic_ya,     Cyrillic_YA ]
    };
    key <AB02> {
        type= "ALPHABETIC",
        symbols[Group1]= [               x,               X ],
        symbols[Group2]= [    Cyrillic_che,    Cyrillic_CHE ]
    };
    key <AB03> {
        type[group1]= "ALPHABETIC",
        type[group2]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               c,               C ],
        symbols[Group2]= [     Cyrillic_es,     Cyrillic_ES,       copyright,        NoSymbol ]
    };
    key <AB04> {
        type= "ALPHABETIC",
        symbols[Group1]= [               v,               V ],
        symbols[Group2]= [     Cyrillic_em,     Cyrillic_EM ]
    };
    key <AB05> {
        type= "ALPHABETIC",
        symbols[Group1]= [               b,               B ],
        symbols[Group2]= [      Cyrillic_i,      Cyrillic_I ]
    };
    key <AB06> {
        type[group1]= "ALPHABETIC",
        type[group2]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [               n,               N ],
        symbols[Group2]= [     Cyrillic_te,     Cyrillic_TE,       trademark,        NoSymbol ]
    };
    key <AB07> {
        type= "ALPHABETIC",
        symbols[Group1]= [               m,               M ],
        symbols[Group2]= [ Cyrillic_softsign, Cyrillic_SOFTSIGN ]
    };
    key <AB08> {
        type[group2]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [           comma,            less ],
        symbols[Group2]= [     Cyrillic_be,     Cyrillic_BE,   guillemotleft, doublelowquotemark ]
    };
    key <AB09> {
        type[group2]= "FOUR_LEVEL_SEMIALPHABETIC",
        symbols[Group1]= [          period,         greater ],
        symbols[Group2]= [     Cyrillic_yu,     Cyrillic_YU,  guillemotright, leftdoublequotemark ]
    };
    key <AB10> {
        type[group2]= "FOUR_LEVEL",
        symbols[Group1]= [           slash,        question ],
        symbols[Group2]= [          period,           comma,           slash,        ellipsis ]
...

Я собирался заменить порядок ввода украинских и русских символов. На примере клавиши <AD12>: при простом нажатии должен вводиться твердый знак, при нажатии с правым альтом — «ї».
В /tmp/file.gz все наоборот:

Код: Выделить всё

    key <AD12> {
        type[group2]= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [    bracketright,      braceright ],
        symbols[Group2]= [    Ukrainian_yi,    Ukrainian_YI, Cyrillic_hardsign, Cyrillic_HARDSIGN ]
    };

Как я уже писал, файл /usr/share/X11/xkb/symbols/ua системой не используется, поскольку даже его удаление ничего не меняет. Поэтому мне непонятно где теперь редактировать раскладку.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Moses
Сообщения: 93
ОС: Ubuntu

Re: [Решено] Редактирование и подключение раскладки

Сообщение Moses »

Проблема решена.
1) В /usr/share/X11/xkb/rules/xorg.xml в разделе раскладки «Ukrainian» не был прописан мой вариант раскладки «unicode». Прописал.
2) В /etc/default/keyboard прописал строчку

Код: Выделить всё

XKBVARIANT=", unicode"

Может сработало только одно из двух действий, уже силы нет еще раз перегружать компьютер (да, я каждый раз перезагружал компьютер).
Спасибо сказали: