naelstrof 877e39f70c changed to gpl vor 11 Jahren
README.md updated readme vor 11 Jahren
license.txt changed to gpl vor 11 Jahren
main.cpp fixed a few x syncronization issues vor 11 Jahren
makefile fixed makefile vor 11 Jahren
options.cpp changed -nk to -nkb vor 11 Jahren
options.hpp added options to disable keyboard grabbing vor 11 Jahren
x.cpp give slop's window a class vor 11 Jahren
x.hpp name change, slrn was taken by some guy from 1994 vor 11 Jahren

README.md

slop

slop (Select Operation) is an application that querys for a selection from the user and prints the region to stdout. It grabs the mouse and turns it into a crosshair, lets the user click and drag to make a selection (or click on a window) while drawing a pretty box around it, then finally prints the selection's dimensions to stdout.

features

  • Hovering over a window will cause a selection rectangle to appear over it.
  • Clicking on a window makes slop return the dimensions of the window.
  • Clicking and dragging causes a selection rectangle to appear, renders pretty well (compared to scrot). And will return the dimensions of that rectangle in absolute screen coords.
  • On startup it turns your cursor into a crosshair, then adjusts the cursor into angles as you drag the selection rectangle.
  • Supports simple arguments:
    • Change selection rectangle border size.
    • Select X display.
    • Set padding size, even to negative padding sizes!
    • Set click tolerance for if you have a shaky mouse.
    • Set the color of the selection rectangles to match your theme!

practical applications

slop can be used to create a video recording script in only two lines of code.

#!/bin/bash
eval `slop`
ffmpeg -f x11grab -s "$W"x"$H" -i :0.0+$X,$Y -f alsa -i pulse ~/myfile.webm

slop lets you select a region or window and ffmpeg will record it in the format of your choice! Combined with keybinds and a server on your filesystem you can make a really neat and unobtrusive screenshooter.

You can also take images using imagemagick like so:

#!/bin/bash
eval `slop`
import -window root -crop "$W"x"$H"+$X+$Y ~/myimage.png

You can see my implementation of slop in a screenshooter here: https://gist.github.com/naelstrof/6530959

lets see some action

Ok. Here's a comparison between 'scrot -s's selection and slop's: scrotbad slopgood

You can see scrot leaves garbage lines over the things you're trying to screenshot! While slop not only looks nicer, it's impossible for it to end up in screenshots or recordings because it shuts down before ffmpeg or imagemagick can take a picture.