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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: LoLo Switcher - низкоуровн. перекл. клав. X11, не работает индикация.  (Прочитано 1873 раз)

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

adawdp

  • Автор темы
  • Гость
2016 Jan 24; 08:14 PM; Oakville, ON, Canada.

— Есть тема на форуме https://forum.ubuntu.ru/index.php?topic=267489.0«Смена раскладки разными клавишами». Там поднимался вопрос о назначении для каждой раскладки отдельной клавиши. У меня там даже пару раз что-то получилось. Потом я это дело забросил. Не получилось что-то у меня настроить, сначала вроде сработало, а потом перестало.

— Существует программа  LoLo Switcher, я решил использовать её:
https://help.ubuntu.ru/wiki/lolo_switcher
http://webhamster.ru/site/page/index/articles/projectcode/180
http://webhamster.ru/site/page/index/articles/projectcode/181

— Установил работает. Конфигурация сводится к правильной записи параметров клавиатуры в файле настроек. У меня вот так.
Код: (txt) [Выделить]
/home/fjf/.config/loloswitcher/config.ini    # путь к файлу конфигурации…
InputDevice=/dev/input/by-path/pci-0000:00:1a.1-usb-0:1:1.0-event-kbd    # клавиатура
— Переключение производится левой и правой клавишей Shift. Т.е. для каждого языка своя клавиша. Недолго тестировал, но вроде пока работает без нареканий.

— Но индикатор в области системных уведомлений на переключение раскладки не реагирует. Для меня это не очень актуально, если не печатать в полноэкранном режиме, есть альтернативный, это переключатель-индикатор в левом углу. Сделан из второго conky. Он как раз реагирует, так как устроен по другому принципу.

Ну и в основном conky тоже есть индикация.

— Кто знаком с принципом этой индикации, откуда этот индикатор берёт данные, подправить это никак нельзя?

— Это у меня как бы тестовая система, потому такое обилие языковой  индикации :) , а так в общем-то на других компьютерах и conky бывает не ставил…

adawdp

  • Автор темы
  • Гость
2016 Jan 26; 03:58 PM; Oakville, ON, Canada.

— Ясно, вопрос очень интересный :) !
— Hо тогда вот такой вопрос если в терминале набрать вот так простенько:
Код: (bash) [Выделить]

setxkbmap -layout us
setxkbmap -layout ru
индикатор всё равно не реагирует, раскладка, естественно переключается. На эти команды можно назначать комбинации клавиш и переключать раскладку не по кругу, например.

— Hо это как выражаются корифеи “костыли" более того даже не  “протезы” :) или того хуже!

— Где и как посмотреть и попытаться определиться почему индикатор смены раскладки (последняя картинка в предыдущем сообщении) не реагирует на нестандартную смену раскладки?

— Есть или возможность его вообще отключить и заменить каким-либо другим?

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Я, уже не помню где, мы с Вами "строили индикатор" — так там была команда переключения…
А что касается всего прочего надо заморачиваться с iBus, но я его не осилил, проще показалось "выпилить" нафиг.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

adawdp

  • Автор темы
  • Гость
2016 Jan 26; 06:54 PM; Oakville, ON, Canada.

