#!/bin/sh # # Siina's bootleg screenshot capturer for use with global keybinds # # Requires: # - maim: takes the screenshot # - imagemagick: for custom resolution sizes # - mpv: plays audio file upon completion # - boop.sh: uploads screenshot to boop.icu # # Example global keybinds: # # TYPE CMD KEYBIND # # Fullscreen scrot.sh Print # Main monitor scrot.sh -m Meta+Ctrl+Print # Active window/Selct scrot.sh -s Meta+Print # # TODO: Autodetect mpv and boop.sh to make them optional # TODO: Figure out how to capture a specific monitor, not just main source ~/.profile # Workaround # Checks for SCREENSHOT_DIR environment variable #screendir="$HOME/Screenshots" sound="$HOME/Projects/local-bin/sounds/shutter.ogg" filename="$(date +'%Y%m%d_%H%M%S').png" resolution="1920x1080" # For desktop multi-monitor if [[ ${1} == "-d" ]]; then resolution="1920x1590" fi args="-m 9 -u" if [[ ! -d $SCREENSHOT_DIR ]]; then mkdir -p $SCREENSHOT_DIR fi echo "Entering $SCREENSHOT_DIR" cd $SCREENSHOT_DIR if [[ ${1} == "-m" ]]; then args="${args} -g ${resolution}+0+510" # for standard 1080p single monitor else args="${args}" fi maim -B $args $filename > /dev/null 2>&1 # cleanup for my dual-monitor setup if [[ ${1} == "-d" ]]; then magick convert $filename -trim +repage $SCREENSHOT_DIR/$filename fi mpv $sound $HOME/.local/bin/boop.sh "$SCREENSHOT_DIR/$filename"