organise the image scripts and add month to datetime script
This commit is contained in:
parent
3621801d3f
commit
b2738e45c2
5 changed files with 1 additions and 290 deletions
289
bin/imgcat
289
bin/imgcat
|
@ -1,289 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
VERSION="1.2" # Version number of wiw
|
|
||||||
|
|
||||||
W3MIMGDISPLAY="/usr/lib/w3m/w3mimgdisplay" # Were w3mimgdisplay is located
|
|
||||||
DEL="-" # The default delimiter between items
|
|
||||||
DFW="7" # Default font width
|
|
||||||
DFH="16" # Default font height
|
|
||||||
|
|
||||||
CLEAR="0" # If this is set to 1 it clears the teminal before printing the image
|
|
||||||
FIT="1" # If this is set to 1 then wiw will limit the size of the image
|
|
||||||
ECHO="0" # If this is set to 1 then wiw will output the command that should be piped into w3mimgdisplay, instead of printing the image
|
|
||||||
CENTER="0" # If this is set to 1 then wiw will center the image between x,y and mw,mh
|
|
||||||
|
|
||||||
# Print help
|
|
||||||
if [[ "$1" == "-h" ]] || [[ "$1" == "--help" ]]; then
|
|
||||||
echo "wiw: w3mimg Wrapper Version: $VERSION"
|
|
||||||
echo "USAGE"
|
|
||||||
echo " wiw [-h --help] Display this"
|
|
||||||
echo " wiw --size IMAGE Print the width and height of the image, returned as 'WIDTH HEIGHT'"
|
|
||||||
echo " wiw [ARGS] IMAGE Display an image on the terminal"
|
|
||||||
echo " wiw --echo [ARGS] IMAGE Print out the command to produce the desired image"
|
|
||||||
echo " wiw --direct CMD Pass a command directly into w3mimgdisplay"
|
|
||||||
echo "ARGS"
|
|
||||||
echo " --clear Clear the terminal before printing the image"
|
|
||||||
echo " --no-fit Don't force the image to fit the terminal"
|
|
||||||
echo " --center Tells wiw to center the image in the given space"
|
|
||||||
echo " -f width${DEL}height Set the width and height of the font, used to determine max term size and items specified in U"
|
|
||||||
echo " (default width = ${DFW}, default height = ${DFH})"
|
|
||||||
echo " -g x${DEL}y${DEL}width${DEL}height Set the x, y, width, and height of the image"
|
|
||||||
echo " (default x = 0, default y = 0, default w = term width, default h = term height)"
|
|
||||||
echo " You can specify these as a #U (were # is any number) to use the unit of the font"
|
|
||||||
echo " width and height can be set to R, this will preserve image ratio"
|
|
||||||
echo " -s x${DEL}y${DEL}width${DEL}height Set the x, y, width, and height of the source image"
|
|
||||||
echo " (default x = 0, default y = 0, default w = image width, default h = image height)"
|
|
||||||
echo " You can specify these as a #U (were # is any number) to use the unit of the font"
|
|
||||||
echo " This command is a bit weird, I would reccomend not using it unless really needed"
|
|
||||||
echo " -m width${DEL}height Set the max width and height the image can consume"
|
|
||||||
echo " (default w = full term width, default h = full term height)"
|
|
||||||
echo " You can specify these as a #U (were # is any number) to use the unit of the font"
|
|
||||||
echo " You can specify these as a #N (were # is any number) to subtract from the max term size"
|
|
||||||
echo " -c width${DEL}height Set the cursor position for after the image is printed"
|
|
||||||
echo " (default x = 0, default y = line after image)"
|
|
||||||
echo " x and y can be set to LAST, to be placed at the last element"
|
|
||||||
echo " -d delimiter Set the delimiter between items in the -f, -g, and -s args (MUST BE A SINGLE CHARACTER)"
|
|
||||||
echo " (default delimiter = '${DEL}')"
|
|
||||||
exit
|
|
||||||
# Print the size of the image
|
|
||||||
elif [[ "$1" == "--size" ]]; then
|
|
||||||
echo -e "5;$2" | $W3MIMGDISPLAY
|
|
||||||
exit
|
|
||||||
# Pass a command directly into w3mimgdisplay
|
|
||||||
elif [[ "$1" == "--direct" ]]; then
|
|
||||||
echo -e "$2" | $W3MIMGDISPLAY
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Cycle through args
|
|
||||||
while [ $# != 1 ]; do
|
|
||||||
if [[ "$1" == "--clear" ]]; then
|
|
||||||
CLEAR="1"
|
|
||||||
elif [[ "$1" == "--no-fit" ]]; then
|
|
||||||
FIT="0"
|
|
||||||
elif [[ "$1" == "--echo" ]]; then
|
|
||||||
ECHO="1"
|
|
||||||
elif [[ "$1" == "--center" ]]; then
|
|
||||||
CENTER="1"
|
|
||||||
elif [[ "$1" == "-f" ]]; then
|
|
||||||
FW=`echo "$2" | cut -d "$DEL" -f1`
|
|
||||||
FH=`echo "$2" | cut -d "$DEL" -f2`
|
|
||||||
shift
|
|
||||||
elif [[ "$1" == "-g" ]]; then
|
|
||||||
X=`echo "$2" | cut -d "$DEL" -f1`
|
|
||||||
Y=`echo "$2" | cut -d "$DEL" -f2`
|
|
||||||
W=`echo "$2" | cut -d "$DEL" -f3`
|
|
||||||
H=`echo "$2" | cut -d "$DEL" -f4`
|
|
||||||
shift
|
|
||||||
elif [[ "$1" == "-s" ]]; then
|
|
||||||
SX=`echo "$2" | cut -d "$DEL" -f1`
|
|
||||||
SY=`echo "$2" | cut -d "$DEL" -f2`
|
|
||||||
SW=`echo "$2" | cut -d "$DEL" -f3`
|
|
||||||
SH=`echo "$2" | cut -d "$DEL" -f4`
|
|
||||||
shift
|
|
||||||
elif [[ "$1" == "-c" ]]; then
|
|
||||||
CX=`echo "$2" | cut -d "$DEL" -f1`
|
|
||||||
CY=`echo "$2" | cut -d "$DEL" -f2`
|
|
||||||
shift
|
|
||||||
elif [[ "$1" == "-m" ]]; then
|
|
||||||
MW=`echo "$2" | cut -d "$DEL" -f1`
|
|
||||||
MH=`echo "$2" | cut -d "$DEL" -f2`
|
|
||||||
shift
|
|
||||||
elif [[ "$1" == "-d" ]]; then
|
|
||||||
DEL="$2"
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# Set the file to the only remaining param
|
|
||||||
FN="$1"
|
|
||||||
shift
|
|
||||||
# Test to make sure that the file exists
|
|
||||||
test -e "$FN" || exit
|
|
||||||
|
|
||||||
### SET DEFAULTS IF THEY WERE NOT SET BY ARGS
|
|
||||||
|
|
||||||
# If an font width or height was not set then use the default
|
|
||||||
if [[ "$FW" == "" ]]; then
|
|
||||||
FW="$DFW"
|
|
||||||
fi
|
|
||||||
if [[ "$FH" == "" ]]; then
|
|
||||||
FH="$DFH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If an X or Y was not set then set them to 0
|
|
||||||
if [[ "$X" == "" ]]; then
|
|
||||||
X="0";
|
|
||||||
fi
|
|
||||||
if [[ "$Y" == "" ]]; then
|
|
||||||
Y="0";
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If an x or y is in U
|
|
||||||
if [[ "$X" == *"U" ]]; then
|
|
||||||
X=`echo "$X" | cut -d "U" -f1`
|
|
||||||
X=$(($X * $FW))
|
|
||||||
fi
|
|
||||||
if [[ "$Y" == *"U" ]]; then
|
|
||||||
Y=`echo "$Y" | cut -d "U" -f1`
|
|
||||||
Y=$(($Y * $FH))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Full image width and height
|
|
||||||
read IW IH <<< `echo -e "5;$FN" | $W3MIMGDISPLAY`
|
|
||||||
|
|
||||||
# If no width or height were specified use the temp
|
|
||||||
if [[ "$W" == "" ]]; then
|
|
||||||
W="$IW";
|
|
||||||
fi
|
|
||||||
if [[ "$H" == "" ]]; then
|
|
||||||
H="$IH";
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If a width or height is in U
|
|
||||||
if [[ "$W" == *"U" ]]; then
|
|
||||||
W=`echo "$W" | cut -d "U" -f1`
|
|
||||||
W=$(($W * $FW))
|
|
||||||
fi
|
|
||||||
if [[ "$H" == *"U" ]]; then
|
|
||||||
H=`echo "$H" | cut -d "U" -f1`
|
|
||||||
H=$(($H * $FH))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If no sx or sy were set then set them to 0
|
|
||||||
if [[ "$SX" == "" ]]; then
|
|
||||||
SX="0";
|
|
||||||
fi
|
|
||||||
if [[ "$SY" == "" ]]; then
|
|
||||||
SY="0";
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If an sx or sy is in U
|
|
||||||
if [[ "$SX" == *"U" ]]; then
|
|
||||||
SX=`echo "$SX" | cut -d "U" -f1`
|
|
||||||
SX=$(($SX * $FW))
|
|
||||||
fi
|
|
||||||
if [[ "$SY" == *"U" ]]; then
|
|
||||||
SY=`echo "$SY" | cut -d "U" -f1`
|
|
||||||
SY=$(($SY * $FH))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If no s width or s height were specified use the temp
|
|
||||||
if [[ "$SW" == "" ]]; then
|
|
||||||
SW="$IW";
|
|
||||||
fi
|
|
||||||
if [[ "$SH" == "" ]]; then
|
|
||||||
SH="$IH";
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If a width or height is in U
|
|
||||||
if [[ "$SW" == *"U" ]]; then
|
|
||||||
SW=`echo "$SW" | cut -d "U" -f1`
|
|
||||||
SW=$(($SW * $FW))
|
|
||||||
fi
|
|
||||||
if [[ "$SH" == *"U" ]]; then
|
|
||||||
SH=`echo "$SH" | cut -d "U" -f1`
|
|
||||||
SH=$(($SH * $FH))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get column and line count
|
|
||||||
COL=`tput cols`
|
|
||||||
LIN=`tput lines`
|
|
||||||
|
|
||||||
# TEMPORARY VARIABLES FOR THE ABILITY TO USE BOTH U AND N
|
|
||||||
TMW="$MW"
|
|
||||||
TMH="$MH"
|
|
||||||
|
|
||||||
# If no max width or height were set then use the default
|
|
||||||
if [[ "$TMW" == "" ]]; then
|
|
||||||
MW=$((($FW * $COL) - $X + $SX))
|
|
||||||
fi
|
|
||||||
if [[ "$TMH" == "" ]]; then
|
|
||||||
MH=$((($FH * $(($LIN - 2)) - $Y + $SY))) # substract lines for prompt
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If a width or height is in U
|
|
||||||
if [[ "$TMW" == *"U"* ]]; then
|
|
||||||
MW=`echo "$MW" | cut -d "U" -f1 | cut -d "N" -f1`
|
|
||||||
MW=$(($MW * $FW))
|
|
||||||
fi
|
|
||||||
if [[ "$TMH" == *"U"* ]]; then
|
|
||||||
MH=`echo "$MH" | cut -d "U" -f1 | cut -d "N" -f1`
|
|
||||||
MH=$(($MH * $FH))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If a width or height is in U
|
|
||||||
if [[ "$TMW" == *"N"* ]]; then
|
|
||||||
MW=`echo "$MW" | cut -d "U" -f1 | cut -d "N" -f1`
|
|
||||||
MW=$((($FW * $COL) - $X + $SX - $MW))
|
|
||||||
fi
|
|
||||||
if [[ "$TMH" == *"N"* ]]; then
|
|
||||||
MH=`echo "$MH" | cut -d "U" -f1 | cut -d "N" -f1`
|
|
||||||
MH=$((($FH * $(($LIN - 2)) - $Y + $SY - $MH)))
|
|
||||||
fi
|
|
||||||
|
|
||||||
### DONE SETTING DEFAULTS
|
|
||||||
|
|
||||||
if [[ "$W" == "R" ]] && [[ "$H" == "R" ]]; then
|
|
||||||
W="$IW";
|
|
||||||
H="$IH";
|
|
||||||
elif [[ "$W" == "R" ]]; then
|
|
||||||
W=$(($IW * $H))
|
|
||||||
W=`printf "%.0f" $(echo "scale=2;$W/$IH" | bc)`
|
|
||||||
elif [[ "$H" == "R" ]]; then
|
|
||||||
H=$(($IH * $W))
|
|
||||||
H=`printf "%.0f" $(echo "scale=2;$H/$IW" | bc)`
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If --no-fit was not run then limit size
|
|
||||||
if [[ "$FIT" == "1" ]]; then
|
|
||||||
if test $W -gt $MW; then
|
|
||||||
H=$(($H * $MW / $W))
|
|
||||||
W=$MW
|
|
||||||
fi
|
|
||||||
if test $H -gt $MH; then
|
|
||||||
W=$(($W * $MH / $H))
|
|
||||||
H=$MH
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If --center was run
|
|
||||||
if [[ "$CENTER" == "1" ]]; then
|
|
||||||
X=$((($MW - $W) / 2))
|
|
||||||
Y=$((($MH - $H) / 2))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format the command
|
|
||||||
WC="0;1;$X;$Y;$W;$H;$SX;$SY;$SW;$SH;$FN\n4;\n3;"
|
|
||||||
|
|
||||||
# If no cx or cy was set then use the defaults
|
|
||||||
if [[ "$CX" == "" ]]; then
|
|
||||||
CX="0";
|
|
||||||
fi
|
|
||||||
if [[ "$CY" == "" ]]; then
|
|
||||||
CY=$(($H + $Y - $SY))
|
|
||||||
CY=`printf "%.0f" $(echo "scale=2;$CY/$FH" | bc)`
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If cx or cy was set to LAST
|
|
||||||
if [[ "$CX" == "LAST" ]]; then
|
|
||||||
CX="$COL";
|
|
||||||
fi
|
|
||||||
if [[ "$CY" == "LAST" ]]; then
|
|
||||||
CY="$LIN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# If --echo was run
|
|
||||||
if [[ "$ECHO" == "1" ]]; then
|
|
||||||
echo -e "$WC"
|
|
||||||
else
|
|
||||||
# If --clear was run
|
|
||||||
if [[ "$CLEAR" == "1" ]]; then
|
|
||||||
clear
|
|
||||||
fi
|
|
||||||
tput cup $CY $CX
|
|
||||||
echo -e "$WC" | $W3MIMGDISPLAY
|
|
||||||
fi
|
|
|
@ -1,3 +1,3 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
notify-send "$(date '+%T')" "$(date '+%A %d %Y')"
|
notify-send "$(date '+%T')" "$(date '+%A %d %B %Y')"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue