Skip to content

Latest commit

 

History

History
1056 lines (871 loc) · 51.2 KB

SHORTCUTS.md

File metadata and controls

1056 lines (871 loc) · 51.2 KB

DRAW — Shortcuts (Keyboard + Mouse)

The single, canonical reference for every keyboard and mouse input in DRAW. This supersedes the old CHEATSHEET.md.

Status: hand-authored and reconciled against a source-level extraction of the input tables (INPUT/KEYBOARD.BM, INPUT/MOUSE.BM, INPUTS_register_all, CMD_init, MENUBAR). Once the input registry is complete (Phase 1), this file becomes generated via --dump-shortcuts, so it can never drift. Full audit of registry coverage & gaps: PLANS/SHORTCUTS-INVENTORY.md. Plan: PLANS/CUSTOMIZABLE-SHORTCUTS.md.


How to read this

Modifier notation

Token Meaning
Primary The platform command modifier. Ctrl on Windows/Linux; ⌘ Cmd on macOS (planned — see note). Written as Ctrl throughout today because QB64-PE does not yet expose ⌘ on macOS, so DRAW uses Ctrl on all platforms.
Ctrl Shift Alt Standard modifiers, held while pressing/clicking.
Hold X + … A hold-key chord: hold a non-modifier key (e.g. F, E, W, G, L, R, Space) and then click/press/drag. Easy to miss — see Hold-Key Chords.
A + B Press A and B together.
A, B Press A, then B (sequence).

macOS note. QB64-PE does not detect the ⌘ Command key on macOS, so DRAW maps the Primary modifier to Ctrl on every platform today. Ctrl+Click is also converted to right-click by macOS — DRAW compensates (e.g. it still sets the symmetry center). See MAC-USERS-README.md. A future logical-Primary mapping (⌘ on macOS) is tracked in the customizable-shortcuts plan and depends on toolchain support.

Mouse notation: L-Click (left), R-Click (right), M-Click (middle), Wheel (scroll), Drag, Dbl-Click. Region matters — the same button does different things over the canvas vs. a panel; see Mouse Reference.

Context: some bindings only fire in a context (text editing, a transform overlay, Palette-Ops mode, over a specific panel). Context is noted in the row or section.


Table of contents

  1. Global / Application
  2. File
  3. Edit · History · Clipboard
  4. View · UI · Zoom · Pan
  5. Tools
  6. Drawing Modifiers
  7. Selection · Marquee · Magic Wand
  8. Layers · Groups · Symbols
  9. Color · Palette · Palette-Ops
  10. Grid · Symmetry · Smart Guides
  11. Text · Character Map · Fonts
  12. Brush · Custom Brush · Spray
  13. Transform · Move
  14. Image · Adjustments · Effects · CRT · AA
  15. Panels · Docking · Workspaces · Capture · Annotate
  16. Audio · Music
  17. Drag & Drop · Image Import
  18. Menu Bar · Command Palette
  19. Mouse Reference
  20. Hold-Key Chords
  21. Command Line
  22. Appendix: internal behaviors

Global / Application

Keys Action
? Open/close the Command Palette (searchable command list)
Ctrl+, Open Settings dialog
Alt (tap & release) Open/close the menu bar
Alt+X Exit DRAW (prompts if unsaved)
Ctrl+Z Undo
Ctrl+Y Redo
Ctrl+Alt+N New Window — another isolated DRAW instance (Settings → General → Allow Multiple Instances)
Ctrl+Alt+K Cancel the running AI generation (aborts the batch) (AI enabled)

File

Documents & images

Keys Action
Ctrl+N New canvas (prompts to save unsaved changes)
Ctrl+O Open / import image (PNG, BMP, JPG, GIF)
Alt+O Open DRAW project (.draw)
Ctrl+S Save (silent if previously saved; dialog if new). A .png saves back into itself with the layers inside; a GIF/BMP/JPG… writes a .draw beside it, or overwrites itself flattened when Settings → General → Save .draw Beside Images is off
Ctrl+Shift+S Save As (always prompts)
Ctrl+Alt+Shift+S Flatten & Save — write the merged image back to the document's own file, in its own format, no .draw (asks for a name only when there is no image file to write)
Ctrl+Alt+S Export selection as cropped image
Ctrl+Shift+Q QB64 Code Export — re-export to last project path (no dialog)
Ctrl+Shift+E Export Again — repeat the last File → Export As (same format + file, no dialog)
Ctrl+Shift+P Capture Screen — grab the screen, pick a region, annotate it (also DRAW --capture)
Alt+1 … Alt+9 Open recent file #1–#9
Alt+0 Open recent file #10

Reference image

Keys Action
Ctrl+R Toggle reference image on/off (loads one if none)
Ctrl+Shift+Wheel Adjust reference-image opacity (5–100%)

Reposition mode (View → Reposition Reference): Drag move · Wheel scale · Arrows nudge 1px · Enter confirm · Esc cancel.

.draw files are PNG images with an embedded drAw chunk preserving layers, blend modes, palette, tool state, reference image, and more. Standard image saves flatten visible layers. Full menu list: File menu (New from Template, Open Aseprite/PSD, Import ANSI, Export As, Export ANSI/Layer/Brush, Extract From/To Grid).


Edit · History · Clipboard

Keys Action
Ctrl+Z / Ctrl+Y Undo / Redo (Ctrl+Shift+Z also redoes)
Ctrl+C Copy selection
Ctrl+Shift+C Copy merged (all visible layers)
Ctrl+X Cut selection (copy + clear with BG)
Ctrl+V Paste centered on the canvas (floats as a Move selection)
Ctrl+Shift+V Paste from OS clipboard
Ctrl+E Clear/erase selection (BG color, or transparent for wand selections)
Ctrl+Alt+C Copy to new layer
Ctrl+Alt+X Cut to new layer
Delete Clear (selection, or whole layer if none)
Backspace Fill with foreground color
Shift+Backspace Fill with background color

Paste workflow: select (M/W) → Ctrl+C/Ctrl+X → Ctrl+V (floats centered on the canvas, auto-engages Move) → drag to reposition (Alt+drag stamps copies) → Enter apply / Esc cancel. (Ctrl+Z removes a paste.)


View · UI · Zoom · Pan

