Files

QA 07 — Cursor

How to run

emacs --no-init-file -l qa/07-cursor/test.el
EMACS_GPU_DISABLE=1 emacs --no-init-file -l qa/07-cursor/test.el

The test cycles through all cursor types automatically every 2 seconds. Press q to stop the cycle and leave the cursor in the last mode.

Checklist

TODO 7.1 FILLED_BOX — inverted colors

The cursor cell must have the cursor-color background and the text in the cursor background color (colors inverted relative to the text). Failure: text is invisible, or cursor has no background fill.

TODO 7.2 HOLLOW_BOX — four 1px edges, transparent inside

Four 1px lines forming a rectangle; no fill inside. Failure: the interior is filled, or one edge is missing.

TODO 7.3 BAR — thin vertical line, left edge of cell

A 1-2px vertical bar on the left side of the current glyph cell. For R2L text (test the Arabic line): bar must be on the right edge. Failure: bar is missing, too wide (>3px), or on the wrong side.

TODO 7.4 HBAR — horizontal line, bottom of cell

A horizontal bar at the bottom of the current glyph cell. Failure: bar is at the top, or occupies the full cell height.

TODO 7.5 Cursor on empty line / fringe fallback

Move point to the last blank line of the buffer (after all content). A cursor must still be visible (rendered in the fringe if no glyph). Failure: cursor disappears completely.

TODO 7.6 Blink off state — cursor disappears completely

With blink-cursor-mode, when the cursor blinks off, nothing must be visible at the cursor position. Failure: a ghost outline or partial fill remains during the off phase.

TODO 7.7 [Metal] BLOCK — no animation on move

With gpu-cursor-animation set to block, moving point must produce no trail, no spring motion, no effects. Failure: cursor slides or leaves a trail.

TODO 7.8 [Metal] SPRING — smooth damped slide

When the cursor moves a large distance, it must slide smoothly to the target with a slight overshoot and settle in ~150ms. Failure: cursor teleports instantly, or oscillates without settling.

TODO 7.9 [Metal] TORPEDO — fading trail on fast movement

Moving through text quickly must leave a trail of fading cursor images. Failure: no trail visible, or trail does not fade.