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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как узнать текущую раскладку клавиатуры из Bash?  (Прочитано 2715 раз)

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

Оффлайн Dexel

  • Автор темы
  • Активист
  • *
  • Сообщений: 295
    • Просмотр профиля
Проверка состояния светодиодов не подходит. 4 раскладки и на трёх он включен.

Нашел утилиту kbdd, только возвращает она номер процесса, толку с него.

Оффлайн soarin

  • Старожил
  • *
  • Сообщений: 1850
  • ubuntu 20.04
    • Просмотр профиля
Тут ещё зависит от сеанса.
Если Ubuntu 17.10 со свободными драйверами, то и Wayland может же быть

А под иксами этак так
setxkbmap -print | grep xkb_symbols | awk '{print $4}' | awk -F"+" '{print $2}'
« Последнее редактирование: 04 Февраля 2018, 12:58:13 от soarin »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Я как-то искал такое, нашел xkblayout-state
А если брать что-то системное, то надо знать чем переключаете: ibus? 
« Последнее редактирование: 04 Февраля 2018, 16:36:31 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Dexel

  • Автор темы
  • Активист
  • *
  • Сообщений: 295
    • Просмотр профиля
Вроде не ibus.
XFCE.
На hotkey переключателей раскладок поназначал скрипты примерного содержания:
setxkbmap us,pl
setxkbmap pl,us
setxkbmap ru,us
setxkbmap us,ru
...

Короче 4  раскладки, и функционал хочу реализовать как в KDE. Там вместо рулетки 4 раскладок, по Alt+Shift, идёт две, одна из которых всегда US. А на другую пару переключение через hotkeys.


Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Если через setxkbmap то что проще чем опрашивать его?
Ну а порядок можно брать из параметра схемы gsettings
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Dexel

  • Автор темы
  • Активист
  • *
  • Сообщений: 295
    • Просмотр профиля
Так gsettings же гномовская, а у меня XFCE

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
И что? Это вообще общесистемные вроде... Попробуй
gsettings get org.gnome.desktop.input-sources current
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Dexel

  • Автор темы
  • Активист
  • *
  • Сообщений: 295
    • Просмотр профиля
По всем ключам пусто

$ gsettings list-keys org.gnome.desktop.input-sources
show-all-sources
xkb-options
per-window
current
mru-sources
sources

$ gsettings get org.gnome.desktop.input-sources current
uint32 0

$ gsettings get org.gnome.desktop.input-sources show-all-sources
false

$ gsettings get org.gnome.desktop.input-sources xkb-options
@as []

$ gsettings get org.gnome.desktop.input-sources per-window
false

$ gsettings get org.gnome.desktop.input-sources mru-sources
@a(ss) []

$ gsettings get org.gnome.desktop.input-sources sources
@a(ss) []

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
$ gsettings get org.gnome.desktop.input-sources current
uint32 0
Ну где же пусто? Переключите раскладку и получите uint32 1
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Dexel

  • Автор темы
  • Активист
  • *
  • Сообщений: 295
    • Просмотр профиля
Нет, нуль всегда.

Можно костыль приделать в виде сохранения в переменной/файле из скриптов переключения, но вот как быть с кольцевым переключением, которое по Alt+Shift.

Короче сейчас сделаю кольцевое переключение по Caps Lock, а на комбинацию Alt+Shift поцеплю свой скрипт циклического переключения. Может чё лучше предложите?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
setxkbmap us,pl
setxkbmap pl,us
setxkbmap ru,us
setxkbmap us,ru
странная какая-то технология. Я бы оставил просто 3 языка в цикле, setxkbmap us,pl,ruа для включения конкретного использовал горячие клавиши с командами.
Нет, нуль всегда.
Будет не ноль, если не по скрипту переключать, а по заданной клавише. И наоборот:gsettings set org.gnome.desktop.input-sources current 'uint32 1'включает 2-ю раскладку в наборе, gsettings set org.gnome.desktop.input-sources current 'uint32 2'соответственно 3-ю
« Последнее редактирование: 07 Февраля 2018, 16:45:54 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Dexel

  • Автор темы
  • Активист
  • *
  • Сообщений: 295
    • Просмотр профиля
$ gsettings set org.gnome.desktop.input-sources current uint32 2
Usage:
  gsettings [--schemadir SCHEMADIR] set SCHEMA[:PATH] KEY VALUE

Set the value of KEY to VALUE

Arguments:
  SCHEMADIR A directory to search for additional schemas
  SCHEMA    The name of the schema
  PATH      The path, for relocatable schemas
  KEY       The key within the schema
  VALUE     The value to set

И в Debian 9 Stretch XFCE и в Xubuntu 17.10

Оффлайн Azure

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

 

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