Crisp 0.5.0 — the shortcut you actually wanted
Three things a user reported. Two are fixed, the third turned into a feature.
Any key can be a shortcut
Shortcuts used to require Ctrl, Alt or Shift. The reasoning was sound — a
letter bound on its own is taken away from every text box on the system — but it
imposed that judgement on you, and it did so silently, in three places at once:
the shortcut box refused the key with a beep and wrote nothing, the settings
loader deleted modifier-less shortcuts on startup, and it deleted Win+letter
too. If you wanted one key for one screenshot, your choice was undone by the next
launch with no explanation.
The cost has not gone away, it moved to where you can read it. The hint under the
shortcut list now says which keys are taken from typing, in all sixteen
languages, and nothing is refused. Insert, Home, End, Page Up/Page Down, the arrows and the menu key joined the list of keys with nothing to lose —
on a keyboard without a numeric pad those are the spare keys left to bind.
Win+letter is left to RegisterHotKey, the only component that knows which of
those Windows has actually reserved, and which already reports what it cannot
register.
The overlay stays on one monitor
The selection overlay's hint box was centred on a rectangle named monitor that
actually held the virtual screen — every display joined together. On a single
monitor those are the same thing and the bug is invisible. On two, the horizontal
centre of the virtual screen is precisely the seam between the displays, so the
box was cut in half down the middle.
The magnifier had the same root cause with a quieter symptom: it flips to the
other side of the cursor when it runs out of room, and it was measuring that room
against the whole desktop — so near the right edge of the first monitor it decided
there was space and appeared on the second one, away from where you were looking.
Both now use the monitor the pointer is on. What the magnifier samples still comes
from the whole desktop, which is correct.
Upload a capture and get a link back
Seven services. Four need no account at all:
| Service | Link lives for |
|---|---|
| Catbox | permanently |
| Litterbox | 72 hours |
| Uguu | 3 hours |
| 0x0.st | 30–365 days by size |
Three take an API key you paste into Settings: Imgur, ImgBB and
Freeimage.host. The key box stays disabled until the service you picked needs
one, and each service's lifetime and key requirement is written beside its name —
so "why did my link die" and "why does this want a key" are answered in the list
rather than afterwards.
Two ways to trigger it, both off until you ask:
- the editor's Upload button, disabled while no service is chosen;
- Upload and copy the link under After capture, which sends every capture on
its own and puts the link on the clipboard.
Either way the notification arrives when the upload lands, not when the capture
was taken — a message saying "copied" ahead of a failed upload would have you
pasting a link you do not have.
This is the first network code Crisp has had, so the default matters more than the
feature. The setting ships as Do not upload, and with no service chosen the
program never opens a socket. That checkbox is last in the After capture list on
purpose: the eight above it keep the image on your machine, and it is the only one
that does not.
Everything is HTTPS and certificate validation is not relaxed anywhere. The API
key travels in the header for Imgur and in the body for ImgBB — never in a query
string, where it would survive in redirects and server logs. Both are pinned by
tests.
Also
- Settings hint boxes are measured rather than assumed to be three lines tall, so
no translation can clip them. - The settings window's columns were rebalanced to fit the new Upload group.
CMakeLists.txtsaid version 0.1.0 while the changelog had reached 0.4.0. They
agree now.
Build
Windows 10 or 11, x64. No runtime to install, no account, no telemetry.
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
269 tests pass. MIT licensed.