Использование более 2-х раскладок клавиатуры

Автор strekoza, 13 декабря 2016, 10:59:21

« назад - далее »

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

strekoza

Доброго времени суток!

Имеется потребность в использовании более 2-х раскладок.
Решение нашел следующее:
setxkbmap us,ru,ua -option grp:caps_toggle
Всё работает, но проблема в том, что после перезагрузки приходится настраивать заново.

Пробовал добавлять задание в cron (crontab -e: как от имени root, так и от имени обычного пользователя):
вариант 1:
@reboot setxkbmap us,ru,ua -option grp:caps_toggle
вариант 2:
@reboot "setxkbmap us,ru,ua -option grp:caps_toggle"
вариант 3:
@reboot root setxkbmap us,ru,ua -option grp:caps_toggle
вариант 4:
@reboot root "setxkbmap us,ru,ua -option grp:caps_toggle"
вариант 5: пробелы между полями заменены символами табуляции
вариант 6:
редактирование файла /etc/crontab - добавлена строка
@reboot setxkbmap us,ru,ua -option grp:caps_toggle

Ни один из вариантов не помог - после перезагрузки набор доступных раскладок оказывается таким же, как и сразу после установки ОС.

cron запускается - проверено с помощью service cron status

Пробовал добавлять другие задания в крон (@reboot) - тоже не выполняются.

Сгенерированные в системе локали:
ru_RU.utf8
en_US.utf8
uk_UA.utf8

locale -a почему-то выводит вообще полный список локалей, которые только можно установить (а не список сгенерированных).

Вывод locale:
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=


Возможно, проблема в том, что, когда cron запускает команду на выполнение, еще не запущено что-то, что нужно для ее корректного выполнения (например, тот же сервер X11). Но, если в отношении setxkbmap такие рассуждения еще можно развивать, то чего не хватает тому же apache2, который также пытался добавить в автозапуск через cron (при загрузке системы apache2 сам не стартует), - не понятно.
Можно, конечно, лезть в дебри скриптов загрузки (/etc/init.d), но должно бы и через cron работать, по идее.

UPD: В тестовых целях добавлял в крон запись вида
@reboot setxkbmap us,ru,ua -option grp:caps_toggle >> /home/username/setxkbmap.log

Файл создается, но пустой. Т.е., команда таки выполняется, и, по всей видимости, без ошибок.
Debian 8.2 (Jessie), LXDE.

qupl


strekoza

Спасибо, попробовал. Все нужные раскладки после перезагрузки имеются, но вот иконка либо символьное название отображаются только для английского, а для прочих в панели задач выводится просто надпись "None".
Проблему решил банально: правый клик по иконке языковой панели, "Настроить "Обработчик раскладки клавиатуры" (LXDE), снял галочку "Сохранять системные раскладки" - после этого становится активной кнопка добавления нужных раскладок.
С помощью find <path> -amin 5 пробовал найти измененные файлы в /etc, /home/user, /root - так и не понял, в какой конфиг сохраняются настройки (это и не важно, хотя интересно).
Debian 8.2 (Jessie), LXDE.

ogost

setxkbmap должен быть выполнен в пользовательской сессии, а не вне его. Поэтому у вас не работало.
а апач через крон это жутчайший костыль, самый костыльный костыль из всех костылей (аргумент - демоны должны заводиться системой инициализации, и от отдельного ограниченного пользователя, особенно апач). ставьте апач из репов и скрипты для init, и юниты для системдэ появсятся для вас автоматически.

strekoza

ogost, Спасибо за пояснение и совет.
Что касается апача, переустановка не помогла (был предустановлен).
Проблему решил с помощью
# update-rc.d apache2 enable
Запускается от имени www-data - значит, по идее, всё в порядке.
Debian 8.2 (Jessie), LXDE.