#!/bin/sh error_usage() { >&2 cat << EOF Usage : glurp full|area clip|file EOF exit 1 } screenshot_path() { printf %s "/tmp/screenshot-${USER}-$(date +%N).png" } grim=grim wl_copy_args="-t image/png" # Arguments case "$1" in full) ;; area) slurp=slurp pipe1='|' grim_args="-g -" ;; *) error_usage ;; esac shift case "$1" in clip) pipe2='|' wl_copy=wl-copy ;; file) grim_args="${grim_args} $(screenshot_path)" ;; *) error_usage ;; esac shift [ -n "$wl_copy" ] && wl_copy="${wl_copy} ${wl_copy_args}" # Execution set -xe "$slurp" "$pipe1" "$grim" "$grim_args" "$pipe2" "$wl_copy"