Запрос текущего метода ввода в fcitx [для xmobar]

Я работал над тем, чтобы новая установка Debian (Stretch) удовлетворительно работала на моем новом компьютере (Lenovo X270), включая настройку xmonad/xmobar. Поскольку я изучаю японский язык, я хотел установить IME, что мне удалось сделать с помощью fcitx/fcitx-mozc. Однако, я хотел включить в настройку xmobar плагин, который показывает, является ли текущий метод ввода (согласно fcitx) японским или нет. Плагин Kbd, похоже, не делает этого, поскольку fcitx не взаимодействует напрямую с XKB (насколько я могу судить), поэтому он все время показывает "us". Я также не смог найти никакого способа запросить текущий fcitx IM из терминала. Есть ли способ сделать это (так как если это возможно, я мог бы взломать индикатор xmobar), или это гораздо больше проблем, чем того стоит?

.

[Для протокола, я пытался настроить ibus, но у меня возникли проблемы с ним, поэтому я перешел на fcitx.]

Если необходимо, я буду рад предоставить более подробную информацию о моей настройке.

0
22.08.2017, 03:20
2 ответа

Подсказка: вы можете запросить DBus, например. с помощью консольного инструмента qdbus, поэтому:

$ qdbus "org.fcitx.Fcitx" "/inputmethod" "GetCurrentIM"

Другой подход с xkb-switch: xkb-переключатель -p

1
28.01.2020, 02:45

Я не уверен, поможет ли это с xmobar, но вы можете следить за изменениями в свойстве CurrentIM, отслеживая на выходе

gdbus monitor -e -d org.fcitx.Fcitx

К сожалению, это не говорит о новом значении; строки, которые я получаю, просто:

/inputmethod: org.freedesktop.DBus.Properties.PropertiesChanged ('org.fcitx.Fcitx.InputMethod', @a{sv} {}, ['CurrentIM'])

но каждый раз, когда вы видите такую ​​строку, вы можете запросить состояние либо с помощью команды qdbus в принятом ответе, либо с помощью gdbus, подобного этому:

gdbus call -e -d org.fcitx.Fcitx -o "/inputmethod" -m "org.fcitx.Fcitx.InputMethod.GetCurrentIM"
0
28.01.2020, 02:45

Теги

Похожие вопросы