screen-mark

screen-mark

Screenshot capture and annotation in pure Rust, for Windows and for Linux under X11.

Ctrl+PrtSc saves and copies the monitor under your mouse. Ctrl+Shift+S opens an overlay like the one on this page: drag a region, draw on it, press Enter to copy.

v2.2.0 for Windows 10 and 11 · .msi installer, or the portable .zip · Linux and cargo

Three hotkeys

CtrlPrtSc

Save and copy, in one press

Saves a PNG of the monitor under the mouse to Pictures\screen-mark and puts the same image on the clipboard. Presses made while one is still saving are queued, and file names never overwrite each other. Settings › Capture can switch it to all monitors.

CtrlShiftS

Open the overlay

Drag for a region, click for a window, Esc cancels. Enter or Ctrl+C copies the selection with everything drawn on it; Ctrl+S saves it as PNG, JPEG or WebP.

screen-mark lives in the tray, with optional autostart. The tray menu has the same captures, plus a delayed one with a 3, 5 or 10 second countdown.

ShiftPrtSc

The last region, again

Captures the same area as your last region, with no overlay, then saves and copies it like Ctrl+PrtSc. A window or a chart you capture every day becomes one key.

screen-mark remembers the area across restarts. If it is on no screen any more, because a monitor was unplugged, a popup says so.

All three are rebindable in Settings › Keys. If another app already holds one (Greenshot, ShareX and some keyboard utilities register Ctrl+PrtSc or Shift+PrtSc), a popup names the key; click it to pick another.

Fourteen tools, one key each

In the overlay every tool has a single key. Press one on your keyboard: it lights up below and switches the tool in the overlay at the top of this page.

RRectangle TText IEyedropper ORounded rect PPencil
AArrow FSpotlight HHighlight LLine
CCircle VSelect, move BPixelate NStep marker MMeasurement
V
Select, move
A
Arrow
R
Rectangle
C
Circle
O
Rounded rect
L
Line
P
Pencil
H
Highlight
F
Spotlight
T
Text
B
Pixelate
N
Step marker
I
Eyedropper
M
Measurement

Ctrl+Z and Ctrl+Shift+Z undo and redo, so nothing you draw is final until you copy. The scroll wheel changes the tool size. Highlight multiplies like a real highlighter, so dark text stays readable. Step markers number themselves.

Every key is rebindable in Settings › Keys: click a binding and press the new combination. Settings refuses a combination another binding already uses, one Windows keeps for itself (Alt+Tab, Win+L), or a global hotkey another app has registered, and says which.

Dark and light modes, Nightshift and Dayshift from the RFS palettes. Five annotation colours, or any #rrggbb.

After the capture

Copy
Enter or Ctrl+C. The selection and everything drawn on it, ready to paste.
Save
Ctrl+S. A PNG, JPEG or WebP save dialog, or straight into your captures folder if you turn the dialog off.
Pin
Keeps the capture on screen as an always-on-top window, for reference while you work.
OCR
Runs the Windows OCR API on the capture and copies the text. Windows only, and the OCR language pack for your display language has to be installed.
Upload
Anonymous upload to Imgur. It ships with no client ID: register one at api.imgur.com and set it in Settings or SCREEN_MARK_IMGUR_CLIENT_ID.
History
The last 20 captures, in their own window.

Two switches in Settings › Capture change the region flow. Save a file every time I copy writes a PNG alongside each copy. Copy as soon as a region is drawn skips the toolbar, so drag and release is the whole job.

Why it exists

I wanted a screenshot tool that starts in under a second, draws an arrow without a round trip through a web view, and leaves no background service I didn't ask for.

This is that: winit for windows, tiny-skia for drawing, a tray icon, two global hotkeys and a TOML file. The release is one exe with no browser engine inside.

Install

Every file is on the latest release, with its notes.

Or build it with Rust 1.80 or later:

cargo install --git https://github.com/Real-Fruit-Snacks/screen-mark --locked

From the command line

screen-mark
Starts in the tray.
screen-mark capture --clipboard
Captures the full screen to the clipboard, no UI.
screen-mark capture --save out.png
Captures the full screen to a file, no UI.
screen-mark capture --delay 5
Waits five seconds, then opens the overlay.
screen-mark install
Copies the exe to AppData with a Start Menu entry and PATH. uninstall removes it.

Settings are written on first run to %APPDATA%\screen-mark\config.toml on Windows or ~/.config/screen-mark/config.toml on Linux. Every key is optional; the README lists them.

Tested on

  • Windows 11, Rust stable. My daily machine; every release is used in anger before it's tagged.
  • Windows Server 2025, Rust stable. CI builds, tests and runs clippy on every push.
  • Ubuntu 24.04 on X11, Rust stable. CI builds and tests, then drives the real binary on a virtual display with two monitors.
  • Not tested: Wayland, where the backend is a stub and capture does nothing, and macOS, where it doesn't build.

Known issues

  • Linux capture is X11 only and experimental. Multi-monitor and HiDPI aren't verified there.
  • OCR is Windows only and needs the OCR language pack for your display language.
  • Imgur upload needs your own client ID.
  • Window capture skips cloaked UWP windows on purpose, so some Store apps can't be picked by click.
  • Ctrl+PrtSc is taken on some machines. screen-mark says so and lets you pick another key.
  • --delay on the command line waits silently. The countdown only shows for delays from the tray menu.
  • Linux: capture --clipboard loses the image when the command exits, because X11 clipboards live in the owning process. The tray app's clipboard is fine.
  • Upgrading from HydroShot 1.x moves your config, history and autostart across. Run hydroshot uninstall once to remove an old self-installed copy.