ime_shift_fix 0.1.0

Protect IME mode while selecting text with Shift+Click on Windows.
ime_shift_fix-0.1.0 is not a library.

IME Shift Fix

Crates.io Docs.rs CI License

Windows utility that protects IME mode while selecting text with Shift+Click.

The foreground mode installs low-level keyboard and mouse hooks in the current user session. When a Shift key-up follows a Shift+left-click selection, the tool suppresses that key-up and posts/injects a replacement key-up so the target app does not toggle IME mode unexpectedly.

Usage

Run in the current terminal:

ime-shift-fix.exe

Install as a Windows service:

ime-shift-fix.exe --install

Uninstall the service:

ime-shift-fix.exe --uninstall

Show help:

ime-shift-fix.exe --help

Service Mode

The service does not install hooks inside Session 0. Instead, it starts the same executable in the active console user session with the internal --user option. That user-session process owns the hooks, so the behavior applies to the logged-in desktop.

--install and --uninstall first query whether the service already exists. They only request UAC elevation when a service state change is actually needed. The non-elevated parent waits for the elevated child process and then queries the service state again before printing the final result.

Internal options:

  • --service: entry point used by the Windows Service Control Manager.
  • --user: entry point used by the service to run hooks in the logged-in user session.

These are implementation details and are not needed for normal manual use.

Build

Prerequisites

For the x86_64-pc-windows-msvc target, build from an MSVC developer environment:

  • Open "Developer PowerShell for VS 2022", or run VsDevCmd.bat or vcvarsall.bat x64 before building.

Building

cargo build --release

The release binary is written to target\release\ime-shift-fix.exe.

License

This project is licensed under either of the following, at your option:

  • Apache License, Version 2.0
  • MIT License