reorganize cache folder, apply color instantly on color mode change

This commit is contained in:
end-4
2024-02-17 16:03:38 +07:00
parent 00ea2126f5
commit 680b5696b0
12 changed files with 85 additions and 181 deletions
@@ -1,6 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
sleep 0 # idk i want some delay or colors dont get applied properly # sleep 0 # idk i wanted some delay or colors dont get applied properly
if [ ! -d "$HOME"/.cache/ags/user/generated ]; then
mkdir -p "$HOME"/.cache/ags/user/generated
fi
cd "$HOME/.config/ags" || exit cd "$HOME/.config/ags" || exit
colornames='' colornames=''
@@ -39,10 +42,10 @@ transparentize() {
get_light_dark() { get_light_dark() {
lightdark="" lightdark=""
if [ ! -f ~/.cache/ags/user/colormode.txt ]; then if [ ! -f "$HOME"/.cache/ags/user/colormode.txt ]; then
echo "" > ~/.cache/ags/user/colormode.txt echo "" > "$HOME"/.cache/ags/user/colormode.txt
else else
lightdark=$(cat ~/.cache/ags/user/colormode.txt) # either "" or "-l" lightdark=$(cat "$HOME"/.cache/ags/user/colormode.txt) # either "" or "-l"
fi fi
echo "$lightdark" echo "$lightdark"
} }
@@ -50,23 +53,14 @@ get_light_dark() {
apply_gtklock() { apply_gtklock() {
# Check if scripts/templates/gtklock/main.scss exists # Check if scripts/templates/gtklock/main.scss exists
if [ ! -f "scripts/templates/gtklock/main.scss" ]; then if [ ! -f "scripts/templates/gtklock/main.scss" ]; then
echo "SCSS not found. Fallback to CSS." echo "SCSS not found for Gtklock. Skipping that."
else
sassc ~/.config/ags/scripts/templates/gtklock/main.scss ~/.config/gtklock/style.css
return return
fi fi
# Check if scripts/templates/gtklock/style.css exists
if [ ! -f "scripts/templates/gtklock/style.css" ]; then
echo "Template file not found for Gtklock. Skipping that."
return
fi
# Copy template # Copy template
cp "scripts/templates/gtklock/style.css" "$HOME/.config/gtklock/style.css" mkdir -p "$HOME"/.cache/ags/user/generated/gtklock
# Apply colors sassc "scripts/templates/gtklock/main.scss" "$HOME"/.cache/ags/user/generated/gtklock/style.css
for i in "${!colorlist[@]}"; do cp "$HOME"/.cache/ags/user/generated/gtklock/style.css "$HOME"/.config/gtklock/style.css
sed -i "s/${colorlist[$i]};/${colorvalues[$i]};/g" "$HOME/.config/gtklock/style.css"
done
} }
apply_fuzzel() { apply_fuzzel() {
@@ -76,48 +70,51 @@ apply_fuzzel() {
return return
fi fi
# Copy template # Copy template
cp "scripts/templates/fuzzel/fuzzel.ini" "$HOME/.config/fuzzel/fuzzel.ini" mkdir -p "$HOME"/.cache/ags/user/generated/fuzzel
cp "scripts/templates/fuzzel/fuzzel.ini" "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME/.config/fuzzel/fuzzel.ini" sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini
done done
cp "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini "$HOME"/.config/fuzzel/fuzzel.ini
} }
apply_foot() { apply_foot() {
# Check if scripts/templates/foot/foot.ini exists
if [ ! -f "scripts/templates/foot/foot.ini" ]; then if [ ! -f "scripts/templates/foot/foot.ini" ]; then
echo "Template file not found for Foot. Skipping that." echo "Template file not found for Foot. Skipping that."
return return
fi fi
# Copy template # Copy template
cp "scripts/templates/foot/foot.ini" "$HOME/.config/foot/foot_new.ini" mkdir -p "$HOME"/.cache/ags/user/generated/foot
cp "scripts/templates/foot/foot.ini" "$HOME"/.cache/ags/user/generated/foot/foot.ini
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$HOME/.config/foot/foot_new.ini" # note: ff because theyre opaque # sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/foot/foot.ini
sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/foot/foot.ini
done done
cp "$HOME/.config/foot/foot_new.ini" "$HOME/.config/foot/foot.ini" cp "$HOME"/.cache/ags/user/generated/foot/foot.ini "$HOME/.config/foot/foot.ini"
} }
apply_term() { apply_term() {
# Check if scripts/templates/foot/foot.ini exists # Check if scripts/templates/foot/foot.ini exists
if [ ! -f "scripts/templates/terminal/sequences.material" ]; then if [ ! -f "scripts/templates/terminal/sequences.txt" ]; then
echo "Template file not found for Terminal. Skipping that." echo "Template file not found for Terminal. Skipping that."
return return
fi fi
if [ ! -d "$HOME/.cache/ags/user/colorschemes" ]; then
mkdir -p "$HOME/.cache/ags/user/colorschemes"
fi
# Copy template # Copy template
cp "scripts/templates/terminal/sequences.material" "$HOME/.cache/ags/user/colorschemes/sequences" mkdir -p "$HOME"/.cache/ags/user/generated/terminal
cp "scripts/templates/terminal/sequences.txt" "$HOME"/.cache/ags/user/generated/terminal/sequences.txt
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$HOME/.cache/ags/user/colorschemes/sequences" sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/terminal/sequences.txt
done done
cp "$HOME"/.cache/ags/user/generated/terminal/sequences.txt "$HOME"/.config/fish/sequences.txt
for file in /dev/pts/*; do for file in /dev/pts/*; do
if [[ $file =~ ^/dev/pts/[0-9]+$ ]]; then if [[ $file =~ ^/dev/pts/[0-9]+$ ]]; then
cat "$HOME/.cache/ags/user/colorschemes/sequences" > "$file" cat "$HOME"/.config/fish/sequences.txt > "$file"
fi fi
done done
} }
@@ -129,28 +126,30 @@ apply_hyprland() {
return return
fi fi
# Copy template # Copy template
cp "scripts/templates/hypr/colors.conf" "$HOME/.config/hypr/colors_new.conf" mkdir -p "$HOME"/.cache/ags/user/generated/hypr
cp "scripts/templates/hypr/colors.conf" "$HOME"/.cache/ags/user/generated/hypr/colors.conf
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME/.config/hypr/colors_new.conf" sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/hypr/colors.conf
done done
mv "$HOME/.config/hypr/colors_new.conf" "$HOME/.config/hypr/colors.conf" cp "$HOME"/.cache/ags/user/generated/hypr/colors.conf "$HOME"/.config/hypr/colors.conf
} }
apply_gtk() { # Using gradience-cli apply_gtk() { # Using gradience-cli
lightdark=$(get_light_dark) lightdark=$(get_light_dark)
# Copy template # Copy template
cp "scripts/templates/gradience/preset_template.json" "scripts/templates/gradience/preset.json" mkdir -p "$HOME"/.cache/ags/user/generated/gradience
cp "scripts/templates/gradience/preset.json" "$HOME"/.cache/ags/user/generated/gradience/preset.json
# Apply colors # Apply colors
for i in "${!colorlist[@]}"; do for i in "${!colorlist[@]}"; do
sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]}/g" "scripts/templates/gradience/preset.json" sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]}/g" "$HOME"/.cache/ags/user/generated/gradience/preset.json
done done
mkdir -p "$HOME/.config/presets" # create gradience presets folder mkdir -p "$HOME/.config/presets" # create gradience presets folder
gradience-cli apply -p scripts/templates/gradience/preset.json --gtk both gradience-cli apply -p "$HOME"/.cache/ags/user/generated/gradience/preset.json --gtk both
# Set light/dark preference # Set light/dark preference
# And set GTK theme manually as Gradience defaults to light adw-gtk3 # And set GTK theme manually as Gradience defaults to light adw-gtk3
@@ -173,6 +172,7 @@ apply_ags() {
apply_ags & apply_ags &
apply_hyprland & apply_hyprland &
apply_gtk & apply_gtk &
apply_foot &
apply_gtklock & apply_gtklock &
apply_fuzzel & apply_fuzzel &
apply_term & apply_term &
@@ -13,8 +13,7 @@ if [ ! -f "$HOME/.cache/ags/user/colormode.txt" ]; then
else else
lightdark=$(cat "$HOME/.cache/ags/user/colormode.txt") # either "" or "-l" lightdark=$(cat "$HOME/.cache/ags/user/colormode.txt") # either "" or "-l"
fi fi
# check if the file ~/.cache/ags/user/colorbackend.txt exists. if not, create it. else, read it to $lightdark backend="material" # color generator backend
backend="material"
if [ ! -f "$HOME/.cache/ags/user/colorbackend.txt" ]; then if [ ! -f "$HOME/.cache/ags/user/colorbackend.txt" ]; then
echo "material" > "$HOME/.cache/ags/user/colorbackend.txt" echo "material" > "$HOME/.cache/ags/user/colorbackend.txt"
else else
@@ -23,15 +22,15 @@ fi
cd "$HOME/.config/ags/scripts/" || exit cd "$HOME/.config/ags/scripts/" || exit
if [[ "$1" = "#"* ]]; then # this is a color if [[ "$1" = "#"* ]]; then # this is a color
color_generation/generate_colors_material.py --color "$1" "$lightdark" > "$HOME/.cache/ags/user/generated_colors.txt" color_generation/generate_colors_material.py --color "$1" "$lightdark" > "$HOME"/.cache/ags/user/generated/material_colors.scss
if [ "$2" = "--apply" ]; then if [ "$2" = "--apply" ]; then
cp "$HOME/.cache/ags/user/generated_colors.txt" "$HOME/.config/ags/scss/_material.scss" cp "$HOME"/.cache/ags/user/generated/material_colors.scss "$HOME/.config/ags/scss/_material.scss"
color_generation/applycolor.sh color_generation/applycolor.sh
fi fi
elif [ "$backend" = "material" ]; then elif [ "$backend" = "material" ]; then
color_generation/generate_colors_material.py --path "$1" "$lightdark" > "$HOME/.cache/ags/user/generated_colors.txt" color_generation/generate_colors_material.py --path "$1" "$lightdark" > "$HOME"/.cache/ags/user/generated/material_colors.scss
if [ "$2" = "--apply" ]; then if [ "$2" = "--apply" ]; then
cp "$HOME/.cache/ags/user/generated_colors.txt" "$HOME/.config/ags/scss/_material.scss" cp "$HOME"/.cache/ags/user/generated/material_colors.scss "$HOME/.config/ags/scss/_material.scss"
color_generation/applycolor.sh color_generation/applycolor.sh
fi fi
elif [ "$backend" = "pywal" ]; then elif [ "$backend" = "pywal" ]; then
@@ -39,21 +38,21 @@ elif [ "$backend" = "pywal" ]; then
wal -c wal -c
wal -i "$1" -n $lightdark -q wal -i "$1" -n $lightdark -q
# copy scss # copy scss
cp "$HOME/.cache/wal/colors.scss" "$HOME/.cache/ags/user/generated_colors.txt" cp "$HOME/.cache/wal/colors.scss" "$HOME"/.cache/ags/user/generated/material_colors.scss
cat color_generation/pywal_to_material.scss >> "$HOME/.cache/ags/user/generated_colors.txt" cat color_generation/pywal_to_material.scss >> "$HOME"/.cache/ags/user/generated/material_colors.scss
if [ "$2" = "--apply" ]; then if [ "$2" = "--apply" ]; then
sassc "$HOME/.cache/ags/user/generated_colors.txt" "$HOME/.cache/ags/user/generated_colors_classes.scss" --style compact sassc "$HOME"/.cache/ags/user/generated/material_colors.scss "$HOME"/.cache/ags/user/generated/colors_classes.scss --style compact
sed -i "s/ { color//g" "$HOME/.cache/ags/user/generated_colors_classes.scss" sed -i "s/ { color//g" "$HOME"/.cache/ags/user/generated/colors_classes.scss
sed -i "s/\./$/g" "$HOME/.cache/ags/user/generated_colors_classes.scss" sed -i "s/\./$/g" "$HOME"/.cache/ags/user/generated/colors_classes.scss
sed -i "s/}//g" "$HOME/.cache/ags/user/generated_colors_classes.scss" sed -i "s/}//g" "$HOME"/.cache/ags/user/generated/colors_classes.scss
if [ "$lightdark" = "-l" ]; then if [ "$lightdark" = "-l" ]; then
printf "\n""\$darkmode: false;""\n" >> "$HOME/.cache/ags/user/generated_colors_classes.scss" printf "\n""\$darkmode: false;""\n" >> "$HOME"/.cache/ags/user/generated/colors_classes.scss
else else
printf "\n""\$darkmode: true;""\n" >> "$HOME/.cache/ags/user/generated_colors_classes.scss" printf "\n""\$darkmode: true;""\n" >> "$HOME"/.cache/ags/user/generated/colors_classes.scss
fi fi
cp "$HOME/.cache/ags/user/generated_colors_classes.scss" "$HOME/.config/ags/scss/_material.scss" cp "$HOME"/.cache/ags/user/generated/colors_classes.scss "$HOME/.config/ags/scss/_material.scss"
color_generation/applycolor.sh color_generation/applycolor.sh
fi fi
+19 -19
View File
@@ -36,7 +36,7 @@ lines=10000
[cursor] [cursor]
style=beam style=beam
color=$background # $onBackground # color={{ $background }} {{ $onBackground }}
# blink=no # blink=no
beam-thickness=1.5 beam-thickness=1.5
# underline-thickness=<font underline thickness> # underline-thickness=<font underline thickness>
@@ -44,24 +44,24 @@ beam-thickness=1.5
[colors] [colors]
alpha=1 alpha=1
background=$background # background={{ $background }}
foreground=$onBackground # foreground={{ $onBackground }}
regular0=$background # regular0={{ $background }}
regular1=$error # regular1={{ $error }}
regular2=$inversePrimary # regular2={{ $inversePrimary }}
regular3=$onPrimaryContainer # regular3={{ $onPrimaryContainer }}
regular4=$onPrimaryContainer # regular4={{ $onPrimaryContainer }}
regular5=$onSecondaryContainer # regular5={{ $onSecondaryContainer }}
regular6=$primary # regular6={{ $primary }}
regular7=$onSurfaceVariant # regular7={{ $onSurfaceVariant }}
bright0=$background # bright0={{ $background }}
bright1=$error # bright1={{ $error }}
bright2=$inversePrimary # bright2={{ $inversePrimary }}
bright3=$onPrimaryContainer # bright3={{ $onPrimaryContainer }}
bright4=$onPrimaryContainer # bright4={{ $onPrimaryContainer }}
bright5=$onSecondaryContainer # bright5={{ $onSecondaryContainer }}
bright6=$primary # bright6={{ $primary }}
bright7=$onSurfaceVariant # bright7={{ $onSurfaceVariant }}
[csd] [csd]
# preferred=server # preferred=server
@@ -1,4 +1,4 @@
// Could just sed but scss is way less hacky // Could just sed but scss is better
@import '../../../scss/_material.scss'; // Which is ~/.config/ags/scss/_material.scss @import '../../../scss/_material.scss'; // Which is ~/.config/ags/scss/_material.scss
* { * {
@@ -1,102 +0,0 @@
/* Gtklock css */
* {
all: unset;
border: 0px;
}
window {
background: rgba(0, 0, 0, 0.5);
background-size: cover;
background-repeat: no-repeat;
background-position: center;
}
#window-box {
border-radius: 1.5rem;
padding: 1.5rem;
border: 0px solid black;
}
#input-label {
font-size: 1.5rem;
color: transparent;
background-color: transparent;
margin: -20rem;
}
#input-field {
background-color: $secondaryContainer;
color: $onSecondaryContainer;
caret-color: $onSecondaryContainer;
border-radius: 999px;
font-size: 1.3rem;
padding: 0.341rem 1.364rem;
margin: 0.477rem;
box-shadow: 2px 2px 4px rgba(22, 22, 22, 0.5);
min-height: 2.727rem;
}
#unlock-button {
margin: -20rem;
color: transparent;
background-color: transparent;
}
#error-label {
color: $error;
}
#clock-label {
font-family: 'Lexend';
font-size: 6rem;
border-radius: 1.2rem;
padding: 0.5rem;
margin: 0.6rem;
margin-top: -35rem;
color: $onSecondaryContainer;
text-shadow: 1px 1px 2px rgba(22, 22, 30, 0.5);
}
#user-image {}
#powerbar-box {}
#poweroff-button {
background-color: $secondaryContainer;
color: $onSecondaryContainer;
min-width: 3rem;
min-height: 3rem;
margin: 10px;
border-radius: 99px;
}
#suspend-button {
background-color: $secondaryContainer;
color: $onSecondaryContainer;
min-width: 3rem;
min-height: 3rem;
margin: 10px;
border-radius: 99px;
}
#reboot-button {
background-color: $secondaryContainer;
color: $onSecondaryContainer;
min-width: 3rem;
min-height: 3rem;
margin: 10px;
border-radius: 99px;
}
#poweroff-button:hover,
#reboot-button:hover,
#suspend-button:hover {
background: rgba(200, 200, 200, 0.3);
}
#poweroff-button:active,
#reboot-button:active,
#suspend-button:active {
background: rgba(200, 200, 200, 0.5);
}
@@ -1 +0,0 @@
]4;0;#regular0\]4;1;#regular1\]4;2;#regular2\]4;3;#regular3\]4;4;#regular4\]4;5;#regular5\]4;6;#regular6\]4;7;#regular7\]4;8;#bright0\]4;9;#bright1\]4;10;#bright2\]4;11;#bright3\]4;12;#bright4\]4;13;#bright5\]4;14;#bright6\]4;15;#bright7\]10;#regular7\]11;#regular0\]12;#regular7\]13;#regular7\]17;#regular7\]19;#regular0\]4;232;#regular0\]4;256;#regular7\]708;#regular0\
+2 -1
View File
@@ -31,7 +31,8 @@ function expandTilde(path) {
// We're using many models to not be restricted to 3 messages per minute. // We're using many models to not be restricted to 3 messages per minute.
// The whole chat will be sent every request anyway. // The whole chat will be sent every request anyway.
const KEY_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/openai_api_key.txt`; Utils.exec(`mkdir -p ${GLib.get_user_cache_dir()}/ags/user/ai`);
const KEY_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/ai/openai_key.txt`;
const APIDOM_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/openai_api_dom.txt`; const APIDOM_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/openai_api_dom.txt`;
function replaceapidom(URL) { function replaceapidom(URL) {
//Utils.writeFile(URL, "/tmp/openai-url-old.log"); // For debugging //Utils.writeFile(URL, "/tmp/openai-url-old.log"); // For debugging
+3 -2
View File
@@ -29,8 +29,9 @@ function expandTilde(path) {
} }
} }
const KEY_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/google_ai_api_key.txt`; Utils.exec(`mkdir -p ${GLib.get_user_cache_dir()}/ags/user/ai`);
const APIDOM_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/google_ai_api_dom.txt`; const KEY_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/ai/google_key.txt`;
const APIDOM_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/ai/google_api_dom.txt`;
function replaceapidom(URL) { function replaceapidom(URL) {
if (fileExists(expandTilde(APIDOM_FILE_LOCATION))) { if (fileExists(expandTilde(APIDOM_FILE_LOCATION))) {
var contents = Utils.readFile(expandTilde(APIDOM_FILE_LOCATION)).trim(); var contents = Utils.readFile(expandTilde(APIDOM_FILE_LOCATION)).trim();
@@ -32,13 +32,19 @@ export function launchCustomCommand(command) {
.catch(print); .catch(print);
} }
else if (args[0] == '>badapple') { // Light mode else if (args[0] == '>badapple') { // Light mode
execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/applycolor.sh --bad-apple`]).catch(print); execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/applycolor.sh --bad-apple`]).catch(print)
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print))
.catch(print);
} }
else if (args[0] == '>material') { // Light mode else if (args[0] == '>material') { // Light mode
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && echo "material" > ${GLib.get_user_cache_dir()}/ags/user/colorbackend.txt`]).catch(print); execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && echo "material" > ${GLib.get_user_cache_dir()}/ags/user/colorbackend.txt`]).catch(print)
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print))
.catch(print);
} }
else if (args[0] == '>pywal') { // Dark mode else if (args[0] == '>pywal') { // Dark mode
execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && echo "pywal" > ${GLib.get_user_cache_dir()}/ags/user/colorbackend.txt`]).catch(print); execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && echo "pywal" > ${GLib.get_user_cache_dir()}/ags/user/colorbackend.txt`]).catch(print)
.then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print))
.catch(print);
} }
else if (args[0] == '>todo') { // Todo else if (args[0] == '>todo') { // Todo
Todo.add(args.slice(1).join(' ')); Todo.add(args.slice(1).join(' '));
+1 -1
View File
@@ -1,5 +1,5 @@
.config/ags/style.css .config/ags/style.css
.config/ags/scripts/templates/gradience/preset.json
.config/ags/scss/_musicmaterial.scss .config/ags/scss/_musicmaterial.scss
.config/ags/scss/_musicwal.scss
.config/ags/scss/_material.scss .config/ags/scss/_material.scss
/cache /cache