36 lines
862 B
Nix
36 lines
862 B
Nix
{ pkgs }:
|
|
|
|
pkgs.writeShellScriptBin "screenshot" ''
|
|
while getopts ":rd" opt
|
|
do
|
|
case "''${opt}" in
|
|
r)
|
|
remote=true
|
|
;;
|
|
d)
|
|
delay=true
|
|
;;
|
|
esac
|
|
done
|
|
|
|
dims="$(${pkgs.slurp}/bin/slurp)"
|
|
|
|
if [[ -n "$delay" ]]
|
|
then
|
|
sleep 5
|
|
fi
|
|
|
|
if [[ -n "$remote" ]]
|
|
then
|
|
name=$(${pkgs.utillinux}/bin/uuidgen).png
|
|
${pkgs.grim}/bin/grim -t png -g "$dims" - | ${pkgs.openssh}/bin/ssh data "cat > data/public/$name"
|
|
path="https://data.vanpetegem.me/public/$name"
|
|
else
|
|
name=$(date +'screenshot_%Y-%m-%d-%H%M%S.png')
|
|
path="$(${pkgs.xdg-user-dirs}/bin/xdg-user-dir PICTURES)/$name"
|
|
${pkgs.grim}/bin/grim -g "$dims" "$path"
|
|
fi
|
|
|
|
${pkgs.sway}/bin/swaymsg exec -- "echo -n '$path' | ${pkgs.wl-clipboard}/bin/wl-copy --foreground"
|
|
${pkgs.libnotify}/bin/notify-send "Screenshot taken" "$path"
|
|
''
|