English
Grid mode
Target on the other side of the screen? Grid covers the display with lettered and numbered cells. Type the labels covering your target to narrow the area without moving the pointer all the way across.
Enter it from Normal with g. The default layout is 5 columns × 4 rows:
12345
qwert
asdfg
zxcvb
- Target keys
The initial screen shows a prominent first key at the centre of every top-level cell and a muted, smaller second-key grid within it. The default maximum selection depth is max_depth = 3.
Jump first, fine-tune second
Hold Primary to adjust with Normal movement, scrolling, and clicks. Release it to keep selecting cells.
Controls
| Key | Action |
|---|---|
| Label key | Select a cell and enter the next level |
U | Show UI Hint within the current grid region; Tab, Backspace, or Esc returns to it |
I | Start Text Select within the current grid region; Esc returns to the grid |
` (the key above Tab) | Toggle whether selection follows the pointer |
Primary+Q / Esc | Return to Normal |
Grid labels take priority over identically named inherited Normal bindings. For example, q selects a Grid cell rather than leaving the mode.
U and I use the existing UI Hint and Text Select scans for the selected region. In Text Select, use Alt+C to refine the selection and copy part of the text. Rebind area_hint and area_text in [grid.bindings]. Existing labels and custom inherited actions keep their keys.
Configuration
toml
[grid]
grid_cols = 5
grid_rows = 4
keys = "12345qwertasdfgzxcvb"
max_depth = 3
cursor_follow_selection = true
[grid.ui]
font_size = 20
border_width = 1
# Optional: colours for large initial labels and their inner borders.
# Small labels use text_color with reduced opacity.
# matched_text_color = "#8FA2F0FF"
# matched_border_color = "#8FA2F0FF"
[grid.lifecycle]
after_finish = "normal"
after_click = "finish"keys must contain exactly grid_cols × grid_rows characters, ordered left-to-right and top-to-bottom. For continuous subdivision of one area, use Recursive Grid.