I do mean quick
tl;dr: I use a function to quickly import a region: imp filename
; drag a region, done. See below for details.
Hey you. Yes you. You like screenshots, yes? Sure you do. Everyone likes them. Reading a big wall of text: not fun, boring, you’d rather be watching the Netflix you have on in the background for noise. Reading text with images: cool, sexy, maybe the author is a secret journalist?
Also cool: short paragraphs. See?
I screenshot things a lot. I do it for posts on the blog — because per my last email, images in posts are cool and sexy — for issues on GitHub, QA posts, chat messages, saving stuff for later. All sorts of reasons, multiple times per day.
In a comment on an old post recently, Thelo asked about using ffmpeg to screenshot via kmsgrab
. It’s not something I use much, but I said I’d write up what I use. (I elided a second comment about ffmpeg usage changing so the screenshot wasn’t super tall)
I have a couple of aliases for this. The most recent one I added to import to clipboard, which I mentioned before:
alias scrimp="import png:- | xclip -selection clipboard -t image/png"
But if you want to save it for longer, you want to import to a file. I wrapped the command in a tiny function so I could pass an argument easily:
imp() { if [ $# -eq 0 ]; then echo "usage: imp filename (no need for jpg)"; return 1; fi import -quality 95% /home/robert/downloads/$1.jpg }
Example usage: imp theloscreengrab
, which is exactly what I did for the image above.
That saves the image to my downloads directory (that being the directory most used by browsers, which makes it easier for uploading). 95% quality is probably a bit much for screenshots, but hey they look good.
There’s tons of GUI-based programs for this, I’ve even used some of them in the distant past. For me though, it’s hard to beat the convenience and speed of quickly alt-tabbing to a terminal window, imp screenshotname
, click-drag and done.