diff options
author | tdro <tdro@users.noreply.github.com> | 2020-03-18 00:40:10 -0400 |
---|---|---|
committer | tdro <tdro@users.noreply.github.com> | 2020-03-18 00:40:10 -0400 |
commit | db711c989760805b0e3facabe938df8ad1080640 (patch) | |
tree | c00f8f4b1341f48d0fe96a71c1f726dc14217ad4 /.config/ranger | |
parent | 1848eb4368ec7059089a0c10b636d4346e3a7f8c (diff) | |
download | dotfiles-db711c989760805b0e3facabe938df8ad1080640.tar.gz dotfiles-db711c989760805b0e3facabe938df8ad1080640.tar.bz2 dotfiles-db711c989760805b0e3facabe938df8ad1080640.zip |
.config/ranger: Move scripts to local bin
Diffstat (limited to '.config/ranger')
-rw-r--r-- | .config/ranger/scripts/imgtools | 218 | ||||
-rw-r--r-- | .config/ranger/scripts/pdftools | 159 | ||||
-rw-r--r-- | .config/ranger/scripts/rntools | 231 |
3 files changed, 0 insertions, 608 deletions
diff --git a/.config/ranger/scripts/imgtools b/.config/ranger/scripts/imgtools deleted file mode 100644 index b281f7b..0000000 --- a/.config/ranger/scripts/imgtools +++ /dev/null @@ -1,218 +0,0 @@ -#!/bin/bash -: <<COMMENT - Copyright (C) 2012 Tri Le <trile7 at gmail dot com> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation version 3. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -COMMENT - -version="imgtools v0.1.1" -blue='\e[0;34m'; green='\e[0;32m'; red='\e[0;31m'; yellow='\e[0;33m'; bold='\e[1m'; none='\e[0m' -function menu { - n=0 - choices=("$@") - echo -e "$blue$bold$menutitle" - for i in "${choices[@]}"; do - echo -e "$none$((n++))) $yellow$i" - done - echo -en "${none}c|q) ${yellow}Cancel" - echo -e "$green" - read -rp "Enter a choice from above menu: " i - echo -e "$none" - [[ $i =~ c|q ]] && exit 1 - if test "$i" -lt $n 2>/dev/null; then - choice=${choices[i]}; return "$i" - else - echo -e "$red$i is an invalid entry...please try again!" - menu "${choices[@]}" - fi - } - -function slideshow { - if [[ ${files[0]} = -* ]]; then - for i in 0 2 4; do - if [[ ${files[i]} = -* ]]; then opt=("${opt[@]}" "${files[i]}" "${files[i+1]}"); unset "files[i]" "files[i+1]"; fi - done - else - echo "Default delay 2 seconds, loop forever, and resize only large image to 800x600:" - echo " -delay 2 -loop 0 -resize 800x600>" - echo -ne "$green" - read -rp "Enter slideshow options (enter to use defaults): " -a opt - echo -ne "$none" - fi - for i in 0 2 4; do - case ${opt[i]} in - *delay) d=${opt[i+1]} ;; - *loop) l=${opt[i+1]} ;; - *resize) s=${opt[i+1]} ;; - esac - done - [[ ${files[2]} ]] || err "You must specify at least one image file" - display -coalesce -auto-orient -immutable -delay "${d:=2}" -loop "${l:=0}" -resize "${s:=800x600>}" "${files[@]}" - } - -function info { - echo -e "${yellow}image, format, dimension, geometry, depth, class, size, processing times $none" - for i in "${files[@]}"; do - [[ -f $i ]] && identify "$i" || echo -e "$red$i doesn't exist$none" - done - } - -function wallpaper { - if [[ ${files[0]} = -* ]]; then - choice=${files[0]//-}; img0=${files[1]} - else - img0=${files[0]} - menutitle="---Wallpaper Modes---" - menu "Tile" "Resize and Tile" "Center" "Resize and Center" "Stretch" - fi - [[ -f $img0 ]] || err "$img0 doesn't exist" - res=($(xrandr | grep \* | grep -o "[0-9]*x[0-9]*")) || res=($(xdpyinfo | grep dimensions: | grep -o "[0-9]*x[0-9]*")) || res=$(xprop -root _NET_DESKTOP_GEOMETRY | cut -d'=' -f2 | tr -d ' ' | tr ',' 'x') - rootsize=${res:=800x600}; rootw=${res%x*}; rooth=${res#*x} - img=/tmp/.wallpaper.jpg - case $choice in - [tT]ile) display -window root "$img0"; exit ;; - *[rR]esize*) convert "$img0" -resize $rootsize "$img" ;; - [sS]tretch) convert "$img0" -resize $rootsize! "$img" ;; - *) convert "$img0" -resize $rootsize\> "$img" ;; - esac - if [[ $choice = *[cC]enter* ]]; then - imgw=$(identify -format "%w" $img) - imgh=$(identify -format "%h" $img) - x=$((rootw-imgw)); x=$((x/2)) - y=$((rooth-imgh)); y=$((y/2)) - display -geometry $rootsize+$x+$y -window root $img - else - display -window root $img - fi - } - -function resize { - if [[ ${files[0]} = -*size ]]; then - s=${files[1]}; unset "files[0]" "files[1]" - else - echo -e "Use resize operators ${green}> < !${none} to determine what image size to resize. Examples:" - echo -e " ${green}800x600>${none} reduce only larger image to given size keeping aspect ratio" - echo -e " ${green}800x600<${none} enlarge only smaller image to given size keeping aspect ratio" - echo -e " ${green}800x600!${none} force image to given size ignoring aspect ratio" - echo -e " ${green}800x600${none} resize to given size keeping aspect ratio" - echo -ne "$green" - read -rp "Enter new size (WxH in pixel): " s - echo -e "$none" - fi - if [[ $s = [0-9]*[0-9] || $s = x[0-9]* || $s = [0-9]*x || $s = [0-9]*[\>\<\!] ]]; then - for i in "${files[@]}"; do - newname=${i%.*}_s$s.${i##*.} - [[ -f $i ]] && convert "$i" -resize "$s" "$newname" || echo -e "$red$i doesn't exit$none" - done - else - echo -e "${red}Invalid size$none" - resize "${files[@]}" - fi - } - -function rotate { - if [[ ${files[0]} = -*angle ]]; then - d=${files[1]}; unset "files[0]" "files[1]" - else - echo -ne "$green" - read -rp "Enter angle (non-zero number): " d - echo -ne "$none" - fi - if [[ $d -gt 0 || $d -lt 0 ]]; then - for i in "${files[@]}"; do - newname=${i%.*}_r$d.${i##*.} - [[ -f $i ]] && convert "$i" -rotate "$d" "$newname" || echo -e "$red$i doesn't exit$none" - done - else - echo -e "${red}Angle must be a non-zero number$none" - rotate "${files[@]}" - fi - } - -function format { - if [[ ${files[0]} = -* ]]; then - choice=${files[0]//-}; unset "files[0]" - else - menutitle="---Image Formats---" - menu "jpg" "png" "gif" "ico" "bmp" "tif" "ps" "pdf" - fi - for i in "${files[@]}"; do - newname=${i%.*}.$choice - if [[ ! -f $i ]]; then echo -e "$red$i doesn't exist$none"; continue; fi - if [[ $i = "$newname" ]]; then echo -e "$yellow$i is already $choice format$none"; continue; fi - case $choice in - tif|ps|pdf) convert "$i" -compress Zip "$newname" ;; - bmp) convert "$i" BMP3:"$newname" ;; - *) convert "$i" "$newname" ;; - esac - done - } - -function 2pdf { - if [[ ${files[0]} = -*name ]]; then - f=${files[1]}; unset "files[0]" "files[1]" - else - echo -e "${green}Default is combined_images.pdf" - read -rp "Enter pdf filename: " f - echo -ne "$none" - fi - if [[ -z $f ]]; then f=combined_images.pdf - elif [[ $f != *.pdf ]]; then f=$f.pdf; fi - [[ -e $f ]] && f=${f%.*}_$(date +%s).pdf - [[ ${files[2]} ]] || err "You must specify at least one image file" - mkdir -p "$(dirname "$f")" - convert "${files[@]}" -compress Zip "$f" - } - -function usage { - echo "$version" - echo -e "${bold}Usage: ${0##*/} [command] [option] images$none" - echo "Commands and options:" - echo " --slideshow [--delay sec --loop n --resize pixel]" - echo " --info" - echo " --wallpaper [--tile|--resizetile|--center|--resizecenter|--stretch]" - echo " --resize [--size pixel]" - echo " --rotate [--angle degree]" - echo " --format [--jpg|--png|--gif|--ico|--bmp|--tif|--ps|--pdf]" - echo " --2pdf [--name filename]" - exit - } - -function mainmenu { - if [[ $cmd ]]; then $cmd; return; fi - echo -e "${yellow}Files in selection:$none" - for i in "${files[@]}"; do echo -n "$i "; done - echo - menutitle="---Image Tools---" - menu "Image Slideshow" "Image Information" "Set Image as Wallpaper" "Image Resize" "Image Rotation" "Image Format Conversion" "Combine Images to PDF" - case $choice in - *Slideshow) slideshow ;; - *Info*) info ;; - *Wallpaper) wallpaper ;; - *Resize) resize ;; - *Rotation) rotate ;; - *Format*) format ;; - *PDF) 2pdf ;; - esac - mainmenu - } - -function err { echo -e "$red$*$none"; exit 1; } - -case $1 in - -h|--help) usage ;; - --*) cmd=${1//-}; shift; files=("$@") ;; - *) files=("$@") ;; -esac -[[ $# -eq 0 ]] && usage -mainmenu "$cmd" diff --git a/.config/ranger/scripts/pdftools b/.config/ranger/scripts/pdftools deleted file mode 100644 index 1aab379..0000000 --- a/.config/ranger/scripts/pdftools +++ /dev/null @@ -1,159 +0,0 @@ -#!/bin/bash -: <<COMMENT - Copyright (C) 2014 Tri Le <trile7 at gmail dot com> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation version 3. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -COMMENT - -version="pdftools v0.2.3" -blue='\e[0;34m'; green='\e[0;32m'; red='\e[0;31m'; yellow='\e[0;33m'; bold='\e[1m';none='\e[0m' - -function menu { - n=0 - choices=("$@") - echo -e "$blue$bold$menutitle" - for i in "${choices[@]}"; do - echo -e "$none$((n++))) $yellow$i" - done - echo -en "${none}c|q) ${yellow}Cancel" - echo -e $green - read -p "Enter a choice from above menu: " i - echo -e $none - [[ $i =~ c|q ]] && exit 1 - if test $i -lt $n 2>/dev/null; then - choice=${choices[i]}; return $i - else - echo -e "$red$i is an invalid entry...please try again!" - menu "${choices[@]}" - fi -} - -function mainmenu { - if [[ -z $1 ]]; then - menutitle="---PDF Tools---" - menu "PDF Merge" "PDF Split" "PDF Extract" "PDF to JPG" "PDF to Text" - case $? in - 0) merge ;; - 1) split ;; - 2) extract ;; - 3) 2jpg ;; - 4) 2txt ;; - esac - else - $cmd - fi - mainmenu -} - -function merge { - if [[ ${#files[@]} -lt 2 ]]; then - echo -e "${red}Select at least 2 or more PDF files to merge" - exit 1 - fi - echo -ne $green - read -p "Enter merged pdf name (default merged.pdf): " f - echo -e $none - if [[ $f ]]; then - [[ $f != *.pdf ]] && f=$f.pdf - else f=merged.pdf - fi - [[ -e $f ]] && f=${f%.*}-`date +%s`.pdf - mkdir -p `dirname "$f"` - gs -o -q -sDEVICE=pdfwrite -sOutputFile="$f" "${files[@]}" - if [[ $? -eq 0 ]]; then - echo -e $green - read -p "Remove `echo ${files[@]}` (Y/n)? " i - [[ $i = n ]] || rm "${files[@]}" - fi -} - -function split { - for i in "${files[@]}"; do - totalp=`gs -q -dNODISPLAY -c "($i) (r) file runpdfbegin pdfpagecount = quit"` - for (( p=1; p<=$totalp; p++ )); do - gs -o -q -sDEVICE=pdfwrite -dFirstPage=$p -dLastPage=$p -sOutputFile="${i%.*}-p$p.pdf" "$i" - done - done -} - -function extract { - echo -e "Use ${green}space$none for separating pages, ${green}dash$none for range of pages, and ${green}end$none for the last page. For example, to extract pages 1, 5, and 8 to the last page, enter: ${green}1 5 8-end" - read -p "Enter page: " -a p - echo -e $none - if [[ -z $p ]]; then - echo -e "${red}A value is required for page $none" - extract "$@"; return 1 - fi - for i in ${p[@]}; do - [[ $i = end ]] && continue - test ${i%*-end} -gt 0 2>/dev/null && continue - test $((i)) -lt 0 2>/dev/null && continue - echo -e "${red}$i is invalid $none" - extract "$@"; return 1 - done - tmpdir=/tmp/pdfextract - mkdir -p $tmpdir - for i in "${files[@]}"; do - pages=`gs -q -dNODISPLAY -c "($i) (r) file runpdfbegin pdfpagecount = quit"` - for j in ${p[@]}; do - if [[ $j = *-* ]]; then - p1=`echo $j | cut -d'-' -f1` - [[ $p1 -gt $pages ]] && continue - p2=`echo $j | cut -d'-' -f2` - [[ $p2 = end ]] && p2=$pages - [[ $p2 -gt $pages ]] && p2=$pages - elif [[ $j = end ]]; then - p1=$pages; p2=$pages - elif [[ $j -le $pages ]]; then - p1=$j; p2=$j - fi - gs -o -q -sDEVICE=pdfwrite -dFirstPage=$p1 -dLastPage=$p2 -sOutputFile=$tmpdir/$j.pdf "$i" - done - ext=${p[@]} - ext=p${ext// /,}.pdf - gs -o -q -sDEVICE=pdfwrite -sOutputFile="${i%.*}-$ext" $tmpdir/*.pdf - rm -rf $tmpdir - done -} - -function 2jpg { - for i in "${files[@]}"; do - gs -o -q -sDEVICE=jpeg -sOutputFile="${i%.*}-p%d.jpg" "$i" - done -} - -function 2txt { - for i in "${files[@]}"; do - gs -o -q -sDEVICE=txtwrite -sOutputFile="${i%.*}.txt" "$i" - done -} - -function usage { - echo -e "${bold}$version" - echo -e "Usage: ${0##*/} [option] pdf1 pdf2 ..... $none" - echo "Options: menu is shown if option is not specified" - echo " --merge combine 2 or more pdf files to one" - echo " --split split pdf file to individual page" - echo " --extract extract page and/or range of pages from pdf file" - echo " --2jpg convert pdf page to jpg" - echo " --2txt convert text portion of pdf file to text" - exit -} - -case $1 in - -h|--h*) usage ;; - --*) cmd=${1#--}; shift; files=("$@") ;; - *) files=("$@") ;; -esac -[[ $# -eq 0 ]] && usage -mainmenu $cmd
\ No newline at end of file diff --git a/.config/ranger/scripts/rntools b/.config/ranger/scripts/rntools deleted file mode 100644 index 76afdb8..0000000 --- a/.config/ranger/scripts/rntools +++ /dev/null @@ -1,231 +0,0 @@ -#!/bin/bash -: <<COMMENT - Copyright (C) 2012 Tri Le <trile7 at gmail dot com> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation version 3. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -COMMENT - -version="rename v0.3" -blue='\e[0;34m'; green='\e[0;32m'; red='\e[0;31m'; yellow='\e[0;33m'; bold='\e[1m';none='\e[0m' - -function menu { - n=0 - choices=("$@") - echo -e "$blue$bold$menutitle" - for i in "${choices[@]}"; do - echo -e "$none$((n++))) $yellow$i" - done - echo -en "${none}c|q) ${yellow}Cancel" - echo -e $green - read -p "Enter a choice from above menu: " i - echo -e $none - [[ $i =~ c|q ]] && exit 1 - if test $i -lt $n 2>/dev/null; then - choice=${choices[i]}; return $i - else - echo -e "$red$i is an invalid entry...please try again!" - menu "${choices[@]}" - fi - } - -function space2_ { - newname=${1// /_} - } - -function _2space { - newname=${1//_/ } - } - -function upper { - newname=`echo $1 | tr [:lower:] [:upper:]` - } - -function lower { - newname=`echo $1 | tr [:upper:] [:lower:]` - } - -function upperfirst { - words=(`echo "$1"`) - W="" - for w in ${words[@]}; do - x=`echo ${w:0:1}` - X=`echo ${w:0:1} | tr [:lower:] [:upper:]` - W=($W ${w/$x/$X}) - done - newname=`echo ${W[@]}` - } - -function x2y { - echo -ne $none - if [[ -z $x ]]; then - echo -e "Use wildcard ${green}?${none} to match any one character or ${green}*${none} to match all characters" - echo -ne $green - read -p "Enter x (find value, required): " x - if [[ -z $x ]]; then - err "x is required" - x2y; return 1 - fi - fi - [[ $j ]] || read -p "Enter y (replacement value; leave blank to remove x): " y - j=1 - newname=${1//$x/$y} - } - -function insert { - echo -ne $none - if [[ -z $p ]]; then - echo -e "Use ${green}0${none} for the beginning of name, ${green}end${none} for the end of name, or ${green}end-ext${none} for the end of name but keep extension." - echo -ne $green - read -p "Enter p (insert position, required): " p - if ! test $p -ge 0 2>/dev/null && [[ $p != end* ]]; then - err "$p is invalid" - p=""; insert - fi - fi - if [[ -z $x && $p ]]; then - echo -e "${none}Use ${green}%${none} for counter." - echo -ne $green - read -p "Enter x (character to insert, required): " x - if [[ -z $x ]]; then - err "x is required" - x=""; insert - fi - fi - if [[ $x = *%* && -z $c && $p ]]; then - echo -e "${none}Start counter (include number of digits; i.e. 3 digits counter starting at 1, enter: 001)" - echo -ne $green - read -p "Enter start counter n (n >= 0, required): " c - if ! test $c -ge 0 2>/dev/null; then - err "$c is invalid" - c=""; insert - fi - n=`expr $c + ${#files[@]} - 1` - c=(`seq -w $c 1 $n`) - fi - case $p in - end) pos=${#1} ;; - end-ext) noext=${1%.*}; pos=${#noext} ;; - *) pos=$p ;; - esac - if [[ $c ]]; then - counter=${c[$j]} - x1=${x//%/$counter} - newname=${1:0:$pos}$x1${1:$pos} - else - newname=${1:0:$pos}$x${1:$pos} - fi - } - -function remove { - echo -ne $none - if [[ -z $p ]]; then - echo -e "Use ${green}0${none} for the beginning of name" - echo -ne $green - read -p "Enter p (remove position, p >= 0, required): " p - if ! test $p -ge 0 2>/dev/null; then - err "$p is invalid" - p=""; remove - fi - fi - [[ $p ]] && read -p "Enter n (number of characters to remove): " n - [[ $p -eq 0 ]] && x1="" || x1=${1:0:p} - p2=$((p+n)) - x2=${1:p2} - newname=$x1$x2 - } - -function err { - echo -e "$red$@$none"; echo; return 1 - } - -function changename { - if $cmd; then - echo -e $none - echo -e "${bold}Changes preview:" - j=0 - for i in "${files[@]}"; do - $cmd "$i" || continue - [[ $newname ]] || newname="${red}SKIPPED" - ((j++)) - echo -e "$yellow$i -> $bold$newname" - done - echo -e $green - read -p "Do you want to proceed with rename (Y/n)? " ans - echo -e $none - if [[ $ans = n ]]; then - unset p x c; mainmenu - else - j=0 - for i in "${files[@]}"; do - [[ -e $i ]] || continue - $cmd "$i" || continue - [[ $newname ]] || continue - ((j++)) - if [[ -d $i ]] && [[ $cmd = upper* || $cmd = lower ]]; then - mv "$i" "$newname$$" - mv "$newname$$" "$newname" - else - mv "$i" "$newname" - fi - done - fi - else - mainmenu - fi - } - -function mainmenu { - if [[ -z $1 ]]; then - echo "-------------------" - echo -e "${bold}Files to be renamed:" - echo -ne $yellow - for i in "${files[@]}"; do echo $i; done - echo -e $none - menutitle="---Rename Tools---" - menu "Space_to_underscore" "Underscore to space" "ALL UPPERCASE" "all lowercase" "Uppercase First Letter of Each Word" "Convert x to y" "Insert counter n and/or character x at position p" "Remove n number of characters at position p" - case $? in - 0) cmd=space2_ ;; - 1) cmd=_2space ;; - 2) cmd=upper ;; - 3) cmd=lower ;; - 4) cmd=upperfirst ;; - 5) cmd=x2y ;; - 6) cmd=insert ;; - 7) cmd=remove ;; - esac - fi - changename - } - -function usage { - echo -e "${bold}$version" - echo -e "Usage: ${0##*/} [options] filename1 filename2 ..... $none" - echo "Options: menu is shown if option is not specified" - echo " --space2_ convert_space_to_underscore" - echo " --_2space convert underscore to space" - echo " --upper CONVERT ALL TO UPPERCASE" - echo " --lower convert all to lowercase" - echo " --upperfirst Convert First Letter Of A Word To Uppercase" - echo " --x2y Convert x to y" - echo " --insert Insert counter or characters at a specific position" - echo " --remove Remove numbers of characters at a specific position" - exit - } - -case $1 in - -h|--h*) usage ;; - --*) cmd=${1#--}; shift; files=("$@") ;; - *) files=("$@") ;; -esac -[[ $# -eq 0 ]] && usage -mainmenu $cmd
\ No newline at end of file |