Video_2026-08-10_02-45-55.mov
- Movable and resizable selection rectangle
- Select annotation on canvas (move annotation)
- Freehand drawing
- Eraser
- Rectangle (filled, outlined)
- Line
- Arrow
- Ellipse (filled, outlined)
- Marker
- Steps
- Blur
- Textarea with line breaks and modifiable
- Canvas Actions (undo, redo, clear all)
Note
Currently I don't have hardware to test whether multimonitor works. Feel free to open a pr
Try out without installing:
nix run github:Iamvismorf/Snippy
Note
As of 22.08.26 the Kirigami package in unstable nixpkgs has a regression where icons appear smaller than they should be. inputs.nixpkgs.follows is not recommended. If you want to use follows, override kirigami to version 6.26
{
inputs.snippy.url = "github:Iamvismorf/Snippy";
#...
}The package is available as inputs.snippy.packages.<system>.default
todo
- Qt 6.10+
- Quickshell 0.3.0+
- Your compositor must support wlr-screencopy-unstable or both ext-image-copy-capture-v1 and ext-capture-source-v1
- KDE/kirigami
- Left click to select; left click again to deselect
- Drag the toolbar. Will be reset to it's default position after the selection rectangle is transformed i.e. positon changed or resized
- Selection rectangle size
- Select an annotation. Can only select and move 1 annotation at a time. Available when there is at least 1 annotation on the canvas
- Freehand drawing
- Eraser. Available when there is at least 1 annotation on the canvas. Also see notes
- Rectangle. Defaults to filled. Right click to change mode
- filled
- outlined
- Line
- Arrow
- Ellipse. Defaults to filled. Right click to change mode
- filled
- outlined
- Marker. Defaults to rectangle. Right click to change mode
- rectangle
- freehand draw
- Numbering. Use the spinbox to control the next number
- Blur
- Text
- on hovered: shows the textarea will be focused when left clicked
- Enter: creates new line
- Esc: unfocus the textarea
- Palette
- Reset the selected thickness to default if was modified
- Modify the selected thickness
- Undo(Ctrl+z). Available if current canvas step is not 0. See 20
- Redo(Ctrl+y). Available if current canvas step is not the last. See 20
- Clear the canvas. Available when there is at least 1 annotation on the canvas
- The canvas history. Highlighted shows the current step
- Copy to clipboard(Ctrl+c). Also see notes
- Save to configured path(Ctrl+s)
- Exit(Esc)
Launch snippy for the first time and it will generate ~/.config/config.json and ~/Screenshots. Or create one manually. The defaults are:
{
"general": {
"fontFamily": "Atkinson Hyperlegible Next",
"fontFamilyStyle": "SemiBold",
"minSelectionRectangleHeight": 20,
"minSelectionRectangleWidth": 20,
"saveFolder": "Screenshots",
"showToolTip": false
},
"theming": {
"accent": "#ed5a70",
"black": "#121a21",
"gray": "#c0c2c4",
"lightGray": "#d6d9db",
"red": "#ed5a70",
"white": "#eef2f6"
},
"toolbar": {
"ellipse": {
"defaultToFilled": true
},
"highlight": {
"defaultToRectangle": true
},
"rectangle": {
"defaultToFilled": true
}
}
}Note
Don't forget to remove comments when copying the above defaults
- soramane special thanks to sora for showing how to do stuff
- KDE/spectacle ui and backend inspirations
- Quickshell
- Furkanzmc/QML-Coding-Guide
- Color picker
- Marker shapes
- rectangle
- freehand
- Resizing shapes (if i don't have skill issue (prayge))
- Snap for some shapes (line, arrow, drawing)
-
Eraser tools can only erase a shape. Meaning you can't have "freehand" eraser like in popular paint software 1
-
For the "copy to clipboard" to work you need to have a persistent clipboard manager installed like cliphist, wl-clip-persist, stash, etc... (not guaranteed lol)
-
Memory usage while the app is running
Footnotes
-
potentially skill issue from my side ↩

