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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

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

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

Оффлайн bahmaz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Настройка смены раскладки
« : 28 Февраль 2017, 12:44:46 »
Добрый день. Подскажите, каким образом настроить смену раскладки клавиатуры в Ubuntu 16.10 подобным образом:
1 язык - ctrl-1
2 язык - ctrl-2
3 язык - ctrl-3?

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #1 : 28 Февраль 2017, 13:45:55 »
Код: Bash
  1. #!/bin/bash
  2. #assign layout switch key to Ctrl+Shift+1 for first layot and Ctrl+Shift+2 for second, …
  3. #USAGE: just save and execute by ordinary user
  4.  
  5. item="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom"
  6. key="org.gnome.settings-daemon.plugins.media-keys"
  7.  
  8. layouts=($(gsettings get org.gnome.desktop.input-sources sources | grep -o "\b\w\w\b"))
  9. current=$(gsettings get $key custom-keybindings)
  10. new=${current##*[[:alpha:]]}
  11.  
  12. #Better to check before
  13. for mediakey in $(echo "$current" | tr -d "][\'\",") ; do
  14.     case $(gsettings get $key.custom-keybinding:$mediakey binding) in
  15.     *<Primary><Shift>[0-9]*)
  16.         echo "Bind key combination is assigned already"
  17.         gsettings list-recursively $key.custom-keybinding:$mediakey
  18.         exit 1 ;;
  19.     esac
  20. done
  21.  
  22. if [ "$new" == "[]" -o -z "$new"] ; then
  23.     new=0
  24.     gsettings set $key custom-keybindings "['${item}0/', '${item}1/', '${item}2/']"
  25. else
  26.     new=$((${new%/*}+1))
  27.     gsettings set $key custom-keybindings "${current%]}, '$item$new/', '$item$((new+1))/', '$item$((new+2))/']"
  28. fi
  29.  
  30. for i in 0 1 2 ; do
  31.     gsettings set $key.custom-keybinding:$item$((new+i))/ name "Switch to ${layouts[i]}"
  32.     gsettings set $key.custom-keybinding:$item$((new+i))/ command "gsettings set org.gnome.desktop.input-sources current 'uint32 $i'"
  33.     gsettings set $key.custom-keybinding:$item$((new+i))/ binding "<Primary><Shift>$((i+1))"
  34. done
« Последнее редактирование: 28 Февраль 2017, 13:57:02 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн bahmaz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #2 : 01 Март 2017, 02:19:29 »
Спасибо. Подскажите, пожалуйста, как и где применить указанный код?  :)

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #3 : 01 Март 2017, 10:09:20 »
bahmaz, раз такие вопросы, то откройте Терминал, скопируйте команду и покажите её результатgsettings list-recursively org.gnome.desktop.input-sources
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн bahmaz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #4 : 01 Март 2017, 20:44:26 »
Вот результат:
org.gnome.desktop.input-sources show-all-sources false
org.gnome.desktop.input-sources per-window true
org.gnome.desktop.input-sources current uint32 0
org.gnome.desktop.input-sources sources [('xkb', 'us'), ('xkb', 'ru'), ('xkb', 'es')]
org.gnome.desktop.input-sources xkb-options ['grp:alt_shift_toggle', 'grp_led:scroll']

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #5 : 01 Март 2017, 22:55:05 »
Ну и на всякий пожарный случай покажитеgsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн bahmaz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #6 : 02 Март 2017, 12:37:23 »
Переустановил ubuntu, заменив Gnome на Mate. Gnome оказался тяжеловат для моего компьютера. Поэтому теперь другая информация выдаётся по заданным командам в терминале:
Ответ на команду gsettings list-recursively org.gnome.desktop.input-sources:
org.gnome.desktop.input-sources show-all-sources false
org.gnome.desktop.input-sources per-window false
org.gnome.desktop.input-sources current uint32 0
org.gnome.desktop.input-sources sources @a(ss) []
org.gnome.desktop.input-sources xkb-options @as []

Ответ на команду gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings:
@as []

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #7 : 02 Март 2017, 18:02:03 »
Подозреваю что теперь раскладками у Вас «рулит» iBus…Что выдают командыibus engine
ibus list-engine
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн bahmaz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #8 : 02 Март 2017, 18:36:54 »
Отвечает, что ibus не установлен:
Программа 'ibus' на данный момент не установлена. Вы можете установить её, выполнив: sudo apt install ibusНужно установить ibus?

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #9 : 02 Март 2017, 20:32:28 »
Нужно установить ibus?
Ни в коем случае! Давайте проверим: команда gsettings set org.gnome.desktop.input-sources current 'uint32 1'переключает язык? И покажитеsetxkbmap -query
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн bahmaz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #10 : 03 Март 2017, 01:42:32 »
Команда gsettings set org.gnome.desktop.input-sources current 'uint32 1' языки не переключает.

Ответ на команду setxkbmap -query:
rules:      evdev
model:      pc105
layout:     us,ru,es
variant:    ,,
options:    grp:alt_shift_toggle,grp_led:scroll

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #11 : 03 Март 2017, 08:36:36 »
языки не переключает
И не должна, она должна включать 2-й язык системы, в Вашем случае «русский»… Стоит проверить вывод команды на каждой из раскладокgsettings get org.gnome.desktop.input-sources current.
А что представляет собой штатная оснастка управления раскладкой в Мате? Можете скриншот(ы) выложить?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн bahmaz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #12 : 03 Март 2017, 13:34:09 »
Смена раскладки по указанным командам не происходит ни при одной из 3 раскладок.
Вот скриншоты штатной оснастки Mate:


Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6015
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #13 : 03 Март 2017, 20:20:13 »
Кстати, попробовать loloswitcher не хотите?
А так давайте попробуемsetxkbmap -layout ru,es,us #русский
setxkbmap -layout es,us,ru #испанский
setxkbmap -layout us,ru,es #английский
Работает?
« Последнее редактирование: 03 Март 2017, 20:49:51 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн bahmaz

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Настройка смены раскладки
« Ответ #14 : 04 Март 2017, 18:43:35 »
loloswitcher установил и переключение раскладки с помощью правого и левого shift происходит. Лишь никак не пойму  какие параметры нужно указать в конфиге loloswitcher для переключения по ctrl-1, ctrl-2, ctrl-3.

 
А так давайте попробуем
Код: [Выделить]
setxkbmap -layout ru,es,us #русский
setxkbmap -layout es,us,ru #испанский
setxkbmap -layout us,ru,es #английский
Работает?
Переключение по этим командам срабатывает.

 

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