— Вы, написали скрипт, но у него другой принцип работы чем у приведенных выше коротких команд, по скрипту индикатор переключается. Скриптом у меня переключается раскладка переключателем-индикатором сделанным из conky ( левый верхний угол на верхнем рисунке первого сообщения).
— Это я делал соседу, человек весьма в почтенном возрасте, нужна очень большая кнопка, португалец, читает про футбол и название клуба набирает одним пальцем очень долго, не всегда с первого раза :(.

(Нажмите, чтобы показать/скрыть)

— Вообще мне не очень ясна роль этого стандартного индикатора, он ведь и переключатель тоже, правда два клика нужно, чтобы переключиться. Вот он то как раз и работает не по “кругу”!

— А как его отключить, чтобы глянуть, в автозапуске вроде не нашёл. Варианты вроде этого http://ubuntuhandbook.org/index.php/2013/11/remove-keyboard-indicator- ubuntu/ просто картинку отключают…

— Попробую вот так, ( по умолчанию там было всё включено) , если всё будет положительно, попытаюсь установить какой-то альтернативный индикатор для панели системных уведомлений. Пока ещё не искал, но наверное что-то должно быть.

Пользователь решил продолжить мысль 27 Января 2016, 05:04:50:
2016 Jan 26; 09:04 PM
— Нет это проблему не решает, этот индикатор есть уже при входе в систему… „Выпиливание“ тут никакое не подойдёт, из панели системных уведомлений убрать можно. А „Keyboard layouts migrated“ , - надо полагать это когда один язык. Если снять этот флажок, то остаётся один язык.
« Последнее редактирование: 27 Января 2016, 05:04:51 от adawdp »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
adawdp,
Скрипт ведь не сам по себе «магия». В нем команды. В том числе вот эта gsettings set org.gnome.desktop.input-sources current 'uint32 0'системный вызов переключения раскладки, т.е. не сама команда переключает (как setxkbmap), а "просит" систему штатными средствами переключить раскладку. (Ну не совсем конечно так по большому счету: назначается параметр текущей раскладки, а дальше система сама отрабатывает).
Поэтому задача сводится к тому чтоб передать вышеуказанной команде параметр нужной раскладки в виде 'uint32 0', где 0 — порядковый номер из списка установленных раскладок. Который, как Вы понимаете, и выведет команда gsettings get org.gnome.desktop.input-sources sources | grep -o "\b\w\w\b" *номерация с ноля!

НО! (всегда есть «но!» На системах со всякими "левыми" переключалками (не использующими системные способы) работать не будет. Например у меня нет списка раскладок$: gsettings get org.gnome.desktop.input-sources sources
@a(ss) []
« Последнее редактирование: 27 Января 2016, 14:31:11 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

adawdp

  • Автор темы
  • Гость
Azure, вот это ваше решение во многом универсально:
Код: (bash) [Выделить]
layouts=($(gsettings get org.gnome.desktop.input-sources sources | grep -o "\b\w\w\b"))
gsettings set org.gnome.desktop.input-sources current "$(gsettings get org.gnome.desktop.input-sources current | awk '{$2<n?$2+=1:$2=0}1' n=$((${#layouts[*]}-1)))"
— Если имеется только две раскладки, то цикличного (или как говорят „по кругу“) переключения достаточно и незачем городить огород.
— А вот если раскладок три и более имеет смысл включать каждую отдельно. Хотя я пошёл по пути создания пользователей английский-французский, украинский+русский-английский, английский-турецкий. Нет таких задач, чтобы все языки нужны были сразу. И вообще я не лингвист и все эти языковые инсинуации были под нажимом жизни :(
— Но для будущего решил запастись :)!
—  LoLo Switcher у меня хорошо теперь работает, просто на каждую клавишу включения LoLo Switcher’ом раскладок добавляется ещё и с лёгкой задержкой исполнение скрипта с приведенными выше командами.
— Да, сказать, что это изящно я не могу :) но работает нормально, можно сказать хорошо. LoLo Switcher где-то там что-то в глубине переключает, а скрипт “подправляет”. :)
— Попробую написать автору LoLo Switcher’а если он это дело не забросил может как-то что-то оптимизирует под Ubuntu, а то он в сторону КДЕ в основном смотрит…
— Есть ещё похожие решения с skb, я его тоже как-то применял для индикации раскладки в сonkey, в данном случае в этом нет необходимости.

— Спасибо Azure ! Жаль, что народ занят ожиданием весны,  не торопится поддержать дискуссию, тема с раскладками весьма актуальна по-прежнему, я думаю, и далеко не все вопросы решены!

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Я-то вообще имел ввиду вот вместо этого
— Hо тогда вот такой вопрос если в терминале набрать вот так простенько:
Код: (bash) [Выделить]
setxkbmap -layout us
setxkbmap -layout ru
где не работает индикатор использовать
Код: (bash) [Выделить]
gsettings set org.gnome.desktop.input-sources current 'uint32 0' #английский
gsettings set org.gnome.desktop.input-sources current 'uint32 1' #русский
...
каждую из команд вешаете на горячую клавишу и вуаля!
« Последнее редактирование: 27 Января 2016, 21:14:19 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

adawdp

  • Автор темы
  • Гость
2016 Feb 22; 05:44 PM; Oakville, ON, Canada.

— Чтобы тема выглядела завершённой вместо индикатора стандартной поставки можно использовать
gxkb _http://linuxhub.ru/viewtopic.php?t=442 или просто воспользоваться поиском по ключу “gxkb” материалов в избытке.

— Т.е. связка LoLo Switcher + gxkb мне представляется абсолютно рабочей в Unity…

 

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