LINUX.ORG.RU

Как изменить код раскладки?

 ,


1

1

Добрый день. При добавлении татарской раскладки его код раскладки отображается как ru2, а сам русский язык как ru1 хотя по ISO 639 код татарской раскладки должен быть tt. Как сделать так чтобы код татарской раскладки отображался как tt?


Это прописано в /usr/share/X11/xkb/rules/{evdev,base}.xml. Обозначается как ru потому, что татарская раскладка является вариантом русской (с точки зрения {evdev,base}.xml). Можно исправить /usr/share/X11/xkb/rules/{evdev,base}.xml, но при обновлении пакета xkeyboard-config все изменения в {evdev,base}.xml пропадут. Правильный выход — запилить свой rpm, если сможешь.

debugger ★★★★★
()
Последнее исправление: debugger (всего исправлений: 1)
Ответ на: комментарий от debugger

Здравствуйте, спасибо за ответ что именно нужно изменить в файле.

Garon
() автор топика
Ответ на: комментарий от debugger

Примерно так?

      <layout>
	<configItem>
        <name>tt</name>
        <!-- Keyboard indicator for Tatar layouts -->
        <shortDescription>tt</shortDescription>
        <description>Tatar</description>
        <languageList>
          <iso639Id>tat</iso639Id>
        </languageList>
      </configItem>
    </variant>
   </variantList>
  </layout>
Garon
() автор топика
Ответ на: комментарий от Garon

Скорее надо <name>ru(tt)</name>, т. к. татарская раскладка описана в файле symbols/ru. После редактирования файла нужно рестартовать гном (Run a command → r, Enter), чтобы он увидел изменения.

Можно написать скрипт, который будет добавлять эти строчки в evdev.xml, что-то типа этого:

xmlstarlet edit -P \
    --subnode '/xkbConfigRegistry/layoutList'                                           --type elem -n 'layout'                             \
    --subnode '/xkbConfigRegistry/layoutList/layout[last()]'                            --type elem -n 'configItem'                         \
    --subnode '/xkbConfigRegistry/layoutList/layout[last()]/configItem'                 --type elem -n 'name'               -v 'ru(tt)'     \
    --subnode '/xkbConfigRegistry/layoutList/layout[last()]/configItem'                 --type elem -n 'shortDescription'   -v 'tt'         \
    --subnode '/xkbConfigRegistry/layoutList/layout[last()]/configItem'                 --type elem -n 'description'        -v 'Tatar'      \
    --subnode '/xkbConfigRegistry/layoutList/layout[last()]/configItem'                 --type elem -n 'languageList'                       \
    --subnode '/xkbConfigRegistry/layoutList/layout[last()]/configItem/languageList'    --type elem -n 'iso639Id'           -v 'tat'        \
    evdev.xml > evdev.new

Далее сделать spec с такой штукой:

%filetriggerin -- %{_datadir}/X11/xkb/rules/evdev.xml
# Здесь вызов скрипта, который редактирует evdev.xml

Как-то так.

debugger ★★★★★
()
Ответ на: комментарий от BceM_IIpuBeT

Ахахах.

Кдешники — как веганы и прочие нетрадицианалы, всюду лезут и кричат о своём нетрадицианальстве, даже там, куда их не звали.

debugger ★★★★★
()
Ответ на: комментарий от debugger

Кдешники — как веганы и прочие нетрадицианалы, всюду лезут и кричат о своём нетрадицианальстве, даже там, куда их не звали.

На моей памяти такое только "гномеры" проворачивают. А BceM_IIpuBeT квест проходит, не обращай внимания.

Korchevatel ★★★★★
()
Ответ на: комментарий от debugger

У гнумера бомбануло) Пердоль xml'ку дальше, у тебя же юзерфрендли DE для домохозяек.

BceM_IIpuBeT ★★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.