parent
982aa92e80
commit
e543264bb2
2 changed files with 92 additions and 17 deletions
@ -0,0 +1,49 @@ |
||||
#!/bin/bash |
||||
|
||||
# Creates a gif using a list of files from stdin |
||||
tmpdir="/tmp/sxiv-gif/" |
||||
rm -rf "$tmpdir" |
||||
mkdir -p "$tmpdir" |
||||
|
||||
framerate="prompt" |
||||
format="gif" |
||||
extension="" |
||||
|
||||
while [[ $# -gt 0 ]]; do |
||||
case "$1" in |
||||
"-r"|"--framerate") |
||||
framerate="$2" |
||||
shift |
||||
shift |
||||
;; |
||||
"--mp4") |
||||
format="mp4" |
||||
shift |
||||
;; |
||||
esac |
||||
done |
||||
|
||||
if [[ "$framerate" == "prompt" ]]; then |
||||
framerate=$(echo -e "0.25\n0.5\n0.75\n1\n2\n5\n10" | rofi -dmenu -p Timeout) |
||||
fi |
||||
|
||||
i=1 |
||||
while read file; do |
||||
extension="${file##*.}" |
||||
number=$(printf "%03d" $i) |
||||
echo "$number" |
||||
cp "$file" "${tmpdir}file${number}.${extension}" |
||||
i=$((i+1)) |
||||
done |
||||
|
||||
case "$format" in |
||||
"mp4") |
||||
ffmpeg -f image2 -framerate "$framerate" -i "${tmpdir}file%03d.${extension}" -crf 0 "${tmpdir}out.${format}" |
||||
;; |
||||
*) |
||||
ffmpeg -f image2 -framerate "$framerate" -i "${tmpdir}file%03d.${extension}" "${tmpdir}out.${format}" |
||||
esac |
||||
|
||||
mv "${tmpdir}out.${format}" "$HOME/Desktop/" |
||||
|
||||
notify-send "Done" |
@ -1,18 +1,44 @@ |
||||
#!/bin/sh |
||||
while read file |
||||
do |
||||
case "$1" in |
||||
"greater" ) |
||||
convert -rotate 90 "$file" "$file" ;; |
||||
"less") |
||||
convert -rotate 270 "$file" "$file" ;; |
||||
"y") |
||||
echo -n "$file" | xclip -selection clipboard ;; |
||||
"g") |
||||
gimp "$file" & disown ;; |
||||
"G") |
||||
optirun gimp "$file" & disown ;; |
||||
* ) |
||||
notify-send "$1" |
||||
esac |
||||
done |
||||
|
||||
# This file is run from the sxiv when ctrl+x is pushed and then another key combination |
||||
# |
||||
# The file names are passed to stdin (1 per line) |
||||
# |
||||
# The key combination pushed after ctrl+x is sent as the first argument |
||||
# |
||||
# I have organised this script so when ctrl is pushed, a single command is run using all of the selected images |
||||
# e.g. creating a gif out of all selected images |
||||
# |
||||
# If ctrl is not pushed, the command is run on each image individually |
||||
# e.g. rotating images or opening them in gimp |
||||
|
||||
|
||||
case "$1" in |
||||
"C-g") |
||||
cat | createGif ;; |
||||
"C-v") |
||||
cat | createGif --mp4 ;; |
||||
"C-"*) |
||||
# If none of the above were used and ctrl was pushed, send a notificaton with the key combination |
||||
notify-send "$1" ;; |
||||
*) |
||||
# If the above key combinations were not pushed, loop through each of the images and check the combinations below |
||||
while read file |
||||
do |
||||
case "$1" in |
||||
"greater" ) |
||||
convert -rotate 90 "$file" "$file" ;; |
||||
"less") |
||||
convert -rotate 270 "$file" "$file" ;; |
||||
"y") |
||||
echo -n "$file" | xclip -selection clipboard ;; |
||||
"g") |
||||
gimp "$file" & disown ;; |
||||
"G") |
||||
optirun gimp "$file" & disown ;; |
||||
*) |
||||
# If none of the above were used, send a notificaton with the key combination |
||||
notify-send "$1" |
||||
esac |
||||
done |
||||
esac |
||||
|
Loading…
Reference in new issue