@ -1,26 +1,67 @@
#!/usr/bin/env bash
# Script Configuration
IMAGEPATH = " $HOME /Pictures "
IMAGENAME = "ass"
FILE = " ${ IMAGEPATH } / ${ IMAGENAME } .png "
LOG_DIR = $( pwd )
CONFIG_FILE = "config.sh"
# Load configuration if available
# Load configuration file if available
# this is useful if you want to source keys from a secret file
CONFIG_FILE = "config.sh"
if [ -f " $CONFIG_FILE " ] ; then
# shellcheck disable=1090
source " ${ CONFIG_FILE } "
fi
LOG_DIR = $( pwd )
if [ ! -d " $LOG_DIR " ] ; then
echo "The directory you have specified to save the logs does not exist."
echo "Please create the directory with the following command:"
echo " mkdir -p $LOG_DIR "
echo -en "Or specify a different LOG_DIR\n"
exit 1
fi
IMAGE_PATH = " $HOME /Pictures "
if [ ! -d " $IMAGE_PATH " ] ; then
echo "The directory you have specified to save the screenshot does not exist."
echo "Please create the directory with the following command:"
echo " mkdir -p $IMAGE_PATH "
echo -en "Or specify a different IMAGE_PATH\n"
exit 1
fi
IMAGE_NAME = "ass"
FILE = " ${ IMAGE_PATH } / ${ IMAGE_NAME } .png "
# Function to check if a tool is installed
check_tool( ) {
command -v " $1 " >/dev/null 2>& 1
}
# Function to take Flameshot screenshots
takeFlameshot( ) {
flameshot config -f " ${ IMAGENAME } "
flameshot gui -r -p " ${ IMAGEPATH } " >/dev/null
# check if flameshot tool is installed
REQUIRED_TOOLS = ( "flameshot" )
for tool in " ${ REQUIRED_TOOLS [@] } " ; do
if ! check_tool " $tool " ; then
echo " Error: $tool is not installed. Please install it before using this script. "
exit 1
fi
done
flameshot config -f " ${ IMAGE_NAME } "
flameshot gui -r -p " ${ IMAGE_PATH } " >/dev/null
}
# Function to take Wayland screenshots using grim + slurp
takeGrimshot( ) {
# check if grim and slurp are installed
REQUIRED_TOOLS = ( "grim" "slurp" )
for tool in " ${ REQUIRED_TOOLS [@] } " ; do
if ! check_tool " $tool " ; then
echo " Error: $tool is not installed. Please install it before using this script. "
exit 1
fi
done
grim -g " $( slurp) " " ${ FILE } " >/dev/null
}