Точка на цифровой клавиатуре

Материал из ALT Linux Wiki

Точка на цифровой клавиатуре (в X Window System)

Согласно российским стандартам десятичным разделителем является символ "," (запятая). Поэтому в русской раскладке на цифровой клавиатуре нажатие клавиши Del (традиционно расположенная между 0 и Enter) приводит к печати запятой. Это просто нереально раздражает многих пользователей, привыкших набирать, например, IP-адреса. Так же раздражение испытывают некоторые бухгалтеры.

Далее предлагается несколько вариантов "лечения" данной проблемы.

Правка файла раскладки

"Традиционный" способ, который можно быстро найти в Гугле: от рута открываем файл /usr/share/X11/xkb/symbols/ru, находим в нем строку include "kpdl(comma)" и заменяем comma на dot. После чего перезапускаем Иксы.

Недостатки метода: после обновления системы (если обновлялись компоненты Иксов) операцию приходится повторять.

Создание своего файла раскладки

Делаем копию вышеуказанного файла с новым именем, например, ru_kpdldot. Редактируем этот файл также, как и в предыдущем способе, но правим еще одну строку: include "ru(common)" заменяем на include "ru_kpdldot(common)" (то есть вписываем туда вместо ru имя нового файла).

После этого идем в настройки клавиатуры (в Альтераторе или в том файле, где у вас эти настройки прописаны) и заменяем там ru на ru_kpdldot). Теперь у вас есть новая раскладка с нужным поведением.

К недостаткам стоит отнести относительную сложность операции и засорение системных каталогов самодельными файлами.

Установка пользовательских настроек Xkbmap

Совет, подсказанный Сергеем Власовым в рассылке community@:

в файл ~/.Xkbmap нужно вписать строку

setxkbmap -symbols "+kpdl(dotoss)+kpdl(dotoss):2"

Метод всем хорош, кроме того, что работает только для одного пользователя. То есть настройку надо провести для каждого пользователя системы отдельно. Ну и потом очень легко забыть про изменения в этом файле и потратить много времени, ломая себе голову, почему вроде бы все "как всегда", а поведение клавиатуры нестандартное.

[03.02.2020] В AltLinux P9 KDE Plasma вариант с .Xkbmap в каталоге пользователя более не работает. Для KDE Plasma можно ту же команду добавить в автостарт KDE, создав исполняемый файл .desktop в папке ~/.config/autostart примерно следующего содержания:

[Desktop Entry]
Comment[ru_RU]=
Comment=
Exec=sleep 5s;setxkbmap -symbols "+kpdl(dotoss)+kpdl(dotoss):2"
GenericName[ru_RU]=Заменяем запятую на точку на цифровой клавиатуре в русской раскладке
GenericName=Заменяем запятую на точку на цифровой клавиатуре в русской раскладке
Icon=yast-keyboard
Name[ru_RU]=Fix keyboard
Name=Fix keyboard
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

Отдельное замечание про OpenOffice.оrg

OOo отличается слегка своеобразным поведением: по умолчанию он всегда ставит запятую в русской раскладке, игнорируя настройки Xkb. Чтобы отучить его от этой привычки, можно воспользоваться еще одним советом Сергея Власова:

Сервис ▷ Параметры ▷ Настройки языка ▷ Языки ▷ Разделитель целой и дробной части - снять галку Из настроек ОС, тогда будет вводиться точка или запятая в зависимости от настроек Xkb (точнее, OpenOffice не будет обрабатывать KP_Decimal специфическим образом).