LINUX.ORG.RU

Настройка раскладки через setxkbmap. Ubuntu. Ciannamon

 


1

1

Всем привет.

Раскладка настроена на текущий момент через команду «setxkbmap -option grp:shift_caps_switch,grp_led:caps», запускаемую при автостарте Cinnamon. Включает английскую раскладку по CapsLock, русскую по Shift+CapsLock.

Хотел добавить еще переключение по правому шифту на us, а по правому control на ru, чтобы зажигалась лампочка Caps.

Для этого пытался повесить на эти кнопки команду типа «setxkbmap ru» или «setxkbmap -layout ru».

Но эта команда сбрасывает все настройки и включает какую-то странную русскую раскладку. Странность ее в том, что в терминале «Ctrl+c» выдает ввод буквы «с» вместо стандартного действия.

Вдобавок вылетает стандартный апплет клавиатуры на панели Cinnamon. Кстати, когда переключаю раскладку мышью через него, то все ок, меняется раскладка и зажигается Caps.

После выполнения команды «setxkbmap ru» вернуть взад нормальные настройки командой setxkbmap -option grp:shift_caps_switch,grp_led:caps не получается, она не работает.

Подскажите, как с помощью setxkbmap просто переключить раскладку, без изменения конфигурации? Или иным способом решить поставленную задачу.

Ubuntu 18.04. Ciannamon 3.6.7.

★★★★★

Последнее исправление: another (всего исправлений: 3)

setxkbmap не переключает раскладки, она их загружает. Наверно вам нужно посмотреть в сторону xdotool. Или пишите файл раскладки с ISO_First_Group, ISO_Last_Group...

mky ★★★★★
()

Товарищ выше в общих чертах сказал верно, наиболее безболезненно будет использовать kbdd и busctl (qdbus/dbus-send).

anonymous
()
Ответ на: комментарий от mky

Наверно вам нужно посмотреть в сторону xdotool.

xdtool работает очень странно. :) Типа такого:

home:~$ xdotool key Shift+Caps_Lock home:~$ XDGNDGSD^C

При том, что обычное, живое нажатие нормально отрабатывает переключение. Судя по всему у меня отрабатывают настройки Cinnamon/Gnome, после чего отрабатывает setxkbmap, не отключая настройки DE, в итоге получается странная каша, которая работает не пойми как и разобраться в которой я пока не смог. Буду гуглить остальные советы.

А есть вариант отключить вообще в DE управление клавиатурой?

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

наиболее безболезненно будет использовать kbdd и busctl (qdbus/dbus-send).

Спасибо посмотрю. А где про qdbus/dbus-send в контексте раскладок поискать? Чего-то не очень гуглится пока.

another ★★★★★
() автор топика

Подскажите, как с помощью setxkbmap просто переключить раскладку, без изменения конфигурации? Или иным способом решить поставленную задачу.

На выбор:

Deleted
()
Ответ на: комментарий от another

Нигде. Это утилиты для работы с dbus. Их можно использовать для вызова методов kbdd (запускается как демон).

anonymous
()
Ответ на: комментарий от another

Чет со сборкой пакетов и установкой под убунту проблемы.

Нет. Авторы вроде везде указаны. Какие проблемы?

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

Нет. Авторы вроде везде указаны.

Увидел твой ник в contributors. Не очень знаком с терминологией гитхаба. Это значит, что ты что-то коммитил для проекта?

Первая при запуске выдает:

xkb-switch: error while loading shared libraries: libxkbswitch.so.1: cannot open shared object file: No such file or directory

Вторая создает бинарный файл /usr/local/bin после создания deb-пакета, вместо исполняемого файла в /usr/local/bin

Пакеты делал через checkinstall, возможно он глючит.

А стандартных для убунты средств без возни со сборкой нет?

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

Увидел твой ник в contributors

Комитил я. Автор сгинул. Ты бы для начала протестил сами тулзы, а как пакет собрать (если оно конечно нужно) подскажу.

Первая при запуске выдает:

Не находит либу. Пробуй так:

LD_LIBRARY_PATH=. ./xkb-switch

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

Ты бы для начала протестил сами тулзы

Это ты мне так предлагаешь через make install их ставить? Не хочу так.

LD_LIBRARY_PATH=. ./xkb-switch

Ок, завтра попробую.

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

Это ты мне так предлагаешь через make install их ставить? Не хочу так.

Нет.

Для первой:

cd xkb-switch
LD_LIBRARY_PATH=. ./xkb-switch

Для второй:

cd ../xkblang
./xkblang

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