Debian

在 fcitx 中查詢目前輸入法ForxmobarF這rX米這b一種rfor xmobar

  • January 12, 2020

我一直在努力讓新的 Debian (Stretch) 安裝在我的新電腦 (Lenovo X270) 上令人滿意地工作,包括設置 xmonad/xmobar。因為我正在學習日語,所以我想建立一個 IME,我使用 fcitx/fcitx-mozc 設法做到了。但是,我想在我的 xmobar 設置中包含一個外掛,指示目前輸入法(根據 fcitx)是否為日語。Kbd 外掛似乎沒有這樣做,因為 fcitx 不直接與 XKB 互動(據我所知),所以它一直顯示“我們”。我也找不到從終端查詢目前 fcitx IM 的任何方法。有什麼辦法可以做到這一點(好像這是可能的,我也許可以破解一個 xmobar 指標),還是它比它的價值要麻煩得多?

$$ For the record, I tried setting up ibus, but I had trouble with it, so I switched over to fcitx. $$ 如有必要,我非常樂意提供有關我的設置的更多詳細資訊。

提示:您可以查詢 DBus,例如通過qdbus控制台工具,所以:

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

xkb-switch 的另一種方法:xkb-switch -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"

引用自:https://unix.stackexchange.com/questions/387538