UI toggles

Keys Action
Tab Toggle toolbar
Ctrl+L Toggle layer panel
F4 Toggle preview window
F5 Toggle edit bar
Shift+F5 Toggle advanced bar
Ctrl+Shift+F5 Reload theme (hot-reload colors + icons)
Ctrl+M Toggle Character Map panel
Ctrl+Shift+M Toggle Advanced Color Picker panel
— Toggle 3D Color Space panel (View menu / command palette)
F10 Toggle status bar
F11 Toggle ALL UI (also hides/shows the Advanced Color Picker and 3D Color Space panels). Inside a workspace that hides things: show what it hid / hide it again
Ctrl+Shift+W Workspace switcher (command palette filtered to Workspace:)
L-Drag a docked panel's inner edge Resize it: toolbox columns (1–8), edit/advanced bar columns (1–4), layers width (60–400 px). Saved to the active workspace, or DRAW.cfg in Default. View → Workspace → Save Current Layout As… saves the whole arrangement as a workspace
Alt+Enter Toggle fullscreen (also View → Fullscreen / command palette; live, no restart, persists across launches)
Ctrl+F11 Toggle menu bar
Ctrl+Shift+Up Hide/show menu bar (alt binding)
Ctrl+Shift+Down Hide/show status bar + color strip
Ctrl+Shift+Left Hide/show left-side UI (edit bar, layers)
Ctrl+Shift+L Lock / unlock the layout (View → Lock Layout): panels and floating windows can't be dragged, re-docked or resized — for drawing with a shaky tablet pen
Ctrl+Shift+Right Hide/show right-side UI (toolbar, organizer, drawer)
# Toggle canvas border
Shift (hold) Show crosshair while held
Ctrl+Alt+Shift+G Toggle grayscale preview
Ctrl+Alt+O Toggle CRT effect overlay

Zoom & pan

Keys / Mouse Action
Ctrl+0 Reset zoom to 100% and center
Ctrl+= Zoom in (1→2→3→5→7.5→10→15→20→25→50→100→200→300…800%; below 25% only for canvases big enough to stay 100px+ on screen)
Ctrl+- Zoom out
Wheel Zoom in/out at cursor
Hold Z + 1…9 Zoom preset 100 / 200 / 300 / 400 / 500 / 600 / 700 / 800 / 1600%
Hold Z + 0 Zoom 3200%
Shift+Wheel Vertical pan
Shift+Arrows (no selection) Pan viewport
M-Click + Drag Pan canvas
Space + L-Drag Pan canvas
Dbl M-Click Reset zoom & pan

Zoom snap levels: 25, 50, 100, 200, 300, 400, 500, 600, 700, 800%. Display Scale (window size): Settings (Ctrl+,) → Display → UI Scale (0=auto, 1–8).


Tools

Press a letter to select a tool. Shift+letter picks the filled/variant form.

Key Tool Notes
B Brush Freehand painting (drag)
D Dot Single-pixel stamp (click)
L Line Straight lines
R / Shift+R Rectangle / Filled Outline / filled
C / Shift+C Ellipse / Filled Outline / filled
P / Shift+P Polygon / Filled Outline / filled
Q Bezier Cubic curves (drop anchors, drag handles)
F Fill Flood fill (Shift samples merged canvas)
K Spray Spray paint
E / Hold E Eraser / temp Eraser Tap = permanent; hold = while held
I Picker Eyedropper with loupe
M Marquee Rectangular selection
W Magic Wand Contiguous same-color select
V Move Move/transform selection
Z Zoom Click in / Alt+click out / drag region
T / Shift+T / Ctrl+T Text (VGA / Tiny5 / custom font)
? Command Palette

Smart Shapes and 3D Text are on the toolbar's Smart Shapes flyout (long-press / right-click): Polygon, Pie/Donut, Rounded Rect, Tab, Pill, Pac-Man, 3D Dice, Bevel Rect, Arrow, 3D Text.

Left vs right button: L-Click draws with FG, R-Click draws with BG (Brush, Dot, Line, Rect, Ellipse, Fill, Spray). Exceptions: Picker R-Click picks BG; Polygon R-Click closes shape; Brush/Dot Shift+R-Click draws a connecting line from the last point.


Drawing Modifiers

Shape constraints (while dragging)

Tool Modifier Effect
Line / Rect / Ellipse Shift Constrain to H/V
Brush / Spray Shift Constrain to H/V axis
Line / Polygon Ctrl+Shift Angle-snap + bypass grid snap
Rectangle Shift Perfect square
Rectangle Ctrl Draw from center
Ellipse Shift Perfect circle
Ellipse Ctrl Draw from center
Rectangle / Ellipse select Ctrl Select from center (with Shift = add, Alt = subtract)

Subdivisions (while dragging a Rect / Ellipse / Line)

Key Rectangle Ellipse Line
→ / ← +/− column divider +/− spoke +/− radial spoke
↓ / ↑ +/− row divider +/− concentric ring —

(Rect up to 32/axis; Ellipse up to 16 spokes/rings; Line up to 16 spokes. Counts reset each drag.)

Angle snapping

Ctrl+Shift (hold while dragging/clicking) snaps to angle increments and bypasses grid snap. Increment set by ANGLE_SNAP_DEGREES in DRAW.cfg (default 45° → 8 directions; also 30/15/90°). Applies to Line, Polygon, Polygon-Filled, and Brush/Dot Shift+R-Click connecting lines.

Line end caps (while dragging Line)

s cycle start cap · e cycle end cap (none → arrow → diamond → circle → square → …).

Smart Shapes (while dragging)

↑/↓ primary parameter · ←/→ secondary parameter · Shift constrain aspect · Space reposition without resizing · Wheel adjust primary. 3D Dice/Text lighting: W/S tilt · A/D (or Q/E) orbit · =/- push light · Hold L + 0–9 intensity preset. Dice type: 4/6/8/0/1/2/3 = D4/D6/D8/D10/D12/D20/D30; L-drag wireframe (FG), R-drag solid (BG faces + FG wireframe).


Selection · Marquee · Magic Wand

Selection tools

Key Tool
M Rectangle marquee
W Magic wand (contiguous same-color)
— Freehand / Polygon / Ellipse select (toolbar or command palette)

