Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snip

A small Windows utility that does two things:

  1. Takes region screenshots and shows them as floating, always-on-top reference windows you can resize and zoom on the spot.
  2. Watches for Ctrl+V in Explorer or on the Desktop and, if the clipboard holds an image but no file, drops it as a .png into the active folder.

Single static executable. No installer, no runtime dependencies, no background service. Lives in the system tray.

Install

Grab snip.exe from the Releases page and run it. Optionally place it under shell:startup to launch with Windows.

Usage

Capture

Press Ctrl + Shift + S (or click the tray icon → New Snip). The screen dims, drag to mark a region, release to confirm. Esc or right-click cancels.

Every snip is autosaved to %UserProfile%\Pictures\snip\snip-<timestamp>.png the moment it is taken — no extra click needed.

Snip windows

The captured region appears at its original screen position as a frameless, topmost window. Interaction model (no visible handles — works anywhere on the window):

Gesture Action
Alt + left-drag Move the window
Alt + right-drag Resize the window
Mouse wheel Zoom (cursor-anchored, fit ↔ 16×)
Left-drag (when zoomed in) Pan
Double-click Toggle fit ↔ 1:1
Right-click Context menu
Hover near the bottom Reveal the action bar

The bottom action bar exposes Save As… (native dialog), Copy (to clipboard), and Close. The context menu adds Fit and an Always on top toggle — turning it off removes both the topmost flag and WS_EX_NOACTIVATE, so the window behaves like a normal floating window that clicks can raise.

Windows render images in contain mode with a dark letterbox — the source pixels are always kept; aspect ratio is preserved regardless of window size.

Paste image to folder

While Paste image on Ctrl+V is checked in the tray menu (default on), pressing Ctrl + V while Explorer or the Desktop is focused will:

  • Resolve the active folder via the Shell IShellWindows COM enumeration (Desktop falls back to FOLDERID_Desktop),
  • Skip if the clipboard already has a file list (let Explorer's native paste win),
  • Otherwise read CF_BITMAP, encode as PNG, and write clip-<timestamp>.png into the folder.

The original Ctrl+V keystroke is not consumed — the hook only observes. On non-Explorer windows the feature is a no-op.

Tray menu

Item Effect
New Snip Equivalent to Ctrl+Shift+S
Paste image on Ctrl+V Enable / disable the Explorer paste behavior
Quit Exit

If the global hotkey is already taken by another app, Snip pops a single warning at startup and continues in tray-only mode.

Build

Requires the MSVC Rust toolchain and the Windows 10/11 SDK (the SDK's rc.exe is used by winresource to embed VERSIONINFO and the application manifest). The easiest way to provision both is the Visual Studio Build Tools installer with the "Desktop development with C++" workload.

cargo build --release

Output: target\release\snip.exe (~520 KB, statically linked against the Win32 APIs only).

Source layout

src/
├── main.rs         entry point, tray, message loop, dispatch
├── hook.rs         WH_KEYBOARD_LL hook → posts a thread message on Ctrl+V
├── explorer.rs     IShellWindows / IWebBrowser2 to resolve foreground folder
├── clipboard_in.rs CF_BITMAP read → CapturedBitmap
├── capture.rs      GDI BitBlt of virtual desktop region
├── overlay.rs      dimmed full-screen region-select window
├── snipwin.rs      frameless topmost image window (zoom / pan / toolbar)
├── save.rs         PNG encoding, autosave path, native Save As dialog
└── util.rs         wide-string helpers, modifier-key probes

The application manifest declares Per-Monitor v2 DPI awareness and the UTF-8 active code page; both are embedded at build time.

License

MIT — © Akın Özgen

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages