Update
This commit is contained in:
9
hypr/settings/.library/excludes.txt
Normal file
9
hypr/settings/.library/excludes.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
.gitignore
|
||||
.git
|
||||
.dev
|
||||
README.md
|
||||
CHANGELOG
|
||||
LICENSE
|
||||
install.sh
|
||||
create.sh
|
||||
.target.sh
|
||||
254
hypr/settings/.library/library.sh
Normal file
254
hypr/settings/.library/library.sh
Normal file
@@ -0,0 +1,254 @@
|
||||
# Settings Library
|
||||
|
||||
# Load module
|
||||
_getModules() {
|
||||
clear
|
||||
|
||||
# Get path to parent folder to go back
|
||||
back="$(dirname "$1")"
|
||||
|
||||
# Load module config
|
||||
if [ -f $1/init.sh ]; then
|
||||
source $1/init.sh
|
||||
fi
|
||||
|
||||
# Load module config
|
||||
if [ -f $1/config.sh ]; then
|
||||
source $1/config.sh
|
||||
else
|
||||
echo "ERROR: config.sh doesn't exists in $1"
|
||||
exit
|
||||
fi
|
||||
|
||||
clickArr+=("/")
|
||||
clickArr+=("$name")
|
||||
echo "You are here:" ${clickArr[@]}
|
||||
|
||||
# Load module
|
||||
if [ -f $1/module.sh ]; then
|
||||
source $1/module.sh
|
||||
else
|
||||
echo "ERROR: module.sh doesn't exists in $1"
|
||||
# exit 0
|
||||
fi
|
||||
|
||||
# Read folder
|
||||
modules=$(find $1 -maxdepth 1 -type d)
|
||||
count=0
|
||||
|
||||
# Check if subfolders exists
|
||||
for value in $modules
|
||||
do
|
||||
if [[ ! "$value" == "$1" ]]; then
|
||||
# Check if custom version of module exists and skip original module
|
||||
if [ ! -d "$value-custom" ]; then
|
||||
((count++))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Create Navigation
|
||||
unset modulesArr
|
||||
if [[ ! $count == 0 ]]; then
|
||||
|
||||
# Get modules folders
|
||||
for value in $modules
|
||||
do
|
||||
if [[ ! "$value" == "$1" ]]; then
|
||||
if [[ ! $value == *"-custom" ]]; then
|
||||
if [ ! -d "$value-custom" ]; then
|
||||
if [ -f $value/config.sh ]; then
|
||||
source $value/config.sh
|
||||
modulesArr+=("$order:$name:$value")
|
||||
else
|
||||
echo "ERROR: config.sh doesn't exists in $value"
|
||||
exit
|
||||
fi
|
||||
else
|
||||
if [ -f $value-custom/config.sh ]; then
|
||||
source $value-custom/config.sh
|
||||
modulesArr+=("$order:$name:$value-custom")
|
||||
else
|
||||
echo "ERROR: config.sh doesn't exists in $value-custom"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
# Sort array by order
|
||||
IFS=$'\n' modulesArr=($(sort <<<"${modulesArr[*]}"))
|
||||
unset nameList
|
||||
unset pathList
|
||||
|
||||
# Output
|
||||
for value in "${modulesArr[@]}"
|
||||
do
|
||||
name="$(cut -d':' -f2 <<<"$value")"
|
||||
path="$(cut -d':' -f3 <<<"$value")"
|
||||
nameList+=("$name")
|
||||
pathList+=("$path")
|
||||
done
|
||||
if [[ "$back" == "$installFolder/settings" ]]; then
|
||||
nameList+=("EXIT")
|
||||
else
|
||||
nameList+=("BACK")
|
||||
fi
|
||||
echo ""
|
||||
selected=$(gum choose ${nameList[@]})
|
||||
case $selected in
|
||||
BACK)
|
||||
_goBack
|
||||
break;;
|
||||
EXIT)
|
||||
clear
|
||||
exit
|
||||
break;;
|
||||
* )
|
||||
|
||||
;;
|
||||
esac
|
||||
if [ ! -z $selected ] ;then
|
||||
for i in "${!nameList[@]}"; do
|
||||
if [[ "${nameList[$i]}" = "${selected}" ]]; then
|
||||
nameIndex="${i}"
|
||||
fi
|
||||
done
|
||||
current="${pathList[$nameIndex]}"
|
||||
_getModules "$current"
|
||||
else
|
||||
if [[ "$back" == "$installFolder/settings" ]]; then
|
||||
clear
|
||||
exit
|
||||
else
|
||||
_goBack
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# _getConfSelector conf/monitor.conf conf/monitors/
|
||||
_getConfSelector() {
|
||||
cur=$(cat $installFolder/conf/$1)
|
||||
echo "Folder: $installFolder/conf/$2"
|
||||
echo "In use: ${cur##*/}"
|
||||
echo ""
|
||||
echo "Select a file to load (RETURN = Confirm, ESC = Cancel/Back):"
|
||||
sel=$(gum file $installFolder/conf/$2)
|
||||
if [ -z $sel ] ;then
|
||||
_goBack
|
||||
fi
|
||||
echo "File ${sel##*/} selected."
|
||||
echo ""
|
||||
}
|
||||
|
||||
_getConfEditor() {
|
||||
selected=$(gum choose "EXECUTE" "EDIT" "COPY" "DELETE" "CANCEL")
|
||||
case $selected in
|
||||
EXECUTE)
|
||||
_writeConf $1 $2
|
||||
break;;
|
||||
EDIT)
|
||||
vim $sel
|
||||
sleep 1
|
||||
_reloadModule
|
||||
break;;
|
||||
COPY)
|
||||
echo "Define the new file name. Please use [a-zA-Z1-9_-]+.conf"
|
||||
filename=$(gum input --value="custom-${sel##*/}" --placeholder "Enter your filename")
|
||||
if [ -z $filename ] ;then
|
||||
echo "ERROR: No filename specified."
|
||||
else
|
||||
if ! [[ $filename =~ ^[a-zA-Z1-9_-]+.conf ]]; then
|
||||
echo "ERROR: Wrong filename format. Please use [a-zA-Z1-9_-]+.conf"
|
||||
else
|
||||
if [ -f $(dirname $sel)/$filename ] ;then
|
||||
echo "ERROR: File already exists."
|
||||
else
|
||||
cp $sel $(dirname $sel)/$filename
|
||||
_reloadModule
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
_getConfEditor $1 $2
|
||||
break;;
|
||||
DELETE)
|
||||
if gum confirm "Do you really want to delete the file ${sel##*/}?" ;then
|
||||
rm $sel
|
||||
_reloadModule
|
||||
else
|
||||
_getConfEditor $1 $2
|
||||
fi
|
||||
break;;
|
||||
* )
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# _writeConf conf/monitor.conf $sel
|
||||
_writeConf() {
|
||||
if [ ! -z $2 ] ;then
|
||||
sel=$(echo "$2" | sed "s+"\/home\/$USER"+~+")
|
||||
echo "source = $sel" > $installFolder/conf/$1
|
||||
fi
|
||||
}
|
||||
|
||||
# Return the version of the hyprland-settings script
|
||||
_getVersion() {
|
||||
echo $version
|
||||
}
|
||||
|
||||
# Write the header to a page
|
||||
_getHeader() {
|
||||
figlet "$1"
|
||||
if [ ! -z "$2" ]; then
|
||||
echo "by $2"
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Update the breadcrumb and opens parent page
|
||||
_goBack() {
|
||||
unset clickArr[-1]
|
||||
unset clickArr[-1]
|
||||
unset clickArr[-1]
|
||||
unset clickArr[-1]
|
||||
_getModules "$back"
|
||||
}
|
||||
|
||||
_reloadModule() {
|
||||
unset clickArr[-1]
|
||||
unset clickArr[-1]
|
||||
_getModules "$current"
|
||||
}
|
||||
|
||||
# Replace the variables in a template and publish to location
|
||||
_replaceByTemplate() {
|
||||
template=$1
|
||||
variables=$2
|
||||
values=$3
|
||||
publishto=$4
|
||||
}
|
||||
|
||||
# Back Button
|
||||
_getBackBtn() {
|
||||
echo ""
|
||||
gum choose "Back"
|
||||
_goBack
|
||||
}
|
||||
|
||||
_getBackRepeatBtn() {
|
||||
echo ""
|
||||
selected=$(gum choose "REPEAT" "BACK")
|
||||
case $selected in
|
||||
BACK)
|
||||
_goBack
|
||||
break;;
|
||||
REPEAT)
|
||||
_getModules "$current"
|
||||
break;;
|
||||
* )
|
||||
|
||||
;;
|
||||
esac
|
||||
}
|
||||
1
hypr/settings/.library/version.sh
Normal file
1
hypr/settings/.library/version.sh
Normal file
@@ -0,0 +1 @@
|
||||
version="2.0"
|
||||
Reference in New Issue
Block a user