From eb62569b3bc72795cdea918f5dda71dc8fd8ef28 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Tue, 15 Nov 2022 20:47:21 +0800 Subject: [PATCH] if current im is rime, return rime's schema name --- plugin/fcitx.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugin/fcitx.py b/plugin/fcitx.py index b6f3083..937f691 100644 --- a/plugin/fcitx.py +++ b/plugin/fcitx.py @@ -3,11 +3,12 @@ import functools import dbus -class FcitxComm(): +class FcitxComm: def __init__(self): - bus = dbus.SessionBus() + self.bus = bus = dbus.SessionBus() obj = bus.get_object('org.fcitx.Fcitx5', '/controller') self.fcitx = dbus.Interface(obj, dbus_interface='org.fcitx.Fcitx.Controller1') + self._rime = None def status(self): return self.fcitx.State() == 2 @@ -19,9 +20,17 @@ class FcitxComm(): self.fcitx.Deactivate() def current(self): - return self.fcitx.CurrentInputMethod() + im = self.fcitx.CurrentInputMethod() + if im == 'rime': + return self._get_rime().GetCurrentSchema() -class FcitxRimeComm(): + def _get_rime(self): + if self._rime is None: + obj = self.bus.get_object('org.fcitx.Fcitx5', '/rime') + self._rime = dbus.Interface(obj, dbus_interface='org.fcitx.Fcitx.Rime1') + return self._rime + +class FcitxRimeComm: def __init__(self): bus = dbus.SessionBus() obj = bus.get_object('org.fcitx.Fcitx5', '/rime')