Skip to content

drop-stones/im-switch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⌨️ im-switch

A cross-platform input method switcher — Rust crate + CLI.

Crates.io docs.rs CI

im-switch lets you query, switch, and list input methods from the command line or from Rust code. It is designed for tools that need to programmatically control input methods — for example, Vim/Neovim plugins that switch to an ASCII layout when leaving insert mode.

Features

  • Cross-platform — Linux, Windows, and macOS with a single unified API
  • Linux auto-detection — automatically detects fcitx5 or ibus at runtime
  • Library + CLI — use as a Rust crate (cargo add im-switch) or as a standalone CLI tool
  • Windows IME control — get/set keyboard layout (KLID) and toggle IME on/off

Supported platforms

Platform Backend
Linux fcitx5 (D-Bus), ibus (CLI)
Windows Win32 API (keyboard layout + IME)
macOS Carbon TIS API

Installation

cargo install im-switch

CLI

Command Description
im-switch get Print the current input method
im-switch set <id> Switch to the specified input method
im-switch list List available input methods

Windows-only: IME control

Command Description
im-switch ime get Print IME state (enabled / disabled)
im-switch ime enable Enable the IME
im-switch ime disable Disable the IME
im-switch ime toggle Toggle the IME state

Library

cargo add im-switch

See docs.rs for API documentation.

License

MIT

About

⌨ Cross-platform input method switcher for terminal tools

Resources

License

Stars

Watchers

Forks

Contributors