Remix.run Logo
PacificSpecific 4 hours ago

ようこそ

As an aside. What were the CJK IME issues you resolved? Was it related to win32 emacs IME issues?

kurouna 2 hours ago | parent [-]

Thank you for the welcome! Yes, it is exactly related to the Windows Emacs IME issues. Emacs is a product I deeply respect, but configuring it to handle Japanese input smoothly on Windows has always been a challenge for me.

There were two main pain points I desperately wanted to solve for my daily workflow:

1. Prefix keys being swallowed by the IME: In Windows Emacs, if your IME is ON and you try to split the window using C-x 2, the 2 (or full-width 2) gets captured by the IME. The command fails, meaning you constantly have to toggle the IME OFF just to run basic window or buffer commands. In elecxzy, I implemented fine-grained control: when the editor enters a "prefix state" (like after pressing C-x or C-c), it actively prevents the IME from capturing the next keystroke. This allows you to smoothly execute commands like C-x 2 or C-x b even while the IME is left ON.

2. IME User Experience (Positioning and Fonts): In Windows Emacs, unless you apply specific patches or complex configurations, the IME candidate window often fails to appear right next to the text you are typing. Furthermore, the font used during IME composition often differs from the editor's main font. These details really hurt the overall typing UX. By using Electron, elecxzy places an invisible <textarea> exactly at the virtual cursor's pixel position. This lets the browser engine handle the IME natively. The candidate window always tracks the cursor perfectly and the composition text seamlessly matches the editor's styling, without requiring any special configuration from the user—it works smoothly just by running elecxzy.exe.

Eliminating these small, daily frictions was my biggest motivation for building this!

PacificSpecific 2 hours ago | parent [-]

I understand now and thank you for explaining the issues to me.

Good luck on your project!

kurouna 30 minutes ago | parent [-]

Thank you!