Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Нет марийской раскладки клавиатуры  (Прочитано 3104 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lifeway

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Поставил себе на нетбук Ubuntu и обнаружил, что нет марийской раскладки клавиатуры. Очень жаль!!!

В НауЛинукс и то есть....

Придётся с марийскими текстами продолжать работать в НауЛинукс.

Оффлайн Agafonov

  • Администратор
  • Старожил
  • *
  • Сообщений: 1114
  • Нам помехи не страшны!
    • Просмотр профиля
    • Живу в сети...
Re: Нет марийской раскладки клавиатуры
« Ответ #1 : 16 Мая 2010, 01:35:01 »
Любую раскладку можно стащить из любого линукса, если лицензия позволяет.
Или сделать самим.
http://ubuntueasy.com/oborudovanie/tipografskaja-raskladka-klaviatury
Ubuntu 16.04 LTS @ Desktop & Servers

Оффлайн lifeway

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #2 : 16 Мая 2010, 09:37:42 »
А как стащить? Думаю, лицензия позволяет. У меня есть rpm-пакет:

http://www.mari-el.name/muter/xkeyboard-config-0.8-7.1.2.Nau5x.noarch.rpm

Оффлайн Agafonov

  • Администратор
  • Старожил
  • *
  • Сообщений: 1114
  • Нам помехи не страшны!
    • Просмотр профиля
    • Живу в сети...
Re: Нет марийской раскладки клавиатуры
« Ответ #3 : 16 Мая 2010, 12:33:43 »
А как стащить? Думаю, лицензия позволяет. У меня есть rpm-пакет:

http://www.mari-el.name/muter/xkeyboard-config-0.8-7.1.2.Nau5x.noarch.rpm

Нужно аккуратно вынуть оттуда марийскую раскладку - /usr/share/X11/xkb/symbols/ru
Ubuntu 16.04 LTS @ Desktop & Servers

Оффлайн lifeway

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #4 : 16 Мая 2010, 14:07:08 »
вот забрал оттуда этот файл.
есть там такие строчки, как я понял, что это относится с марийской раскладке клавиатуры.
а что с ним теперь делать?

partial alphanumeric_keys

xkb_symbols "chm" {
    include "ru(winkeys)"

    name[Group1]= "Russia - Mari-El";

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key <AD03> { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] };
    key <AD06> { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] };
    key <AD10> { [ Cyrillic_ze, Cyrillic_ZE, U04DF, U04DE ] };

    key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] };
    key <AC04> { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] };
    key <AC07> { [ Cyrillic_o, Cyrillic_O, U04e7, U04e6 ] };
    key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, U04DD, U04DC ] };

    key <AB02> { [ Cyrillic_che, Cyrillic_CHE, U04F5, U04F4 ] };
    key <AB05> { [ Cyrillic_i, Cyrillic_I, U04E5, U04E4 ] };

    include "level3(ralt_switch)"
};

Оффлайн maikl20021

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #5 : 16 Мая 2010, 16:50:30 »
Тоже нуждаюсь в марийской раскладке.
Обьясните, пожалуйста, как ее поставить в ubuntu?

Оффлайн Agafonov

  • Администратор
  • Старожил
  • *
  • Сообщений: 1114
  • Нам помехи не страшны!
    • Просмотр профиля
    • Живу в сети...
Re: Нет марийской раскладки клавиатуры
« Ответ #6 : 17 Мая 2010, 01:22:02 »
Я надеюсь, в этом разделе на тему обратят больше внимания и подскажут подробнее, хотя по ссылке, которую я приводил, вроде как написано и принцип понятен.
Ubuntu 16.04 LTS @ Desktop & Servers

Оффлайн lifeway

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #7 : 17 Мая 2010, 08:00:56 »
Я пробовал в файл /usr/share/X11/xkb/symbols/ru добавить строчки указанные выше, но после этого Система ---> Параметры ---> Клавиатура  в вкладке "Раскладки" не появляется марийская раскладка клавиатуры. Что делать?

Оффлайн Agafonov

  • Администратор
  • Старожил
  • *
  • Сообщений: 1114
  • Нам помехи не страшны!
    • Просмотр профиля
    • Живу в сети...
Re: Нет марийской раскладки клавиатуры
« Ответ #8 : 17 Мая 2010, 17:41:40 »
Я пробовал в файл /usr/share/X11/xkb/symbols/ru добавить строчки указанные выше, но после этого Система ---> Параметры ---> Клавиатура  в вкладке "Раскладки" не появляется марийская раскладка клавиатуры. Что делать?

А /etc/X11/xkb/base.xml?
Ubuntu 16.04 LTS @ Desktop & Servers

Оффлайн lifeway

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #9 : 17 Мая 2010, 19:03:48 »
Там есть файл: /etc/X11/xkb/base.xml.save - но он кажись пустой. А что туда надо записать?

Пользователь решил продолжить мысль 18 Мая 2010, 01:52:43:
Значит раскладку надо предложить сюда? https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config

