36 lines
852 B
Nix
36 lines
852 B
Nix
{ pkgs }:
|
|
|
|
pkgs.writeShellApplication {
|
|
name = "screenshot";
|
|
runtimeInputs = with pkgs; [
|
|
dunst
|
|
grim
|
|
libjxl
|
|
slurp
|
|
wl-clipboard
|
|
xdg-user-dirs
|
|
];
|
|
text = ''
|
|
usage() {
|
|
echo "Usage: screenshot { full | section }"
|
|
exit 1
|
|
}
|
|
|
|
test -n 1 || usage
|
|
|
|
FILE_NAME=$(date +'Screenshot_%Y%m%d_%H%M%S')
|
|
TEMPORARY_PATH="/tmp/$FILE_NAME.png"
|
|
SCREENSHOT_PATH="$(xdg-user-dir PICTURES)/$FILE_NAME.jxl"
|
|
if [ "$1" == "full" ]; then
|
|
grim "$TEMPORARY_PATH"
|
|
elif [ "$1" == "section" ]; then
|
|
grim -g "$(slurp -b '#000000aa' -w 0)" "$TEMPORARY_PATH"
|
|
else
|
|
usage
|
|
fi
|
|
wl-copy < "$TEMPORARY_PATH"
|
|
cjxl "$TEMPORARY_PATH" "$SCREENSHOT_PATH"
|
|
dunstify --raw_icon="$TEMPORARY_PATH" "Captura de pantalla realizada" "Guardada como $FILE_NAME.jxl"
|
|
rm "$TEMPORARY_PATH"
|
|
'';
|
|
}
|