Я работал над тем, чтобы новая установка Debian (Stretch) удовлетворительно работала на моем новом компьютере (Lenovo X270), включая настройку xmonad/xmobar. Поскольку я изучаю японский язык, я хотел установить IME, что мне удалось сделать с помощью fcitx/fcitx-mozc. Однако, я хотел включить в настройку xmobar плагин, который показывает, является ли текущий метод ввода (согласно fcitx) японским или нет. Плагин Kbd, похоже, не делает этого, поскольку fcitx не взаимодействует напрямую с XKB (насколько я могу судить), поэтому он все время показывает "us". Я также не смог найти никакого способа запросить текущий fcitx IM из терминала. Есть ли способ сделать это (так как если это возможно, я мог бы взломать индикатор xmobar), или это гораздо больше проблем, чем того стоит?
.[Для протокола, я пытался настроить ibus, но у меня возникли проблемы с ним, поэтому я перешел на fcitx.]
Если необходимо, я буду рад предоставить более подробную информацию о моей настройке.
Подсказка: вы можете запросить DBus, например. с помощью консольного инструмента qdbus
, поэтому:
$ qdbus "org.fcitx.Fcitx" "/inputmethod" "GetCurrentIM"
Другой подход с xkb-switch: xkb-переключатель -p
Я не уверен, поможет ли это с 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"