Пользователь решил продолжить мысль 18 Мая 2010, 10:22:50:
Кстати, там (выше, в списке кодов дополнительных букв) не только марийские буквы, но ещё удмуртские...

Пользователь решил продолжить мысль 18 Мая 2010, 12:26:04:
Если, оставить только дополнительные марийские буквы (ӓ, Ӓ, ӧ, Ӧ, ҥ, Ҥ, ӱ, Ӱ, ӹ, Ӹ), то получается примерно так:

partial alphanumeric_keys
xkb_symbols "chm" {
    include "ru(winkeys)"

    name[Group1]= "Russia - Mari";

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key <AD03> { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] };
    key <AD06> { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] };
    key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] };
    key <AC04> { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] };
    key <AC07> { [ Cyrillic_o, Cyrillic_O, U04e7, U04e6 ] };

    include "level3(ralt_switch)"
};
« Последнее редактирование: 18 Мая 2010, 12:26:05 от lifeway »

Оффлайн maikl20021

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #10 : 18 Мая 2010, 13:31:38 »
Увыжаемые гуру! Может вс-таки подскажете как это сделать?

Оффлайн lifeway

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #11 : 05 Июня 2010, 15:21:13 »
Так и никто не подсказал, как сделать марийскую раскладку в Ubuntu...

Оффлайн Jack Sparrow

  • Активист
  • *
  • Сообщений: 641
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #12 : 05 Июня 2010, 22:56:06 »
Есть, по крайней мере, два варианта.
1. Раскладка будет появляться самостоятельно. Я так не пробовал, описывать не буду.
2. Будет появляться как подвариант какой-нибудь страны. Например, для страны России там 13 раскладок.

Пойдем вторым путем. Идем в папку /usr/share/X11/xkb/symbols
Видим там файлы типа ad, af, al и т.д. Находим файл ru, который содержит все раскладки для России. Открываем его рутом:
sudo gedit ruСобственно, раскладка задается следующим образом. Пример:
key <AE03> { [     0x010004a1,       0x010004a0,    3,       3 ] };Сначала пишем key
Дальше задаем клавишу клавиатуры. Нотация такая: первая буква А означает "alphabetical", т.е. алфавитно-цифровые клавиши (метаклавиши имеют собственные имена). Вторая буква (от A до Е) означает ряд клавиатуры. Причем самый нижний ряд - А, самый верхний - Е. Цифры обозначают порядковый номер клавиши слева направо. Например, "z" - AB01, "s" - AC02, "4" - AE04
Дальше, то, что в скобках, обозначает, следующее.
Первое число - символ юникод, который появится при нажатии соответствующей клавиши. Второе число - тот символ, который появится при нажатии клавиши с SHIFT. Третье и четвертое числа - опционально. Обозначают, соответственно, символы,
которые появятся при нажатии на соответствующую клавишу с одновременным нажатием альтернативной клавишей (называется, клавиша третьего уровня, в большинстве тамошних раскладок это правый ALT)
Как набирать юникод символы.
Это стандарт UTF-16. Как правило, нужно только менять последние четыре цифры, а 0х0100 оставлять без изменения. Можно запустить программу Applications/Accessories/Character Map, ту, что в Убунте. Ищем нужную букву. Как нашли, то на вкладке Character Details будет подробная информация. Нам нужно номер UTF-16. Например, ищем "Ъ". Находим: UTF-16: 0x042A. Нам нужны последние четыре цифры: 042А. Полный код будет 0х0100042А.
Кстати, нужно соблюдать осторожность, т.к. буквы могут иметь одинаковое начертание, но разный код. Возможно, это не критично для личной переписки, например, но могут возникнуть проблемы с разными spell check-ами и др. Лучше всего буквы искать в одном разделе (думаю, для марийского это будет Cyrillic.
Да, не нужно вводить весь алфавит. Обычно делают так. Импортируют готовый алфавит, а прописывают отдельно те клавиши, которые отличаются. Посмотрите внимательно на файл ru. Увидите, что разделы заканчиваются так:
};
Не те, что справа после описания каждой клавиши, а та, что слева, как бы отделяет строку.
Каждый раздел начинается так:
partial alphanumeric_keys
xkb_symbols "olpc" {
Вместо olpc поставьте название своего языка. Думаю, надо маленькими буквами и без пробелов.
Там есть главный раздел "common". Он второй по счету. А остальные его импортируют так:
include "ru(common)"Т.е после строчкиxkb_symbols "ваш_язык" добавьте строчку
include "ru(common)Это импортирует русскую раскладку.
После введите строчку
name[Group1]= "Russia - Legacyгде измените Russia - Legacy на ваше, например, Марийский (надпись, что вы введете, будет появляться при выборе клавиатуры в System/Preferences/Keyboard ...) Здесь допустимы пробелы, большие буквы и т.п.
Дальше только введите только те клавиши, которые отличаются по типу
[code]key <AE03> { [     0x010004a1,       0x010004a0,    3,       3 ] };Если не нужны клавиши третьего уровня, то последние два числа вводить не обязательно. Их часто используют для введения диакритиков, типа á
Если же третий уровень нужен, то введите и последние два числа, а в конце раздела укажите, какой клавишей будет этот третий уровень включаться. Обычно это правый ALT. В таком случае нужно ввести строку
include "level3(ralt_switch)"Завершите раздел (т.е. свою раскладку)
};Весь этот раздел создайте и впишите в конец файла ru
Еще раз, это будет выглядеть типа этого:
partial alphanumeric_keys
xkb_symbols "mari" {
    include "ru(common)"
    name[Group1]= "Russia - Mari";

    key ......

    include "level3(ralt_switch)"

};
Вам нужно будет только заполнить поля key для каждой клавиши, которая отличается от русской раскладки.
Сохраните файл ru (сделайте копию оригинальног файла, мало ли что).

