fjFlow is a resident Windows desktop utility (implemented in AutoHotkey v2) designed to seamlessly display a caret-following status indicator, handle smart ShiftLock, row highlight (F8), zoom window (F9), and focus window borders.
To interact with the OS and monitor input areas in various text editors, browsers, and Office applications, fjFlow utilizes specific Windows APIs and configurations. In line with accessibility standards and the principle of Least Privilege, fjFlow is designed to be fully standalone, securing your data by performing all operations locally without any network access.
1. Windows OS Mechanisms & Permissions Used
Used to monitor and hook specific keyboard triggers safely, such as "single tap Shift key (under 300ms)" for ShiftLock, "double-tap Ctrl key" to pause/resume the tool, and hotkeys (F8/F9). Key events are processed strictly in-memory to trigger visual elements and are never saved to disk (no keylogging) or transmitted externally.
fjFlow leverages the native Windows UI Automation (accessibility) API to obtain the exact, real-time screen coordinates of the active text insertion cursor (caret) inside browsers (Chrome, Edge) and text editors (VSCode, Notepad, etc.).
When Firefox and Canvas-based editors (like Google Docs) are detected, fjFlow automatically sends a temporary Ctrl+Alt+Z command (which enables Screen Reader Mode) to force the editor to construct an accessibility tree, allowing the coordinates to be retrieved reliably via the IAccessible2 interface.
By default, fjFlow runs with standard user privileges. However, when active windows belong to processes running with administrative privileges (e.g., Task Manager, elevated terminals, installers), Windows User Account Control (UAC) blocks hook operations from lower-privilege apps. Running fjFlow "as Administrator" resolves this restriction.
All customization settings (colors, opacity, font size, custom characters) configured in the GUI settings panel are saved in a local configuration file named fjFlow.ini in the same folder as the executable. No cloud syncing or telemetry reporting is included.
To prevent alignment issues on multi-monitor setups with mixed DPI settings (e.g., 125%, 150%), fjFlow calls the Windows API SetThreadDpiAwarenessContext to calculate coordinates dynamically and align elements properly.
2. Complete Offline Privacy Policy
fjFlow has zero networking capabilities. It does not communicate with external servers, ensuring that your typing data, application list, and settings never leave your local machine. The application is fully open-source, allowing anyone to verify its safety and integrity.