Marquee mouse

L-Drag create · Shift+Drag add (union) · Alt+Drag subtract · drag corner/edge handle resize · drag inside move.

Magic wand mouse

L-Click select contiguous · Shift+Click add · Alt+Click subtract · Hold E + Click flood-erase to transparent · Hold F + Click flood-fill FG · Hold W + Click select from merged canvas.

Selection keyboard

Keys Action
Ctrl+A Select all
Ctrl+Shift+I Invert selection
Ctrl+H Hide/show marching ants (selection stays active)
Hold M + = / Hold M + - Expand / contract selection 1px
Hold M + Shift+= / Hold M + Shift+- Expand / contract selection (large step)
Ctrl+D / Esc Deselect (from any tool)
Arrows Move selection box 1px
Shift+Arrows Move selection box 10px
Ctrl+Arrows Move content 1px (lifts/floats, Photoshop-style)
Ctrl+Shift+Arrows Move content N px (NUDGE_N)
Ctrl+Alt+Arrows Clone content 1px (keeps original)
Ctrl+Alt+Shift+Arrows Clone content N px

As a clipping mask: an active selection clips all drawing tools to inside it. Grid snap (;) applies to marquee drags; Ctrl+Shift angle-snaps + bypasses grid for the start. Stroke Selection lives in Edit menu / command palette.


Layers · Groups · Symbols

Layer keyboard

