No description
  • Rust 95%
  • Nix 5%
Find a file
2026-07-07 23:13:47 +01:00
src feat(backend): ibus 2026-07-07 08:01:52 +01:00
.envrc Initial commit 2026-07-07 04:01:04 +01:00
.gitignore Initial commit 2026-07-07 04:01:04 +01:00
Cargo.lock feat(backend): fcitx5-rime 2026-07-07 07:16:49 +01:00
Cargo.toml feat(backend): fcitx5-rime 2026-07-07 07:16:49 +01:00
flake.lock Initial commit 2026-07-07 04:01:04 +01:00
flake.nix docs: add README.md 2026-07-07 08:09:41 +01:00
LICENSE Initial commit 2026-07-07 04:01:04 +01:00
README.md docs: Add vibe coding warning 2026-07-07 23:13:47 +01:00

limes Linux Input MEthod Switcher

limes is a D-Bus wrapper for switching Linux input methods.

It provides a small get|set|list|toggle CLI over multiple input method backends.

Supported backends: fcitx5, fcitx5-rime, ibus.

Warning

The code of this project is mainly LLM Generated, with basic manual audit, use it with caution.

Usage

limes get # if no verb given, the default action is get
limes list
limes set rime
limes toggle

The default backend is currently fcitx5.

Select a backend explicitly with --backend:

limes --backend fcitx5 get
limes --backend ibus list
limes --backend ibus set libpinyin
limes --backend ibus set xkb:us::eng

Generate shell completions:

limes completion <SHELL>

Backends

fcitx5

Switches Fcitx5 input methods through the Fcitx5 controller D-Bus API.

limes --backend fcitx5 get
limes --backend fcitx5 list
limes --backend fcitx5 set rime
limes --backend fcitx5 toggle

fcitx5-rime

Talks to Fcitx5's Rime D-Bus API.

By default, fcitx5-rime operates on Rime ascii mode:

limes --backend fcitx5-rime get        # prints true or false
limes --backend fcitx5-rime set --ascii true # the flag --ascii is optional
limes --backend fcitx5-rime set false
limes --backend fcitx5-rime toggle

Use --mode schema to operate on Rime schemas:

limes --backend fcitx5-rime --mode schema get
limes --backend fcitx5-rime --mode schema list
limes --backend fcitx5-rime --mode schema set 

Schema mode does not support toggle.

ibus

Switches IBus global engines through IBus' private D-Bus connection.

limes --backend ibus get
limes --backend ibus list
limes --backend ibus set libpinyin
limes --backend ibus set xkb:us::eng

IBus does not support toggle. --mode is only supported by fcitx5-rime.

Build

cargo build --release

With Nix:

nix build

TODOs

  • Config File, set default backend
  • --init-config, auto discover backend on first run
  • Defining toggle ime groups in config file