No description
  • Rust 94.8%
  • Nix 5.2%
Find a file
2026-10-17 18:44:06 +01:00
.github/workflows ci: prepare for release 2026-10-17 18:44:06 +01:00
src chore(style): metadata, --version, lockfiles, lint 2026-10-17 18:43:40 +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 chore(style): metadata, --version, lockfiles, lint 2026-10-17 18:43:40 +01:00
Cargo.toml chore(style): metadata, --version, lockfiles, lint 2026-10-17 18:43:40 +01:00
flake.lock chore(style): metadata, --version, lockfiles, lint 2026-10-17 18:43:40 +01:00
flake.nix chore(style): metadata, --version, lockfiles, lint 2026-10-17 18:43:40 +01:00
LICENSE Initial commit 2026-07-07 04:01:04 +01:00
README.md fix(config): default fallback, never warn on file not found 2026-10-17 18:11:37 +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.

im-select compatibility

Use [config file](#Config File) to define the default behaviour

$ limes # default to get
$ limes jyut6ping3 # set to jyut6ping3 

Config File

# $XDG_CONFIG_HOME/limes/config.toml
default_backend = "fcitx5" # fcitx5 | fcitx5-rime | ibus
fcitx5_rime_mode = "schema" # ascii | schema

Build

cargo build --release

With Nix:

nix build