MC-WIKI.net
IMBlocker Wiki › Guides › Configuring English State Implementation, Primary State, and ConversionStatus API in IMBlocker

Configuring English State Implementation, Primary State, and ConversionStatus API in IMBlocker

guide

IMBlocker gives you several controls that decide how your input method editor behaves around text fields, search boxes, and chat. This guide covers the settings that govern English state handling, the ConversionStatus API, and a few related compatibility options.

English State Implementation

The englishStateImpl option sets the method used to apply English state. Its tooltip describes it as the way English state gets applied. Three choices are described:

  • CONVERSION_STATUS — Recommended mainly for people using Microsoft IME.
  • RIME — The primary choice for Weasel, Squirrel, and fcitx5-rime users.
  • DISABLE_IM — Choose this when your IME cannot switch to English state on its own. With this option, you unlock the IME yourself using the hotkey (R-Shift by default).

Primary English State

The primaryEnglishState option controls the starting English state of your IME when a text field receives focus. It exists mainly for Chinese users who are accustomed to searching with JECh. Note that this option has no effect on the chat field or on mods that involve few search situations.

ConversionStatus API

The enableConversionStatusApi option is a toggle labeled Allow ConversionStatus API. This API is what governs English state. If you turn it off, the CONVERSION_STATUS English state implementation stops working. In other words, the CONVERSION_STATUS method depends on this API being enabled.

Char Simulation Screens

The charSimulationScreens option manages a list called Char Simulation-preferred Screens. Screens on this list locate the focus owner inside them through char simulation, which the tooltip describes as fully accurate. In most cases the probe character gets absorbed safely by the injection, but compatibility problems can appear in some situations.

Screen Recovering and Whitelist Editing

The enableScreenRecovering toggle is labeled Enable Screen Recovering. When it is on, a list appears showing all recorded screens, which you can edit for whitelisting. The @Tooltip for that list explains that screens appearing there would cause your IME to activate.

Windows Compatibility Settings

Two options live under windowsCompatibilitySettings:

  • enableCursorPositionTracking — labeled Caret Position Tracking.
  • enableCompositionFontTweaks — labeled Composition Font Tweaks. Its tooltip notes that you can render candidates manually if exclusive fullscreen is enabled. It is recommended only when the IME candidate window is invisible under exclusive fullscreen, since the IME's own candidate window offers more features.

Linux Compatibility Settings

Under linuxCompatibilitySettings you will find:

  • enableKeyboardPatch — labeled Enable callback-level Keyboard Patch. It applies a patch that stops non-character keys from reaching the game while candidates are showing. If the candidate window closes because pre-edit characters were cleared with Backspace, the game may fail to process non-character keys; pressing Esc or typing any character resolves it.
  • ibusOnArgName and ibusOffArgName — the arguments for enabling and disabling the IME through IBus. To find the right value, run `ibus engine <argument>` in a terminal and check whether it enables or disables the IME.
  • fcitx5OnArgName and fcitx5OffArgName — the arguments for enabling and disabling the IME through Fcitx5. Determine them by running `fcitx5-remote <argument>` in a terminal.
  • fcitx5OnStateName — the identifier for an enabled Fcitx5 state. Run `fcitx5-remote` in a terminal and use the returned value.

Other Settings

  • commandPrefixRegex — labeled Command Prefix Regex.
  • modCompatibilitySettings — labeled Mod Compatibility Settings, containing sfm$showLineNumber (labeled SFM: Show Line Number).

Adjust the implementation and primary state first, confirm the ConversionStatus API is on if you rely on CONVERSION_STATUS, then tune the compatibility toggles for your platform.