После этого нужно сделать так, чтобы раскладка появлялась в иксах. Открываем файл
sudo gedit /usr/share/X11/xkb/rules/evdev.xml(опять, сделайте копию оригинала !)
Это XML файл. Если вы понимаете тэги <> </> , то особого труда он не будет представлять. Ищем запись <name>ru</name> Это описание раскладок для России. Отдельная страна лежит между тэгами <layout> и </layout>
Каждая отдельная раскладка лежит между <variant> </variant>
Вам нужно вставить описание вашей раскладки как один из вариантов. Это должно быть внутри страны России. Лучше всего вставить в конец, например, после Калмыцкого языка, но до Сербии. Проще скопировать Калмыцкий язык
<variant>
          <configItem>
            <name>xal</name>
            <description>Kalmyk</description>
            <languageList><iso639Id>xal</iso639Id></languageList>
          </configItem>
        </variant>
и вставить его после его же тэга </variant>, т.е. между </variant> и </variantList>
Потом меням шило на мыло, т.е. вместо xal пишем mari, вместо Kalmyk пишем Mari.
Тэг <iso639Id> означает трехбуквенный код языка по этнологу. У вас это будет mhr Но, в принципе, этот тэг можно и не вводить.
Сохраняем файл и (без перезагрузки) идем в System/Preferences/Keyboard. Выбираем страну Россию, а там - марийский язык.

ЗЫ. Если не получилось, то, скорее всего, была где-то ошибка. Может даже случиться, что вообще никакие языки работать не будут (кроме английского). Нужно внимательно смотреть, чтобы в файле evdev.xml открытые тэги соответствовали закрытым. Но этот способ работает. Я так создал свою раскладку и пользуюсь ею.[/code]
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн Protopopulus

  • Старожил
  • *
  • Сообщений: 1694
  • А чего вы так смотрите?..
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #13 : 05 Июня 2010, 23:00:29 »
Ребят, а татарская раскладка не подойдет? Вроде бы, языки очень похожи, увы, не знаю только похожи ли письменно...
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

Оффлайн lifeway

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Нет марийской раскладки клавиатуры
« Ответ #14 : 09 Июня 2010, 06:09:21 »
Марийский и татарский язык немножко схожи, 30% однокоренных слов, но входят в разные языковые группы. Татарский - тюркская группа, марийский - финно-угорская группа. Разная грамматика, разные дополнительные буквы к кирилице.

Татарская раскладка не подойдёт...

Пользователь решил продолжить мысль 09 Июня 2010, 06:21:55:
Попытался воспользоваться советами Jack Sparrow, спасибо огромное, что откликнулся. Но не получилось. Видать что-то не то сделал. Долгое использование продукции мелкософта даёт о себе знать...

Как решил проблему? Довольно очень просто. К коми раскладке приписал марийские дополнительные буквы и всё заработало!!!
Конечно, это полумеры, но хоть что-то...

Открыл файл ru:

sudo gedit /usr/share/X11/xkb/symbols/ru

Нашёл описание коми раскладки:

partial alphanumeric_keys
xkb_symbols "kom" {

    include "ru(winkeys)"

    name[Group1]= "Russia - Komi";

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

// cyrilllic o with diaeresis
    key   <AC07> { [    Cyrillic_o,      Cyrillic_O,      
         U04E7,        U04E6      ] };
   
// hard I as additional key for soft Cyrillic_I
    key <AB05> { [      Cyrillic_i,      Cyrillic_I,
         Ukrainian_i,        Ukrainian_I     ] };

После этого вписал дополнительные марийские буквы, кроме AC07 - это ӧ, Ӧ - эти буквы одинаковые в коми и марийском языках:

    key <AD03> { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] };
    key <AD06> { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] };
    key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] };
    key <AC04> { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] };

include "level3(ralt_switch)"
};

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

ӹӓӱҥӧӸӰҤӦӒ
« Последнее редактирование: 09 Июня 2010, 06:21:55 от lifeway »

 

Страница сгенерирована за 0.091 секунд. Запросов: 23.