oxygen-adaptive/toggle_plasma.sh
2023-05-04 12:24:06 +02:00

84 lines
No EOL
2.4 KiB
Bash
Executable file

#! /bin/bash
THEMES_DIR=color_themes
CSS_LINK_NAME=theme_colors.css
IMPORTS_DIR=imports
IMPORT_FILE=import.css
IMPORT_FILE_HONOR_PLASMA=import_honor_plasma.css
IMPORT_FILE_IGNORE_PLASMA=import_ignore_plasma.css
PLASMA_ACTIVE=plasma_active
PLASMA_INACTIVE=plasma_inactive
PLASMA_SOURCE_CSS_FILE=~/.config/gtk-3.0/colors.css
LINK_TO_PLASMA_SOURCE_FILE=plasma_colors.css
maxParams=1
usage() {
echo -e "Usage: $(basename "$0") [--current-status] \n" >&2
echo -e "Toggles honoring Plasma's color theme on or off. If there is no color theme for GTK generated by Plasma, it won't be toggled on" >&2
echo -e "\nOption --current-status tells if the theme is currently honoring Plasma color scheme or not" >&2
}
if [ $# -gt $maxParams ]
then
echo -e "\nError: Incorrect usage." >&2
usage
exit 1
fi
if [ $# -eq 1 ]
then
if [ $1 = "--current-status" ]
then
[ -e $IMPORTS_DIR/PLASMA_ACTIVE ] && echo -e "The theme is honoring Plasma's color scheme\n" || echo -e "\nThe theme is NOT honoring Plasma's color scheme\n"
exit 0
else
echo -e "\nError: Incorrect usage." >&2
usage
exit 1
fi
fi
# Making sure we are in the script's directory, otherwise it's not going to work
SCRIPT_PATH=`realpath "$0"`
SCRIPT_DIR=`dirname "$SCRIPT_PATH"`
cd $SCRIPT_DIR
cd $IMPORTS_DIR
#if we are honoring Plasma colors...
if [ -e $PLASMA_ACTIVE ]
then
# deactivate it
[ -h $IMPORT_FILE ] && rm $IMPORT_FILE
ln -s $IMPORT_FILE_IGNORE_PLASMA $IMPORT_FILE
rm $PLASMA_ACTIVE
touch $PLASMA_INACTIVE
echo -e "\n Plasma theme honoring toggled OFF (that is: GTK theme will not follow current Plasma color scheme)\n"
else
#before activating Plasma, check if plasma colors.css file exists!
if [ ! -e $PLASMA_SOURCE_CSS_FILE ]
then
echo -e "Could not find Plasma color theme for GTK ($PLASMA_SOURCE_CSS_FILE), so GTK theme will continue not attempting to follow Plasma color scheme. Not doing anything, therefore..."
cd cd $SCRIPT_DIR
exit 2
fi
[ -h $IMPORT_FILE ] && rm $IMPORT_FILE
ln -s $IMPORT_FILE_HONOR_PLASMA $IMPORT_FILE
[ -h $LINK_TO_PLASMA_SOURCE_FILE ] && rm $LINK_TO_PLASMA_SOURCE_FILE
ln -s $PLASMA_SOURCE_CSS_FILE $LINK_TO_PLASMA_SOURCE_FILE
[ -e $PLASMA_INACTIVE ] && rm $PLASMA_INACTIVE
touch $PLASMA_ACTIVE
echo -e "\n Plasma theme honoring toggled ON (that is: GTK theme will follow current Plasma color scheme)\n"
fi
cd $SCRIPT_DIR