Tensaku添削

Mark up screens. Stitch tall captures. Move every annotation.

A Wayland screenshot annotation tool with the precision of a red pen.

Tensaku builds on satty (Matthias Gabriel's elegant Wayland screenshot annotator), keeping its fast, focused workflow while adding movable annotations, scroll capture for tall content, and a layer panel.

添削 (tensaku) is Japanese for "proofreading correction," the marks a teacher leaves on a student's paper.

What's new in Tensaku

The headline differences from upstream satty.

Paste images as layers

Ctrl+V drops a clipboard image into the canvas as a resizable, movable layer.

Zoom controls

Zoom indicator dropdown, Ctrl+digit shortcuts, Super+scroll to zoom, all DPR-aware.

Custom popovers

GTK4 tooltips replaced with rich popovers showing live state for arrow style, blur style, highlighter mode, and more.

10-color standard palette

A vetted default palette in a vertical 2-column picker, plus a system color dialog for everything else.

DPR-aware halos & handles

Selection chrome looks crisp at any display scale; corner / edge handles use display-pixel sizing.

Arrow style picker

Standard, Pointy, Curved, and Double arrow geometries for pointing more expressively.

Highlighter modes

Freeform highlighting or a Text-Locked mode that snaps to detected text rows.

Aspect-ratio crop

Constrain crops to common ratios (16:9, 4:3, 1:1, …) with auto-snapping when you switch ratios.

Spotlight tool

Dim the screenshot around a spotlight region. Existing annotations stay bright on top, so callouts don't get washed out.

Welcome & Preferences dialogs

First-launch onboarding plus a GUI for the configuration that previously required editing config.toml.

Toolbar polish

Responsive wrap layout, Ctrl+T to toggle all UI chrome, popover-dismiss handling, and inline help.

Multi-style blur picker

Pixelate, Secure Blur, Gaussian, and Black Out. Choose the right redaction per region from an icon-menu, with irreversible variants for sensitive content.

Smoother brush strokes

Per-annotation smoothness with an RDP-then-Chaikin pipeline: clean curves from imprecise input, dialed in per stroke instead of one global setting.

Crop transforms & dimensions

Rotate 90°, flip horizontal, direct width/height entry with a ↔ swap, background matte picker, and Ctrl+wheel to resize proportionally from center.

From satty

The foundation Tensaku is built on: every original satty feature still works.

Annotation tools

Arrow, rectangle, ellipse, line, brush, text, blur, highlight, crop, all with size, color, and style controls.

Save or copy

Write a PNG / JPEG / WebP to disk or copy directly to the Wayland clipboard. Pipe to - for stdout.

Configurable keybindings

Every shortcut is rebindable via ~/.config/tensaku/config.toml, including chord-style bindings.

Sway / Hyprland friendly

Window-decoration hints, no-decoration mode, and clean integration with tiling compositors.

Custom CSS theming

Style the toolbar, popovers, and dialogs via a user CSS file. Minimum-size and chrome options exposed.

Undo / redo

Full undo stack across drawing, moving, deleting, and cropping. Ctrl+Z / Ctrl+Shift+Z.

Triggers & actions

Map keys to specific actions (save-and-copy, save-and-exit, etc.). Configurable enter/escape behavior.

Install

Tensaku runs on Wayland compositors that implement wlr-layer-shell and wlr-screencopy (Sway, Hyprland, river, Wayfire, etc.).

Pre-built binaries

Download the latest release from GitHub (tarball for x86_64 Linux).

Releases

Build from source

Requires Rust 1.75+ and GTK4 development headers.

git clone https://github.com/jondkinney/tensaku.git
cd tensaku
cargo install --path .

From an upstream satty install

Tensaku reads its own config at ~/.config/tensaku/ and is safe to install alongside satty. Both binaries can coexist.

Quick start

Pipe a screenshot into Tensaku from any Wayland screenshot tool.

  1. Capture a region with grim + slurp

    grim -g "$(slurp)" - | tensaku --filename -
  2. Capture the whole screen

    grim - | tensaku --filename -
  3. Annotate, then copy to clipboard

    Press Ctrl+C to copy the result, or Ctrl+S to save.

  4. Stitch a tall capture

    Click the Auto-Scroll button inside the selection to start a scrolling capture. Tensaku drives the underlying app and stitches the frames automatically.

Screenshots

Annotation, scroll capture, and the layer panel in action.