Keys Action
Ctrl+L Toggle layer panel
Ctrl+Shift+N New layer (Ctrl+N is New Canvas)
Ctrl+Shift+D Duplicate layer
Ctrl+Shift+R Rename layer
Ctrl+Shift+Delete Delete layer
Ctrl+PgUp / Ctrl+PgDn Move layer up / down
Ctrl+Shift+] / Ctrl+Shift+[ Arrange to top / bottom
Ctrl+Alt+E Merge down
Ctrl+Alt+Shift+E Merge all visible
Ctrl+G New empty group
Ctrl+Shift+G Group from selection (2+ layers)
Ctrl+Shift+U Ungroup
Ctrl+Alt+Shift+C Copy Layer to clipboard (for another DRAW window)
Ctrl+Alt+Shift+V Paste Layer as new layer

Layer panel mouse

L-Click select · Ctrl/Shift+L-Click add/remove from multi-selection · R-Click select+rename · Shift+R-Click cycle blend mode · Alt+L-Click eye solo · Click eye toggle visibility · Drag across eyes swipe show/hide · Click lock opacity lock · Click/Drag opacity bar adjust · Drag row reorder · Wheel scroll list · Wheel on opacity bar adjust · Esc cancel drag · Click triangle collapse/expand group.

19 blend modes (Shift+R-Click a row to cycle). Groups have their own opacity/blend (Pass-Through default) and can nest. Symbol layers link a parent to children (Layer menu: Convert to Symbol, Add Instance, Sync, Rasterize, Detach, Select Parent).


Color · Palette · Palette-Ops

Color keyboard

Keys Action
X Swap FG/BG (including transparency state)
Shift+Delete Set BG to transparent
Ctrl+Alt+R Load a random palette
F1 / F2 / F3 Drawer Brush / Gradient / Pattern mode
Shift+Tab Color cycling on/off (Palette → Cycle Colors; [CYC] in the status bar)

Palette strip mouse

L-Click swatch set FG · R-Click swatch set BG (the FG/BG frames only mark a swatch that is the current color) · Wheel scroll · Shift+Wheel fast scroll (32) · Click ◄/► scroll · Click palette name switch-palette dropdown · letter keys (in picker) jump to palette.

Status-bar swatches

Click FG swatch / Click BG swatch → open color picker.

Palette-Ops mode (toggle via organizer button)

A swatch is its pixels: changing a swatch recolors every pixel of that color.

L-Click swatch select it (yellow frame) and make it FG. While selected, any color change edits the swatch and its pixels live: the Color Mixer, Advanced Color Picker, 3D Color Space, picker or hex input. Each edit is one Ctrl+Z. The matching pixels are also wand-selected after 0.5s.

L-Click selected swatch / L-Click blank strip area deselect (the blank area also clears marks) · Shift+L-Click swatch ramp between the selected swatch and this one (Gradient Blend space; pixels follow) · Dbl L-Click change color in a dialog · Drag move swatch (a marked swatch moves all marked ones) · R-Click / R-Drag mark/unmark · M-Click delete color (remap to nearest; on a marked swatch, all marked) · M-Drag delete range · Shift+M-Click insert current FG color · Esc / R-Click organizer button exit. Undo/redo and opening the color panels keep Palette-Ops on.

Color cycling ranges (Palette-Ops + Ctrl; see manual ch. 3 Color Cycling): Ctrl+L-Drag across swatches new cycle range (white preview band) · Ctrl+L-Click range swatch direction Forward → Reverse → Ping-pong · Ctrl+R-Click pause/resume range · Ctrl+M-Click delete range · Ctrl+Wheel speed (table, wheel up = faster) · Ctrl+Shift+Wheel fine speed (5%). Hovering a range swatch shows it in the status bar (CYC 2: 32-47 REV 8.0/s). Range bands on the swatches: solid = forward, dash-dot = reverse, dashed = ping-pong, dim = paused, red checker = duplicate color (can't cycle).


Grid · Symmetry · Smart Guides

Grid

Keys Action
' Toggle grid
Shift+' Toggle pixel grid (400%+)
; Toggle snap-to-grid
Ctrl+' Cycle geometry (Square → Diagonal → Isometric → Hex)
. / , Grid size +1 / −1 (uniform, 2–50px)
/ Toggle alignment (Corner ↔ Center)
Ctrl+Shift+/ Set grid size from brush; enable center align + snap
Hold G + →/← Grid width +1 / −1
Hold G + ↓/↑ Grid height +1 / −1
Hold G + R Reset grid offset (0,0)
Hold G + Shift+R Reset grid size to theme default
Hold G + Ctrl+R Reset offset + size
Ctrl+Shift (hold) Temporarily bypass grid snap

Cell Fill (View → Grid Cell Fill): Fill tool fills grid cells per geometry.

Symmetry

Keys Action
F7 Cycle mode (Off → Vertical → Cross → Asterisk)
F8 Fill-Adjustment mode (if custom brush/paint mode) — otherwise turn symmetry off
Ctrl+L-Click Reposition symmetry center

Status: SYM:0/1/2/3. Works with all drawing tools.

Fill Adjustment mode (F8 with custom brush/paint mode)

Drag reposition tile origin · Wheel scale uniform · corner handle scale XY · arm handles scale X/Y · rotation handle rotate · Enter/L-Click-outside apply · Esc/R-Click cancel.

Smart Guides

View → Smart Guides (visibility) · Edit → Snap Smart Guides (snap).


Text · Character Map · Fonts

Text editing

Keys Action
T / Shift+T / Ctrl+T Text: VGA / Tiny5 / custom font
Type Enter text
Enter New line
Backspace / Delete Delete before / after cursor
Esc Apply/finish (commit text layer)
←/→ ↑/↓ Move cursor char / line
Home / End Start / end of line
Ctrl+←/→ Move by word
Ctrl+Home / Ctrl+End Start / end of text
Shift+… (arrows/Home/End) Extend selection
Ctrl+Shift+←/→ Select word
Ctrl+A Select all text
Dbl/Triple/Quad-Click Select word / line / all
Ctrl+Z / Ctrl+Y Text-local undo / redo (within edit session, 128 states)

Per-character formatting (while editing)

Ctrl+B bold · Ctrl+I italic · Ctrl+U underline · Ctrl+Shift+X strikethrough · Ctrl+Shift+. / Ctrl+Shift+, size +/− · Alt+→ / Alt+← kerning +/− · Ctrl+Alt+↑ / Ctrl+Alt+↓ baseline raise/lower. Outside an active edit, Alt+U picks up the style at the cursor and Alt+V pastes it.

Character Map (Ctrl+M)

L-Click cell select glyph · CHAR button toggles Character Mode · Alt+U pick FG+BG from glyph under cursor. In Character Mode: arrows move a virtual cursor; F1–F12 insert ANSI block chars (░▒▓█▀▄▌▐■·); DOT/RECT tools fill cells with the glyph.

Fonts

Middle-click the Text toolbar icon → load TTF/OTF. TheDraw (TDF) fonts: [TDF] text-bar button / Tools → TheDraw Font / palette tdf. Browser keys: type filter · Tab cycle focus · ↑/↓ move · PgUp/PgDn page · Home/End first/last · F2 favorite · Enter use · Esc cancel. CBF (color bitmap) fonts chosen from the font dropdown.


Brush · Custom Brush · Spray

Brush

Keys Action
[ / ] Brush size − / + (fine, ±1)
Pen pressure With a drawing tablet, pressure sets Brush / Eraser size and (optionally) opacity, and the mix brush's paint. View → Pen Pressure panel: live meter, per-target lightest-touch sliders, curve
Ctrl+Wheel Brush size presets (1/3/5/7)
` Toggle brush preview / cursor visibility
\ Toggle brush shape / cursor shape
F6 Toggle pixel-perfect mode

Custom brush

Keys Action
Ctrl+B Capture selection as custom brush / clear when brush active
F9 Toggle recolor mode (paint brush in FG)
Shift+O Apply 1px outline in BG (disables recolor)
F12 Export custom brush as PNG
Home / End Flip custom brush H / V
PgUp / PgDn Scale custom brush up / down
/ Reset custom brush scale

Spray (K)

L-Click spray FG · R-Click spray BG · Shift constrain axis · brush size sets nozzle + radius (2× per level). Works with symmetry, selection clipping, and custom brushes.


Transform · Move

Universal transforms (current layer / selection / float — no tool needed)

Keys Action
H / Home Flip horizontal
Ctrl+Shift+H / End Flip vertical
> / < Rotate 90° CW / CCW
PgUp / PgDn Scale 2× / scale 50%
Ctrl+Home / Ctrl+End Scale 2× horizontal / vertical (per-axis pixel-double)

When a custom brush is active, Home/End/PgUp/PgDn/>/<// transform the brush instead (see Custom Brush).

Move tool (V)

Arrows move 1px · Shift+Arrows 10px · Ctrl+Arrows scale 1px · Ctrl+Shift+Arrows scale 10px · Alt (hold) clone mode · Shift+Click select topmost layer at cursor & begin move · Enter apply · Esc cancel.

Edit → Transform overlay (Scale / Rotate / Shear / Distort / Perspective)

Drag handle apply mode · Enter apply & restore previous tool · Esc cancel. Shift: Scale=lock aspect · Rotate=snap 15° · Perspective=mirror opposite corner.


Image · Adjustments · Effects · CRT · AA

  • Image menu: Resize Canvas, Resize Image with Content (scales pixels too), Crop, Flip Canvas H/V, and adjustments (Brightness/Contrast, Hue/Saturation, Levels, Color Balance, Blur, Sharpen, Invert, Desaturate, Posterize, Pixelate). All adjustment dialogs: sliders + Wheel on slider fine-tune · OK/Enter apply · Cancel/Esc revert.
  • Effects menu (Shape / Texture / Render engines): each dialog has a split ORIG/ADJ loupe, wheel-sliders, an angle dial, seed, MIX slider, Reset. Effects can clip to selection or run selection-as-shape.
  • Last-effect shortcuts: Ctrl+F re-apply last effect · Ctrl+Alt+F recall last effect (re-open its dialog) · Ctrl+Shift+F blend/fade last effect (blend modes + isolate-to-new-layer).
  • CRT effect: Ctrl+Alt+O toggle · View → CRT Effect Settings…
  • Anti-Aliasing (experimental, off by default): Edit → Anti-Aliasing toggle (status shows AA); Edit Bar Edge-Mode button (L-Click toggle, R-Click switch Pixel-Perfect ⟷ AA). Config ANTIALIAS.
  • Crop tool: Click+Drag region · handles resize (drag outward past an edge to grow the canvas) · Arrows nudge · Ctrl+Arrows resize · Enter apply · Esc cancel.

Panels · Docking

Docking

Ctrl+Shift+Click a panel → toggle dock side (left ↔ right). Panels: Toolbox, Layer Panel, Edit Bar, Advanced Bar, Character Map (View → Layout menu).

Arranging panels — the handle is a panel's title strip, the layers header, or the thin grip that appears when you hover the top edge of the toolbox, organizer, drawer or a bar.

Mouse Action
L-Drag a handle Move the panel: drop on a screen edge / between columns = new column · top or bottom third of a panel = stack above/below · middle = add as a tab · anywhere else = float
L-Drag the line between two stacked panels Move height between them
L-Click a tab Show that panel
L-Drag a tab strip past its tabs Move the whole tab group
L-Drag the Browser's title to the top / bottom of the canvas Dock it in a band along the top / bottom (drag the band's edge to resize it)
L-Click the chevron / Dbl-Click a title strip Collapse the slot to its title / expand it
L-Click a collapsed title Open it (on the tab you clicked)
R-Click a handle Move to Left / Right Edge · Collapse to Title / Expand · Float / Dock Back · Reset Arrangement · Customize Buttons… (toolbox / bars)
L-Drag a floating window's title bar onto a dock target Dock it (Preview, Color Mixer, Advanced Color Picker, 3D Color Space, Pen Pressure, Browser)
Dbl-Click a floating panel's title Dock it back where it was
L-Drag a floating panel's right / bottom edge or corner Resize it (a floating bar adds icon columns as it widens). Floating bars have a slim grip strip instead of a title
R-Click (while dragging) Cancel the move

Arrangements save to the active workspace (or DRAW.cfg in Default); a workspace keeps them in [DOCK] / [FLOAT].

Customize Toolbars (View → Customize Toolbars…)

Edits the toolbox, edit bar and advanced bar: any tool or command, in any order, on any of them. Changes save into the active workspace (Default asks for a name and makes one).

Input Action
L-Click a tab Edit that panel (Toolbox / Edit Bar / Advanced Bar)
Type in Search… Filter the Available list (Esc clears, Enter ends)
Dbl-Click an Available row / → Add it after the selected button
← / Delete Remove the selected button
↑ / ↓ Move the selected button
+ DIV / + GAP Insert a divider (new row) / an empty cell
RESET · COLUMNS − / + The panel's default buttons · its columns
L-Drag a row in the right list / onto Available Reorder it / remove it
L-Drag an Available row onto the right list or a panel Add it there
Wheel over a list Scroll it
While the window is open: L-Click a toolbox / bar button Select it (nothing runs)
While the window is open: L-Drag a toolbox / bar button Move it (same panel or another); drop it off every panel to remove it

Preview window (F4)

Follow / Floating-Image modes (View → Preview Window). Alt+Click pick FG (CP enabled) · Alt+R-Click pick BG · Wheel zoom preview · drag title move · drag handle resize.

Drawer panel

F1/F2/F3 Brush/Gradient/Pattern mode · L-Click slot select · Shift+L-Click store current · R-Click context menu · M-Click cycle mode · Shift+M-Click clear slot · Shift+R-Click import into slot · L/R-Click mini palette set FG/BG · Wheel over the bins switches .dset sets · Shift+Wheel over the bins scrolls them when a narrow drawer can't show every row.

Color Mixer / Advanced Color Picker / Image Browser

View → Color Mixer (RGB/HSV sliders, hex). View → Advanced Color Picker (Ctrl+Shift+M, or middle-click the Color Mixer toolbox button): Krita-style hue ring + SV triangle, shade selector rows, and a color-history strip. L-Click/drag the wheel/triangle/shades/history → set FG (X swaps FG/BG). Drag the small ring markers to resize the hue-neighbors range. R-Click the history strip → Create Palette / Clear History. All options in Settings → Panels → Advanced Color Picker. View → 3D Color Space: the sRGB gamut as a 3D solid in OKLab / CIELAB / XYZ / RGB — L-Click/drag the solid → set FG · R-Drag/M-Drag (or L-Drag off the solid) spin · Wheel zoom · SOLID/CLOUD · SLICE + slider cut at a lightness. Palette → Generate OKLCh Ramp from FG makes an even dark→light palette (Settings → Panels → Color Blending + Ramps). Brush → Mix Colors (Pigment) makes the brush pick up and smear the colors it crosses, mixing like wet paint (blue through yellow = green; Smudge / Smudge Length / Smudge Radius in Settings); Palette → Generate Pigment Mix FG > BG makes a paint-mixed FG→BG palette. View → Browser: Click select · Ctrl+Click multi-select · Dbl-Click load · drag file → canvas/drawer/layer-panel · Wheel scroll · Dbl-Click title maximize. Floating windows (Color Mixer, Advanced Color Picker, 3D Color Space, Pen Pressure, Image Browser, Preview, Customize Toolbars): drag a title bar to move. Edges snap to other floating windows and to the surrounding chrome, and windows can't overlap one another.


Audio · Music

Keys Action
} Next track
{ Previous track
* Play a random track

Everything else is in the Audio menu: Sound FX toggle/volume/mute, Music toggle/volume/mute, Random Track (per format), Explore Music, Now Playing. MIDI plays via OPL3 FM or a custom .sf2 (Settings → Audio → MIDI Soundfont).


Drag & Drop · Image Import

Where you drop decides what happens:

Drop target Result
Canvas Place on current layer (undoable)
Layer panel New layer
Brush bin (drawer) Custom brush in next free slot (new page if full)
Menu bar Open in a separate DRAW window

Shift while dropping centers on canvas. Images larger than the canvas open the interactive Image Import flow.

Image Import controls: Drag placement marquee · Shift+corner constrained resize · Wheel zoom · Arrows move box 1px · Shift+Arrows 10px · Ctrl+Arrows resize · Alt+Arrows pan crop · R-Drag pan crop · >/< rotate · Home/End flip · Enter apply · Esc cancel.


Menu Bar · Command Palette

Menu bar

Alt (tap) open/close · Ctrl+F11 toggle · ←/→ navigate menus · ↑/↓ items · Enter execute · Esc close. Each item shows its hotkey; toggles show checkmarks.

Command Palette (?)

Type to filter (subsequence/fuzzy) · ↑/↓ navigate · Enter execute · Esc close · Backspace delete char. Smart case: a lowercase query is case-insensitive; an ALL-CAPS query is a case-sensitive acronym match (e.g. TDF → the one TheDraw command).


Mouse Reference

Canvas (general)

Trigger Action
L-Click/Drag Draw/select with FG (tool-dependent)
R-Click Draw with BG (Brush/Dot/Line/Rect/Ellipse/Fill/Spray)
M-Click + Drag Pan
Dbl M-Click Reset zoom & pan
Wheel Zoom
Space + L-Drag Pan
Ctrl+L-Click Set symmetry center

Rebindable mouse controls (Customize Controls)

Open Customize Controls (command palette → "customize controls") and look under the MOUSE category. These rows can be reassigned with SET… → press the button (the defaults above are what ships):

Row Default Notes
Paint with foreground color Left Button swap with BG to paint FG on the right
Paint with background color Right Button
Pan the canvas (drag) Middle Button whole pan drag follows the rebind
Undo (mouse back button) Button 4 (Back) any button → any action
Redo (mouse forward button) Button 5 (Fwd)
Canvas: Wheel tilt right - brush size increase Wheel Tilt Right horizontal wheel tilt (see below)
Canvas: Wheel tilt left - brush size decrease Wheel Tilt Left

Extra buttons (back/forward and beyond, up to 8) are sampled from your device and can drive any action. Overrides persist in DRAW.bindings separately from keyboard overrides, so an action can keep both a key and a mouse trigger. RESET ALL restores every default.

Horizontal wheel tilt (mice with a tilt wheel): tilting the wheel left/right adjusts brush size by default, and is fully rebindable — SET… on a tilt row, then tilt the wheel to capture the direction. DRAW reads the tilt from _WHEEL(4) on a typical mouse; if yours differs, set MOUSE_TILT_WHEEL (see --options-list) to the right wheel index (0 disables tilt). (Vertical-wheel zoom / brush-size and Alt-pick / Ctrl-symmetry rebinding are not yet exposed.)

Per-tool (canvas)

Tool Mouse
Zoom L-Click in · R-Click out · Alt+L-Click out (if your WM doesn't grab Alt+click) · L-Drag zoom-to-region
Picker L/R-Click pick FG/BG · Alt+L/R-Click temporary pick (returns tool on Alt release)
Dot Shift+R-Click line from last point
Marquee drag handles resize · drag inside move · Shift/Alt+Drag add/subtract
Move drag handles scale · drag inside move · Shift+Click pick topmost layer
Bezier Click corner anchor · Click+Drag smooth anchor · Backspace remove last · Enter commit · Esc cancel · H handles

(Layer panel, palette, drawer, preview, browser, toolbar mouse: see their sections above.)

Toolbar button extras

Text: L=VGA, R=Tiny5, M=load custom font. Open: L=open project, R=import image. Pan: M/Dbl-Click resets zoom+pan. Dot: Dbl-L-Click clears custom brush.


Hold-Key Chords

Hold a non-modifier key, then click/press/drag. Easy to miss:

Hold + Action Effect
F L/R-Click Global fill (contiguous) with FG / BG across all visible layers
Shift+F L/R-Click Replace-all global fill (FG / BG)
E Click Flood-erase contiguous pixels to transparent
E (as a tool) Hold to erase, release to restore previous tool
W Click Magic-wand from merged canvas
G Arrow Resize grid width/height independently
L 0–9 Smart-Shape 3D light intensity preset
R Click Picker samples the reference image
Space Drag Pan (any tool); or reposition a Smart Shape while dragging

Workspaces · Capture · Annotate

Keys Action
Ctrl+Shift+W Workspace switcher (type ann + Enter)
F11 (in a workspace) Show what the workspace hid / hide it again
Ctrl+Shift+P Capture Screen
Region picker: Drag / Enter / dbl-click / Space / Esc / Arrows Box / use it / use it / whole screen / cancel / nudge (Shift = 10)

Annotate workspace keys (only while Annotate is active; also Tools → Annotate):

Keys Action
R / Shift+R Rectangle / filled
O Ellipse
L Line
A Arrow (line with a sticky arrowhead)
T Text
H Highlighter (yellow brush on a "Highlight" layer at 45% opacity)
X Redact — drag a box, pixelated on release
N / Shift+N Numbered callout (click) / restart at 1
C / V Crop / Move
Ctrl+C Copy the selection or the whole picture
Ctrl+S Quick save PNG (no dialog)
Ctrl+Enter Done — save, copy, back to the previous document + workspace (a cold DRAW --capture launch closes DRAW instead)

A workspace's [KEYS] can remap any of these; menus and the command palette show the active workspace's keys.


Command Line

./DRAW.run project.draw            # open a project
./DRAW.run image.png               # load an image (import flow if larger than canvas)
./DRAW.run --config DRAW.linux.cfg # specific config (-c)
./DRAW.run --config-upgrade        # reconcile cfg with new defaults
./DRAW.run --reset-defaults        # restore factory cfg
./DRAW.run --options-list          # print every config option + default, then exit
./DRAW.run --option KEY=VALUE      # override any config key for this run (repeatable; never saved)
./DRAW.run --workspace annotate    # start in a workspace for this run
./DRAW.run --workspaces            # list workspaces, then exit
./DRAW.run --capture               # capture the screen (hands off to a running DRAW)

Config priority: --config > OS-specific (DRAW.macOS/linux/windows.cfg) > DRAW.cfg.


Pixel Art Analyzer (overlay)

When the Pixel Art Analyzer overlay is open (Help / Tools → Pixel Art Analyzer):

Keys Action
Esc Close
Space Toggle overlay
G Toggle grayscale
1–8 Toggle individual detectors (jaggies / islands / banding / fat-pixels / dithering / contrast / value / noise)
0 / 9 All detectors on / off
[ / ] Confidence threshold − / +
A Re-analyze
Ctrl+= / Ctrl+- / Ctrl+0 Zoom in / out / reset

Appendix: internal behaviors

These are behaviors rather than user shortcuts, kept out of the tables above:

  • Auto-hide: UI panels hide while a tool is actively dragged over them; Tab/F10/F11 manual toggles stay hidden until manually shown.
  • Drag thresholds: zoom-to-region needs an 8px drag; layer-panel drag shows a blue drop indicator; browser drag-to-canvas starts image import.
  • Toolbar clicks change the tool but do not draw on the canvas.
  • macOS: Ctrl+Click → right-click (DRAW compensates for symmetry center); ⌘ not detected by QB64-PE (see MAC-USERS-README.md).

Generated binding index

Auto-generated from the live input registry by DRAW --dump-shortcuts (regenerate with DEV/tools/gen-shortcuts.sh). Everything between the BINDINGS markers is machine-written — to change it, edit the registry (INPUT/INPUT.BM → INPUTS_register_all), not this file. The curated sections above stay hand-authored (the "augment" model).

Global / Application

Trigger Action Dispatch
Ctrl+F11 Toggle menubar central
Ctrl+Alt+K Cancel AI generation central
Ctrl+, Settings dialog legacy
F12 F12 dev debug dump central
Ctrl+Alt+O Toggle CRT Effect legacy

File

Trigger Action Dispatch
Ctrl+Q Quit central
Ctrl+Shift+P Capture screen central
Ctrl+N New canvas central
Ctrl+O Open Image central
Ctrl+S Save Image central
Ctrl+Shift+S Save As central
Ctrl+Alt+S Export Selection central
Ctrl+Alt+Shift+S Flatten & Save central
Ctrl+Shift+Q Export QB64 Project central
Ctrl+Shift+E Export Again central
Alt+O Open Project legacy
Alt+X Exit legacy

Edit / History / Clipboard

Trigger Action Dispatch
H Flip horizontal central
Ctrl+Shift+H Flip vertical central
Home Flip horizontal (Home) central
End Flip vertical (End) central
PgUp Scale 2x (PgUp) central
PgDn Scale -50% (PgDn) central
Delete DEL - Clear selection central
Backspace Backspace - Fill with FG central
Shift+Backspace Shift+Backspace - Fill with BG central
Ctrl+Home Scale 2x horizontal central
Ctrl+End Scale 2x vertical central
Ctrl+D Deselect central
Ctrl+A Select All central
Ctrl+Shift+I Invert Selection central
Ctrl+H Hide Selection central
Ctrl+C Copy central
Ctrl+Shift+C Copy Merged central
Ctrl+Alt+C Copy to New Layer central
Ctrl+X Cut central
Ctrl+Alt+X Cut to New Layer central
Ctrl+V Paste central
Ctrl+Shift+V Paste from OS Clipboard central
Ctrl+E Clear Selection central
Ctrl+Z Undo central
Ctrl+Y Redo central
Ctrl+Shift+Z Redo (Ctrl+Shift+Z) central

View / Zoom / Pan

Trigger Action Dispatch
1 Z+1 zoom 100% central
2 Z+2 zoom 200% central
3 Z+3 zoom 300% central
4 Z+4 zoom 400% central
5 Z+5 zoom 500% central
6 Z+6 zoom 600% central
7 Z+7 zoom 700% central
8 Z+8 zoom 800% central
9 Z+9 zoom 1600% central
0 Z+0 zoom 3200% central
F4 F4 - Toggle preview window central
F5 F5 - Toggle edit bar central
Shift+F5 Shift+F5 - Toggle adv bar central
Ctrl+Shift+F5 Ctrl+Shift+F5 - Reload theme central
F10 F10 - toggle status bar central
F11 F11 - toggle all UI central
Tab Tab - toggle toolbar central
Ctrl+L Toggle Layer Panel central
Ctrl+Shift+W Workspace switcher central
Ctrl+0 Reset Zoom central
Ctrl+= Zoom In central
Ctrl+- Zoom Out central

Tools

Trigger Action Dispatch
B Brush tool central
D Dot tool central
F Fill tool central
L Line tool central
P Polygon tool central
Shift+P Polygon filled tool central
R Rectangle tool central
Shift+R Rectangle filled tool central
C Ellipse tool central
Shift+C Ellipse filled tool central
E Eraser tool central
M Marquee tool central
W Magic wand tool central
V Move tool central
T Text tool central
Shift+T Text tool (Tiny5 font) central
Z Zoom tool central
I Picker tool central
S Smart shapes tool central
Q Bezier tool central
K Spray tool central
O Bevel-rect outer style central
Ctrl+P Command palette central
Ctrl+T Text Tool (Custom Font) central

Selection

Trigger Action Dispatch
= M+= expand selection 1px central
- M+- contract selection 1px central
Shift+= M++ expand selection large central
Shift+- M+_ contract selection large central

Layers / Groups

Trigger Action Dispatch
Ctrl+Shift+N New Layer central
Ctrl+Shift+Delete Delete Layer central
Ctrl+Shift+D Duplicate Layer central
Ctrl+Shift+R Rename Layer central
Ctrl+Shift+[ Layer to bottom central
Ctrl+Shift+] Layer to top central
Ctrl+PgUp Layer move up central
Ctrl+PgDn Layer move down central
Ctrl+Alt+E Merge layer down central
Ctrl+Alt+Shift+E Merge all visible central
Ctrl+G New Group central
Ctrl+Shift+G Group from Sel. central
Ctrl+Shift+U Ungroup central
Ctrl+Alt+Shift+C Copy Layer central
Ctrl+Alt+Shift+V Paste Layer central
Ctrl+Alt+N New Window central

Color / Palette

Trigger Action Dispatch
F1 F1 - Drawer brush mode central
F2 F2 - Drawer gradient mode central
F3 F3 - Drawer pattern mode central
Shift+Tab Shift+Tab - toggle color cycling central
Shift+Delete Set BG transparent central
1 Opacity 10% central
2 Opacity 20% central
3 Opacity 30% central
4 Opacity 40% central
5 Opacity 50% central
6 Opacity 60% central
7 Opacity 70% central
8 Opacity 80% central
9 Opacity 90% central
0 Opacity 100% central
X Swap FG/BG central

Grid / Symmetry

Trigger Action Dispatch
R G+R reset grid offset central
Shift+R G+Shift+R reset grid size central
Ctrl+R G+Ctrl+R reset grid all central
O G+O grid offset pick mode central
Right G+Right grid width + central
Left G+Left grid width - central
Down G+Down grid height + central
Up G+Up grid height - central
Ctrl+Shift+? Match grid to brush size central
F7 F7 - Symmetry cycle central
F8 F8 - Fill Adjust toggle central
' ' Toggle grid visibility central
" Shift+apostrophe Toggle pixel grid central
Ctrl+' Ctrl+' Cycle grid mode central
; ; Toggle snap-to-grid central
/ / Toggle grid alignment mode central
. . Increase grid size (uniform) central
, , Decrease grid size (uniform) central

Brush / Custom Brush

Trigger Action Dispatch
Home Flip custom brush H (Home) central
End Flip custom brush V (End) central
PgUp Scale custom brush up (PgUp) central
PgDn Scale custom brush down (PgDn) central
F6 F6 - Pixel perfect toggle central
\ \ Toggle brush shape central
` `
Ctrl+B Capture/Clear Custom Brush central
[ Brush size - central
] Brush size + central
F12 Export custom brush PNG (F12) central

Image / Adjustments / Effects

Trigger Action Dispatch
Ctrl+F Redo Last Effect (Ctrl+F) central
Ctrl+Alt+F Recall Last Effect (Ctrl+Alt+F) central
Ctrl+Shift+F Blend Last Effect (Ctrl+Shift+F) central

Panels

Trigger Action Dispatch
Ctrl+R Toggle reference image central
Ctrl+Alt+R Random palette central
Ctrl+Alt+Shift+G Grayscale preview central
Ctrl+M Toggle Character Map central
Ctrl+Shift+M Toggle Advanced Color Picker central

Audio

Trigger Action Dispatch
key#123 Prev music track central
key#125 Next music track central
key#42 Random music track central

Mouse

Trigger Action Dispatch
L-Click Canvas: tool stroke begin (LMB down) legacy
L-Drag Canvas: tool drag begin legacy
L-Drag Canvas: tool drag continue legacy
L-Drag Canvas: tool drag end legacy
L-Click Canvas: tool stroke end (LMB up) legacy
L-Click Canvas: tap (single click no motion) legacy
R-Click Canvas: BG paint begin (RMB down) legacy
R-Drag Canvas: BG drag begin legacy
R-Click Canvas: BG end (RMB up) legacy
M-Click Canvas: pan begin (MMB down) legacy
M-Drag Canvas: pan drag legacy
M-Click Canvas: pan end (MMB up) legacy
Wheel Up Canvas: Wheel up - zoom in legacy
Wheel Down Canvas: Wheel down - zoom out legacy
Ctrl+Wheel Up Canvas: Ctrl+Wheel up - brush size increase legacy
Ctrl+Wheel Down Canvas: Ctrl+Wheel down - brush size decrease legacy
Wheel Tilt Right Canvas: Wheel tilt right - brush size increase legacy
Wheel Tilt Left Canvas: Wheel tilt left - brush size decrease legacy
(unassigned wheel/tilt) Canvas: Pan up (assign a wheel/tilt) legacy
(unassigned wheel/tilt) Canvas: Pan down (assign a wheel/tilt) legacy
(unassigned wheel/tilt) Canvas: Pan left (assign a wheel/tilt) legacy
(unassigned wheel/tilt) Canvas: Pan right (assign a wheel/tilt) legacy
Back Button Undo (mouse back button) central
Fwd Button Redo (mouse forward button) central
L-Click Paint with foreground color legacy
R-Click Paint with background color legacy
M-Click Pan the canvas (drag) legacy
L-Click Toolbar: click (select tool) legacy
Dbl L-Click Toolbar: double-click (subtool flyout) legacy
R-Click Toolbar: right-click (context menu) legacy
Hover enter Toolbar: hover enter (tooltip start) legacy
Hover leave Toolbar: hover leave (tooltip clear) legacy
Move Toolbar: cursor move (sub-button tracking) legacy
L-Click Menubar: click (open menu) legacy
Hover enter Menubar: hover (switch open menu) legacy
L-Click Layer panel: click (select layer) legacy
Dbl L-Click Layer panel: double-click (rename) legacy
R-Click Layer panel: right-click (context menu) legacy
L-Drag Layer panel: drag begin (reorder) legacy
L-Drag Layer panel: drag continue (reorder) legacy
L-Drag Layer panel: drag end (reorder) legacy
Wheel Up Layer panel: wheel up (scroll list) legacy
Wheel Down Layer panel: wheel down (scroll list) legacy
Move Layer panel: cursor move (row tracking) legacy
L-Click Palette: left-click (set FG color) legacy
R-Click Palette: right-click (set BG color) legacy
Dbl L-Click Palette: double-click (edit color) legacy
Hover enter Palette: hover enter legacy
Hover leave Palette: hover leave legacy
Wheel Up Palette: wheel up (next palette) legacy
Wheel Down Palette: wheel down (prev palette) legacy
L-Click Edit bar: click (invoke action) legacy
Hover enter Edit bar: hover (tooltip) legacy
L-Click Adv bar: click (invoke action) legacy
Hover enter Adv bar: hover (tooltip) legacy
L-Click Status bar: click (e.g. toggle indicator) legacy
L-Click Drawer: click (select bin) legacy
Dbl L-Click Drawer: double-click legacy
R-Click Drawer: right-click (context) legacy
L-Drag Drawer: drag begin legacy
Wheel Up Drawer: wheel up (page) legacy
Wheel Down Drawer: wheel down (page) legacy
L-Click Organizer: click legacy
Wheel Up Organizer: wheel up (cycle state) legacy
Wheel Down Organizer: wheel down (cycle state) legacy
L-Click Preview: click (button) legacy
L-Drag Preview: drag begin (move/resize) legacy
L-Drag Preview: drag continue legacy
L-Drag Preview: drag end legacy
Wheel Up Preview: wheel up legacy
Wheel Down Preview: wheel down legacy
L-Click Color mixer: click legacy
L-Drag Color mixer: drag begin legacy
L-Click Browser: click legacy
Dbl L-Click Browser: double-click (open) legacy
L-Drag Browser: drag begin (move/resize) legacy
L-Click Charmap: click (select char) legacy
Dbl L-Click Charmap: double-click (insert) legacy
Wheel Up Charmap: wheel up (page) legacy
Wheel Down Charmap: wheel down (page) legacy
L-Click Subtool flyout: click (select sub-tool) legacy
Move Subtool flyout: cursor track legacy
L-Click Text bar: click (button or dropdown) legacy