skip to content
MusesΜοῦσαιdocs

basics / 03 of 13

A first click

Bind stochos to a key, open the grid, and click something in four keystrokes.

Bind a key

stochos starts on a key press and exits after the click, so bind it the way you’d bind a launcher.

where in its config
Hyprland bind = SUPER, semicolon, exec, stochos
Sway bindsym $mod+semicolon exec stochos
i3 bindsym $mod+semicolon exec stochos

On macOS, any launcher or hotkey tool that runs a command will do. In AeroSpace:

aerospace.toml
[mode.main.binding]
alt-semicolon = 'exec-and-forget /usr/local/bin/stochos'

Give the full path, which which stochos prints.

Try it here

Click Send, keyboard only
keys·Focus the screen, then type a column letter.
Focus the screen and type. On a desktop you bind stochos to a key, and it clicks by synthesising pointer events through zwlr_virtual_pointer_v1, XTest or CGEventPost.

This is stochos in miniature, with 8 columns, 5 rows and 9 spots in each cell. The real grid is bigger, but the keys work the same.

Open the grid

Press your key. A grid of 400 cells covers the screen, 20 columns by 20 rows, and the pointer jumps to the middle. Each cell is labelled with two letters: its column’s, then its row’s. Columns and rows take the same 20 letters in the same order, starting from the top left:

text
a s d f j k l ; g h q w e r t y u i o p

So aa is the top-left cell, pa the top-right and ap the bottom-left.

Pick a cell

Type the column’s letter. The pointer moves to that column, which stays lit while the others dim. Type the row’s letter, and the pointer lands in the middle of the cell. On a 1920 × 1080 screen, a cell is 96 by 54 pixels.

Refine and click

The cell splits into 25 spots, five across and five down, each labelled with one letter. Type one, and the pointer moves onto it. Then press Space.

stochos hides the grid, clicks, and exits. That’s the whole loop.

Refining is optional: Space straight after the two letters clicks the middle of the cell. Backspace takes back the last letter, and Escape closes the grid without clicking.

Next