A plugin for interacting with fcitx5 via HTTP and Websocket
Supported controller methods:
current_input_method
e.g.
curl -sS --unix-socket /tmp/fcitx5.sock http://fcitx/controller/current_input_method | jq
{
"input_method": "keyboard-us"
}
Subscribe and listen for specific events via /subscribe
This is a websocket interface, so you need tools like websocat
Use a '+'
splitted section for events to subscribe, e.g.
websocat \
--ws-c-uri=ws:/fcitx/subscribe/input_context_focus_in+input_context_focus_out \
--text \
ws-c:unix:/tmp/fcitx5.sock -
Now move your cursor between input boxes, it will output:
{"event":"input_context_focus_in","params":{"frontend":"xim","program":"xterm","uuid":"643ef6e072f04e6982af435f3d968852"}}
{"event":"input_context_focus_out","params":{"frontend":"xim","program":"xterm","uuid":"643ef6e072f04e6982af435f3d968852"}}
Supported events:
input_context_focus_in
input_context_focus_out
input_context_focus_switch_input_method
GET /config/global
for global configGET /config/addon/...
for addon configGET /config/inputmethod/...
for IM config
e.g.
curl -sS --unix-socket /tmp/fcitx5.sock http://fcitx/config/addon/webserver | jq
Change method to POST for setting config.
e.g.
curl -sS --unix-socket /tmp/fcitx5.sock http://fcitx/config/addon/webserver \
-X POST\
-d '{"Tcp": {"Port": 12345}}'
- Add unit tests
- Support more controller methods
- Support more fcitx events
- Document more details about json format
- Implement input contexts backed by websocket
- Supplement po files
Powered by Boost.Beast
Forked from fcitx5-beast