From 211921ba8b6fe23440aebc20d943e1093af51e5c Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 1 Jul 2024 21:57:01 +0700 Subject: [PATCH] allow turning gradience off --- .config/ags/modules/overview/miscfunctions.js | 15 ++++++- .../scripts/color_generation/applycolor.sh | 42 ++++++++++--------- .../ags/scripts/color_generation/colorgen.sh | 3 +- .../scripts/color_generation/switchcolor.sh | 22 ++++++++++ 4 files changed, 61 insertions(+), 21 deletions(-) diff --git a/.config/ags/modules/overview/miscfunctions.js b/.config/ags/modules/overview/miscfunctions.js index 72556969e..91d842309 100644 --- a/.config/ags/modules/overview/miscfunctions.js +++ b/.config/ags/modules/overview/miscfunctions.js @@ -31,7 +31,7 @@ export function launchCustomCommand(command) { else if (args[0] == '>color') { // Generate colorscheme from color picker if (!args[1]) execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/switchcolor.sh --pick`, `&`]).catch(print); - else if(args[1][0] === '#') + else if (args[1][0] === '#') execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/switchcolor.sh "${args[1]}"`, `&`]).catch(print); } else if (args[0] == '>light') { // Light mode @@ -45,6 +45,19 @@ export function launchCustomCommand(command) { .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .catch(print); } + else if (args[0] == '>adw' || args[0] == '>adwaita') { + const ADWAITA_BLUE = "#3584E4"; + execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/switchcolor.sh "${ADWAITA_BLUE}" --no-gradience`, `&`]) + .catch(print); + } + else if (args[0] == '>grad' || args[0] == '>gradience') { + execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/switchcolor.sh - --yes-gradience`, `&`]) + .catch(print); + } + else if (args[0] == '>nograd' || args[0] == '>nogradience') { + execAsync([`bash`, `-c`, `${App.configDir}/scripts/color_generation/switchcolor.sh - --no-gradience`, `&`]) + .catch(print); + } else if (args[0] == '>material') { // Use material colors execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && echo "material" > ${GLib.get_user_state_dir()}/ags/user/colorbackend.txt`]).catch(print) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchwall.sh --noswitch`]).catch(print)) diff --git a/.config/ags/scripts/color_generation/applycolor.sh b/.config/ags/scripts/color_generation/applycolor.sh index d39539f70..db056d436 100755 --- a/.config/ags/scripts/color_generation/applycolor.sh +++ b/.config/ags/scripts/color_generation/applycolor.sh @@ -122,8 +122,22 @@ apply_hyprlock() { cp "$CACHE_DIR"/user/generated/hypr/hyprlock.conf "$XDG_CONFIG_HOME"/hypr/hyprlock.conf } -apply_gtk() { # Using gradience-cli +apply_lightdark() { lightdark=$(get_light_dark) + if [ "$lightdark" = "light" ]; then + gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' + else + gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + fi +} + +apply_gtk() { # Using gradience-cli + usegradience=$(sed -n '4p' "$STATE_DIR/user/colormode.txt") + if [[ "$usegradience" = "nogradience" ]]; then + rm "$XDG_CONFIG_HOME/gtk-3.0/gtk.css" + rm "$XDG_CONFIG_HOME/gtk-4.0/gtk.css" + return + fi # Copy template mkdir -p "$CACHE_DIR"/user/generated/gradience @@ -137,15 +151,13 @@ apply_gtk() { # Using gradience-cli mkdir -p "$XDG_CONFIG_HOME/presets" # create gradience presets folder gradience-cli apply -p "$CACHE_DIR"/user/generated/gradience/preset.json --gtk both - # Set light/dark preference # And set GTK theme manually as Gradience defaults to light adw-gtk3 # (which is unreadable when broken when you use dark mode) + lightdark=$(get_light_dark) if [ "$lightdark" = "light" ]; then gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3' - gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' else gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-dark - gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' fi } @@ -154,25 +166,17 @@ apply_ags() { ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' } -if [[ "$1" = "--bad-apple" ]]; then - lightdark=$(get_light_dark) - cp scripts/color_generation/specials/_material_badapple"${lightdark}".scss $STATE_DIR/scss/_material.scss - colornames=$(cat scripts/color_generation/specials/_material_badapple"${lightdark}".scss | cut -d: -f1) - colorstrings=$(cat scripts/color_generation/specials/_material_badapple"${lightdark}".scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1) - IFS=$'\n' - colorlist=( $colornames ) # Array of color names - colorvalues=( $colorstrings ) # Array of color values -else - colornames=$(cat $STATE_DIR/scss/_material.scss | cut -d: -f1) - colorstrings=$(cat $STATE_DIR/scss/_material.scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1) - IFS=$'\n' - colorlist=( $colornames ) # Array of color names - colorvalues=( $colorstrings ) # Array of color values -fi + +colornames=$(cat $STATE_DIR/scss/_material.scss | cut -d: -f1) +colorstrings=$(cat $STATE_DIR/scss/_material.scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1) +IFS=$'\n' +colorlist=( $colornames ) # Array of color names +colorvalues=( $colorstrings ) # Array of color values apply_ags & apply_hyprland & apply_hyprlock & +apply_lightdark & apply_gtk & apply_fuzzel & apply_term & diff --git a/.config/ags/scripts/color_generation/colorgen.sh b/.config/ags/scripts/color_generation/colorgen.sh index 99ac2f6e1..9a19d8eb2 100755 --- a/.config/ags/scripts/color_generation/colorgen.sh +++ b/.config/ags/scripts/color_generation/colorgen.sh @@ -24,10 +24,11 @@ if [ ! -f $colormodefile ]; then echo "dark" > $colormodefile echo "opaque" >> $colormodefile echo "vibrant" >> $colormodefile -elif [[ $(wc -l < $colormodefile) -ne 3 || $(wc -w < $colormodefile) -ne 3 ]]; then +elif [[ $(wc -l < $colormodefile) -ne 4 || $(wc -w < $colormodefile) -ne 4 ]]; then echo "dark" > $colormodefile echo "opaque" >> $colormodefile echo "vibrant" >> $colormodefile + echo "yesgradience" >> $colormodefile else lightdark=$(sed -n '1p' $colormodefile) transparency=$(sed -n '2p' $colormodefile) diff --git a/.config/ags/scripts/color_generation/switchcolor.sh b/.config/ags/scripts/color_generation/switchcolor.sh index 431b206de..75d268203 100755 --- a/.config/ags/scripts/color_generation/switchcolor.sh +++ b/.config/ags/scripts/color_generation/switchcolor.sh @@ -7,6 +7,8 @@ CONFIG_DIR="$XDG_CONFIG_HOME/ags" CACHE_DIR="$XDG_CACHE_HOME/ags" STATE_DIR="$XDG_STATE_HOME/ags" +COLORMODE_FILE_DIR="$STATE_DIR/user/colormode.txt" + if [ "$1" == "--pick" ]; then color=$(hyprpicker --no-fancy) elif [[ "$1" = "#"* ]]; then # this is a color @@ -15,5 +17,25 @@ else color=$(cut -f1 "$STATE_DIR/user/color.txt") fi +sed -i "1s/.*/$color/" "$STATE_DIR/user/color.txt" + +# Use Gradience? +colormodelines=$(wc -l "$COLORMODE_FILE_DIR" | awk '{print $1}' ) +if [ "$2" == "--no-gradience" ]; then + echo 'AAAAAAAAAAAAAAAAA' "$colormodelines" + if [ "$colormodelines" == "3" ]; then + echo "$COLORMODE_FILE_DIR" + echo 'nogradience' >> "$COLORMODE_FILE_DIR" + else + sed -i "4s/.*/nogradience/" "$COLORMODE_FILE_DIR" + fi +elif [ "$2" == "--yes-gradience" ]; then + if [ "$colormodelines" == "3" ]; then + echo 'yesgradience' >> "$COLORMODE_FILE_DIR" + else + sed -i "4s/.*/yesgradience/" "$COLORMODE_FILE_DIR" + fi +fi + # Generate colors for ags n stuff "$CONFIG_DIR"/scripts/color_generation/colorgen.sh "${color}" --apply