Key Extension
FJ Flow's Key Extension feature is a powerful capability that defines multiple logical layers on your keyboard, enabling diverse inputs and operations with fewer keys.
FJ Flow’s Key Extension feature is a powerful capability that defines multiple logical layers on your keyboard, enabling diverse inputs and operations with fewer keys.
Three Extension Layers
The Key Extension is composed of the following three layers.
| Layer | Indicator Display (Default) | Description |
|---|---|---|
| L1 (Layer 1) | 1 (Blue) |
The basic extension layer triggered by keys like Muhenkan or Henkan. Mainly used for input, editing, and navigation. |
| L2 (Layer 2) | 2 (Red) |
An advanced extension layer for defining complex symbol inputs, mouse operations, and more. |
| Space Shift (SS) | Ⓢ (Purple) |
The layer activated by long-pressing the Space key (default is 300ms or longer). |
Layer Operation and Mutual Exclusion
- Mutual exclusion of L1 and L2: The
L1andL2layers are mutually exclusive (last-one-wins priority) and cannot be active at the same time. - Combined Indicator Display: When the
L1orL2layer is toggled while Space Shift (SS) is active, the indicator displays a combined state such asⓈ1orⓈ2, allowing you to accurately track the currently active layers.
Default Key Extension Mapping List
The following default key mappings are available in the Free version (fjFlowFree.ahk) and the Pro version when launched without a configuration file.
| Layer | Trigger Key | Sent Keystroke / Function |
|---|---|---|
| L0 (Normal) | F8 |
{Highlight} (Highlight current input line) |
| L0 (Normal) | F9 |
{Zoom} (Zoom around cursor) |
| L1 | h |
{Home} (Move to beginning of line) |
| L1 | j |
{PgDn} (Page Down) |
| L1 | k |
{PgUp} (Page Up) |
| L1 | l |
{End} (Move to end of line) |
| L1 | Left / Right |
{Home} / {End} |
| L1 | Up / Down |
{PgUp} / {PgDn} |
| L1 | n / m |
{Layer1} / {Layer2} (Switch extension layers) |
| L1 | w |
{LWin} (Windows Key) |
| L1 | . |
{ExecuteMacro} (Play macro) |
| L1 | 8 |
Type () and move cursor left (Parentheses input) |
| L1 | i |
Type {} and move cursor left (Braces input) |
| L2 | 8 |
[] (Brackets input) |
| L2 | i |
Type <> and move cursor left (Angle brackets input) |
| L2 | h / j / k / l |
Mouse wheel Left / Down / Up / Right |
| L2 | a / b / c / d / e / g |
* / \ / {^} / " / = / ` (Symbol input) |
| L2 | p / q / t / u / v / y |
{+} / ' / ~ / _ / ` |
| SS (Space Shift) | a |
{AltLock} (Alt key lock) |
| SS (Space Shift) | s |
{ShiftLock} (Shift key lock) |
| SS (Space Shift) | d |
{CtrlLock} (Ctrl key lock) |
| SS (Space Shift) | z |
{WinLock} (Windows key lock) |
| SS (Space Shift) | f / g |
{Backspace} / {Delete} |
| SS (Space Shift) | h / j / k / l |
{Left} / {Down} / {Up} / {Right} (Cursor navigation) |
| SS (Space Shift) | p |
0 |
| SS (Space Shift) | q w e r t y u i o |
1 2 3 4 5 6 7 8 9 (Numpad-like numeric input) |
| SS (Space Shift) | x |
{Esc} (Escape) |
| SS (Space Shift) | @ |
- (Minus) |
| SS (Space Shift) | n / m |
{Layer1} / {Layer2} |
| SS (Space Shift) | . |
{Macro} (Start/stop macro recording) |
| SS (Space Shift) | / |
{Tab} (Tab input) |
| SS (Space Shift) | c / v |
^c / ^v (Copy, Paste) |
Key Extension Guide Popup
If keyboard input pauses for a certain period of time (default is 1000ms, configurable) after switching layers, a translucent guide window listing the key mapping definitions for the currently active layer will automatically pop up next to the caret.
- Auto-Hide: The popup disappears instantly the moment you type any key.
- Individual Hide Setting: For keys you have already memorized, you can exclude them individually from the popup by unchecking the “Guide” box on the settings screen list. This allows you to show guides only for newly registered or unlearned keys.
Behavior Stabilization and Fast Repeat Technology
FJ Flow employs the following technical processes to achieve extreme comfort during typing:
- Migration to Static and Dynamic Hotkeys (
HotIf) The dynamic capture using the InputHook method has been retired. Instead, FJ Flow adopts conditional hotkey controls in AutoHotkey, such asHotIf(SpaceIsDown). This completely eliminates key-ignoring bugs in specific applications (such as games and development tools). - Fast Repeat by Bypassing Render Delays During continuous arrow key inputs (key repeat), the update process for the indicator rendering and the internal fixed delay (Sleep) are temporarily bypassed. This enables rapid cursor movement without compromising standard OS key-repeat performance.
- KeyDown Activation
For system operation keys like
Esc,Enter, andTab, we eliminated theKeyWaitmechanism, which waits for the key to be released (KeyUp). Events are sent immediately at the moment the key is pressed (KeyDown), providing a crisp, latency-free operation feel.