fjFlow is a lightweight Windows desktop utility implemented in AutoHotkey v2 with Windows APIs (Win32, UI Automation, MSAA, and GDI). It anchors an IME status indicator next to your text caret, enables Space Shift home-row navigation, provides mouseless UI hints, and highlights active windows and lines.
To interact with the OS and track input areas across supported text editors, browsers, and Office applications, fjFlow uses standard Windows APIs. Following the principle of Least Privilege, all processing occurs locally in memory with no external network communication implemented.
1. Windows OS Mechanisms & Permissions Used
Used to handle Space Shift home-row navigation (Space + H/J/K/L), one-shot modifier locks, UI Hint overlays (Space + m), QuickDraft triggers, and scroll/click synchronization. Key events are evaluated strictly in volatile memory to trigger actions and are never logged to disk or transmitted externally.
fjFlow primarily uses Windows Accessibility APIs—UI Automation (UIA) for modern apps (Chrome, Edge, VS Code) and Microsoft Active Accessibility (MSAA / oleacc) or CaretGetPos for classic Win32 controls—to obtain screen coordinates of the text insertion caret with low CPU overhead.
For Firefox and Canvas-based editors (such as Google Docs), fjFlow utilizes IAccessible2 alongside automatic accessibility tree wake-up. When an application or Remote Desktop window does not expose caret coordinates through standard APIs, the built-in Pixel Caret Engine compares localized screen frames via GDI to detect the blinking caret position.
By default, fjFlow runs with standard user privileges. However, when the active window belongs to an elevated process (e.g., Task Manager, elevated terminals, or installers), Windows User Interface Privilege Isolation (UIPI) blocks input hooks from standard-privilege apps. Running fjFlow "as Administrator" allows it to operate inside elevated windows.
In the Pro Edition, customized settings (presets, colors, opacity, key mappings) are saved in a human-readable fjFlow.json file in the application folder. It does not modify the Windows Registry, and no cloud syncing or telemetry is implemented.
To keep indicators and overlays accurately aligned across multi-monitor setups with mixed scaling (e.g., 100%, 125%, 150%), fjFlow calls the Windows API SetThreadDpiAwarenessContext to compute physical screen coordinates dynamically.
2. Complete Offline Privacy Policy
No external network communication is implemented in fjFlow. It does not open external sockets or communicate with remote servers, ensuring that your typing activity, window titles, and configuration data remain strictly on your local PC.