38 lines
1.7 KiB
Nix
38 lines
1.7 KiB
Nix
|
{ pkgs, ... }:
|
||
|
{
|
||
|
home.packages = with pkgs; [
|
||
|
(writeShellScriptBin "clipboard-save" ''
|
||
|
# Script to automatically save copied images and text in specified directories
|
||
|
while ${clipnotify}/bin/clipnotify
|
||
|
do
|
||
|
image_location="/tmp/clipboard/images"
|
||
|
text_location="/tmp/clipboard/text"
|
||
|
[[ -d $image_location ]] || mkdir -p $image_location
|
||
|
[[ -d $text_location ]] || mkdir -p $text_location
|
||
|
|
||
|
case "$(xclip -selection clipboard -t TARGETS -o)" in
|
||
|
*image*)
|
||
|
echo "$(${xclip}/bin/xclip -selection clipboard -t TARGETS -o)"
|
||
|
filename=$(${xclip}/bin/xclip -selection clipboard -t image/png -o | ${openssl}/bin/openssl sha1 | cut -b 49-)
|
||
|
file_exists=$(/bin/ls $image_location | grep $filename | sed "s/\..*//")
|
||
|
[[ $filename != "$file_exists" ]] &&
|
||
|
xclip -selection clipboard -t image/png -o > "$image_location/$filename.png" &&
|
||
|
notify-send -t 5000 "Image Copied" "$image_location/$filename.png"
|
||
|
;;
|
||
|
*UTF8_STRING*)
|
||
|
echo "$(${xclip}/bin/xclip -selection clipboard -t TARGETS -o)"
|
||
|
filename=$(${xclip}/bin/xclip -selection clipboard -t UTF8_STRING -o | ${openssl}/bin/openssl sha1 | cut -b 49-)
|
||
|
file_exists=$(/bin/ls "$text_location" | grep "$filename" | sed "s/\..*//")
|
||
|
echo "$filename" "$file_exists"
|
||
|
[[ "$filename" != "$file_exists" ]] &&
|
||
|
xclip -selection clipboard -t UTF8_STRING -o > "$text_location/$filename"
|
||
|
echo "$text_location/$filename"
|
||
|
touch "$text_location/$filename"
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
'')
|
||
|
];
|
||
|
}
|