From 815790d82ec29860c97678b4df280246be9f7ce5 Mon Sep 17 00:00:00 2001 From: Cu3PO42 Date: Wed, 3 Apr 2024 21:55:28 +0200 Subject: [PATCH 1/6] chore: always use XDG_CACHE_DIR in AGS --- .config/ags/modules/bar/normal/music.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.config/ags/modules/bar/normal/music.js b/.config/ags/modules/bar/normal/music.js index 72d471f6f..4bc547ba9 100644 --- a/.config/ags/modules/bar/normal/music.js +++ b/.config/ags/modules/bar/normal/music.js @@ -8,13 +8,13 @@ import { AnimatedCircProg } from "../../.commonwidgets/cairo_circularprogress.js import { MaterialIcon } from '../../.commonwidgets/materialicon.js'; import { showMusicControls } from '../../../variables.js'; -const CUSTOM_MODULE_CONTENT_INTERVAL_FILE = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-interval.txt`; -const CUSTOM_MODULE_CONTENT_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-poll.sh`; -const CUSTOM_MODULE_LEFTCLICK_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-leftclick.sh`; -const CUSTOM_MODULE_RIGHTCLICK_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-rightclick.sh`; -const CUSTOM_MODULE_MIDDLECLICK_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-middleclick.sh`; -const CUSTOM_MODULE_SCROLLUP_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-scrollup.sh`; -const CUSTOM_MODULE_SCROLLDOWN_SCRIPT = `${GLib.get_home_dir()}/.cache/ags/user/scripts/custom-module-scrolldown.sh`; +const CUSTOM_MODULE_CONTENT_INTERVAL_FILE = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-interval.txt`; +const CUSTOM_MODULE_CONTENT_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-poll.sh`; +const CUSTOM_MODULE_LEFTCLICK_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-leftclick.sh`; +const CUSTOM_MODULE_RIGHTCLICK_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-rightclick.sh`; +const CUSTOM_MODULE_MIDDLECLICK_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-middleclick.sh`; +const CUSTOM_MODULE_SCROLLUP_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-scrollup.sh`; +const CUSTOM_MODULE_SCROLLDOWN_SCRIPT = `${GLib.get_user_cache_dir()}/ags/user/scripts/custom-module-scrolldown.sh`; function trimTrackTitle(title) { if (!title) return ''; From 1f39a59f48edcdc7a40b85bf7131d6d74d20a82e Mon Sep 17 00:00:00 2001 From: Cu3PO42 Date: Wed, 3 Apr 2024 21:55:42 +0200 Subject: [PATCH 2/6] feat: use XDG base directories --- .config/ags/modules/.miscutils/system.js | 2 +- .config/ags/modules/bar/normal/music.js | 2 +- .config/ags/modules/indicators/colorscheme.js | 7 +- .../ags/modules/indicators/musiccontrols.js | 2 +- .config/ags/modules/sideright/quicktoggles.js | 2 +- .../scripts/color_generation/applycolor.sh | 69 ++++++++++--------- .../ags/scripts/color_generation/colorgen.sh | 48 +++++++------ .../scripts/color_generation/switchcolor.sh | 9 ++- .../scripts/color_generation/switchwall.sh | 5 +- 9 files changed, 83 insertions(+), 63 deletions(-) diff --git a/.config/ags/modules/.miscutils/system.js b/.config/ags/modules/.miscutils/system.js index ef7d15c36..210dd3f73 100644 --- a/.config/ags/modules/.miscutils/system.js +++ b/.config/ags/modules/.miscutils/system.js @@ -9,7 +9,7 @@ export const isArchDistro = (distroID == 'arch' || distroID == 'endeavouros' || export const hasFlatpak = !!exec(`bash -c 'command -v flatpak'`); const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; -const colorMode = Utils.exec('bash -c "sed -n \'1p\' $HOME/.cache/ags/user/colormode.txt"'); +const colorMode = Utils.exec(`bash -c "sed -n '1p' '${LIGHTDARK_FILE_LOCATION}'"`); export let darkMode = Variable(!(Utils.readFile(LIGHTDARK_FILE_LOCATION).split('\n')[0].trim() == 'light')); export const hasPlasmaIntegration = !!Utils.exec('bash -c "command -v plasma-browser-integration-host"'); diff --git a/.config/ags/modules/bar/normal/music.js b/.config/ags/modules/bar/normal/music.js index 4bc547ba9..9dbf5c55e 100644 --- a/.config/ags/modules/bar/normal/music.js +++ b/.config/ags/modules/bar/normal/music.js @@ -157,7 +157,7 @@ export default () => { ] }) const SystemResourcesOrCustomModule = () => { - // Check if ~/.cache/ags/user/scripts/custom-module-poll.sh exists + // Check if $XDG_CACHE_HOME/ags/user/scripts/custom-module-poll.sh exists if (GLib.file_test(CUSTOM_MODULE_CONTENT_SCRIPT, GLib.FileTest.EXISTS)) { const interval = Number(Utils.readFile(CUSTOM_MODULE_CONTENT_INTERVAL_FILE)) || 5000; return BarGroup({ diff --git a/.config/ags/modules/indicators/colorscheme.js b/.config/ags/modules/indicators/colorscheme.js index 3d205dd03..d679aff78 100644 --- a/.config/ags/modules/indicators/colorscheme.js +++ b/.config/ags/modules/indicators/colorscheme.js @@ -96,11 +96,12 @@ const schemeOptionsArr = [ //] ]; -const initColorMode = Utils.exec('bash -c "sed -n \'1p\' $HOME/.cache/ags/user/colormode.txt"'); +const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; +const initColorMode = Utils.exec(`bash -c "sed -n \'1p\' ${LIGHTDARK_FILE_LOCATION}"`); const initColorVal = (initColorMode == "dark") ? 1 : 0; -const initTransparency = Utils.exec('bash -c "sed -n \'2p\' $HOME/.cache/ags/user/colormode.txt"'); +const initTransparency = Utils.exec(`bash -c "sed -n \'2p\' ${LIGHTDARK_FILE_LOCATION}"`); const initTransparencyVal = (initTransparency == "transparent") ? 1 : 0; -const initScheme = Utils.exec('bash -c "sed -n \'3p\' $HOME/.cache/ags/user/colormode.txt"'); +const initScheme = Utils.exec(`bash -c "sed -n \'3p\' ${LIGHTDARK_FILE_LOCATION}"`); const initSchemeIndex = calculateSchemeInitIndex(schemeOptionsArr, initScheme); const ColorSchemeSettings = () => Widget.Box({ diff --git a/.config/ags/modules/indicators/musiccontrols.js b/.config/ags/modules/indicators/musiccontrols.js index d39b49b4c..1e2db3bc7 100644 --- a/.config/ags/modules/indicators/musiccontrols.js +++ b/.config/ags/modules/indicators/musiccontrols.js @@ -13,7 +13,7 @@ import { darkMode, hasPlasmaIntegration } from '../.miscutils/system.js'; const COMPILED_STYLE_DIR = `${GLib.get_user_cache_dir()}/ags/user/generated` const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; -const colorMode = Utils.exec('bash -c "sed -n \'1p\' $HOME/.cache/ags/user/colormode.txt"'); +const colorMode = Utils.exec(`bash -c "sed -n \'1p\' '${LIGHTDARK_FILE_LOCATION}'"`); const lightDark = (colorMode == "light") ? '-l' : ''; const COVER_COLORSCHEME_SUFFIX = '_colorscheme.css'; var lastCoverPath = ''; diff --git a/.config/ags/modules/sideright/quicktoggles.js b/.config/ags/modules/sideright/quicktoggles.js index 227ca1689..fb0d1d317 100644 --- a/.config/ags/modules/sideright/quicktoggles.js +++ b/.config/ags/modules/sideright/quicktoggles.js @@ -157,7 +157,7 @@ export const ModuleInvertColors = async (props = {}) => { button.toggleClassName('sidebar-button-active', false); } else { - Hyprland.messageAsync(`j/keyword decoration:screen_shader ${GLib.get_home_dir()}/.config/hypr/shaders/invert.frag`) + Hyprland.messageAsync(`j/keyword decoration:screen_shader ${GLib.get_user_config_dir()}/hypr/shaders/invert.frag`) .catch(print); button.toggleClassName('sidebar-button-active', true); } diff --git a/.config/ags/scripts/color_generation/applycolor.sh b/.config/ags/scripts/color_generation/applycolor.sh index e41d7c610..0e612ca5d 100755 --- a/.config/ags/scripts/color_generation/applycolor.sh +++ b/.config/ags/scripts/color_generation/applycolor.sh @@ -1,11 +1,16 @@ #!/usr/bin/env bash +XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" +CONFIG_DIR="$XDG_CONFIG_HOME/ags" +CACHE_DIR="$XDG_CACHE_HOME/ags" + term_alpha=100 #Set this to < 100 make all your terminals transparent # 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 +if [ ! -d "$CACHE_DIR"/user/generated ]; then + mkdir -p "$CACHE_DIR"/user/generated fi -cd "$HOME/.config/ags" || exit +cd "$CONFIG_DIR" || exit colornames='' colorstrings='' @@ -13,7 +18,7 @@ colorlist=() colorvalues=() # wallpath=$(swww query | head -1 | awk -F 'image: ' '{print $2}') -# wallpath_png="$HOME"'/.cache/ags/user/generated/hypr/lockscreen.png' +# wallpath_png="$CACHE_DIR/user/generated/hypr/lockscreen.png" # convert "$wallpath" "$wallpath_png" # wallpath_png=$(echo "$wallpath_png" | sed 's/\//\\\//g') # wallpath_png=$(sed 's/\//\\\\\//g' <<< "$wallpath_png") @@ -32,10 +37,10 @@ transparentize() { get_light_dark() { lightdark="" - if [ ! -f "$HOME"/.cache/ags/user/colormode.txt ]; then - echo "" > "$HOME"/.cache/ags/user/colormode.txt + if [ ! -f "$CACHE_DIR"/user/colormode.txt ]; then + echo "" > "$CACHE_DIR"/user/colormode.txt else - lightdark=$(sed -n '1p' "$HOME/.cache/ags/user/colormode.txt") + lightdark=$(sed -n '1p' "$CACHE_DIR/user/colormode.txt") fi echo "$lightdark" } @@ -47,14 +52,14 @@ apply_fuzzel() { return fi # Copy template - mkdir -p "$HOME"/.cache/ags/user/generated/fuzzel - cp "scripts/templates/fuzzel/fuzzel.ini" "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini + mkdir -p "$CACHE_DIR"/user/generated/fuzzel + cp "scripts/templates/fuzzel/fuzzel.ini" "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini # Apply colors for i in "${!colorlist[@]}"; do - sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini + sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini done - cp "$HOME"/.cache/ags/user/generated/fuzzel/fuzzel.ini "$HOME"/.config/fuzzel/fuzzel.ini + cp "$CACHE_DIR"/user/generated/fuzzel/fuzzel.ini "$XDG_CONFIG_HOME"/fuzzel/fuzzel.ini } apply_term() { @@ -64,18 +69,18 @@ apply_term() { return fi # Copy template - mkdir -p "$HOME"/.cache/ags/user/generated/terminal - cp "scripts/templates/terminal/sequences.txt" "$HOME"/.cache/ags/user/generated/terminal/sequences.txt + mkdir -p "$CACHE_DIR"/user/generated/terminal + cp "scripts/templates/terminal/sequences.txt" "$CACHE_DIR"/user/generated/terminal/sequences.txt # Apply colors for i in "${!colorlist[@]}"; do - sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/terminal/sequences.txt + sed -i "s/${colorlist[$i]} #/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/terminal/sequences.txt done - sed -i "s/\$alpha/$term_alpha/g" "$HOME/.cache/ags/user/generated/terminal/sequences.txt" + sed -i "s/\$alpha/$term_alpha/g" "$CACHE_DIR/user/generated/terminal/sequences.txt" for file in /dev/pts/*; do if [[ $file =~ ^/dev/pts/[0-9]+$ ]]; then - cat "$HOME"/.cache/ags/user/generated/terminal/sequences.txt > "$file" + cat "$CACHE_DIR"/user/generated/terminal/sequences.txt > "$file" fi done } @@ -87,14 +92,14 @@ apply_hyprland() { return fi # Copy template - mkdir -p "$HOME"/.cache/ags/user/generated/hypr/hyprland - cp "scripts/templates/hypr/hyprland/colors.conf" "$HOME"/.cache/ags/user/generated/hypr/hyprland/colors.conf + mkdir -p "$CACHE_DIR"/user/generated/hypr/hyprland + cp "scripts/templates/hypr/hyprland/colors.conf" "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf # Apply colors for i in "${!colorlist[@]}"; do - sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/hypr/hyprland/colors.conf + sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf done - cp "$HOME"/.cache/ags/user/generated/hypr/hyprland/colors.conf "$HOME"/.config/hypr/hyprland/colors.conf + cp "$CACHE_DIR"/user/generated/hypr/hyprland/colors.conf "$XDG_CONFIG_HOME"/hypr/hyprland/colors.conf } apply_hyprlock() { @@ -104,31 +109,31 @@ apply_hyprlock() { return fi # Copy template - mkdir -p "$HOME"/.cache/ags/user/generated/hypr/ - cp "scripts/templates/hypr/hyprlock.conf" "$HOME"/.cache/ags/user/generated/hypr/hyprlock.conf + mkdir -p "$CACHE_DIR"/user/generated/hypr/ + cp "scripts/templates/hypr/hyprlock.conf" "$CACHE_DIR"/user/generated/hypr/hyprlock.conf # Apply colors - # sed -i "s/{{ SWWW_WALL }}/${wallpath_png}/g" "$HOME"/.cache/ags/user/generated/hypr/hyprlock.conf + # sed -i "s/{{ SWWW_WALL }}/${wallpath_png}/g" "$CACHE_DIR"/user/generated/hypr/hyprlock.conf for i in "${!colorlist[@]}"; do - sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$HOME"/.cache/ags/user/generated/hypr/hyprlock.conf + sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]#\#}/g" "$CACHE_DIR"/user/generated/hypr/hyprlock.conf done - cp "$HOME"/.cache/ags/user/generated/hypr/hyprlock.conf "$HOME"/.config/hypr/hyprlock.conf + cp "$CACHE_DIR"/user/generated/hypr/hyprlock.conf "$XDG_CONFIG_HOME"/hypr/hyprlock.conf } apply_gtk() { # Using gradience-cli lightdark=$(get_light_dark) # Copy template - mkdir -p "$HOME"/.cache/ags/user/generated/gradience - cp "scripts/templates/gradience/preset.json" "$HOME"/.cache/ags/user/generated/gradience/preset.json + mkdir -p "$CACHE_DIR"/user/generated/gradience + cp "scripts/templates/gradience/preset.json" "$CACHE_DIR"/user/generated/gradience/preset.json # Apply colors for i in "${!colorlist[@]}"; do - sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]}/g" "$HOME"/.cache/ags/user/generated/gradience/preset.json + sed -i "s/{{ ${colorlist[$i]} }}/${colorvalues[$i]}/g" "$CACHE_DIR"/user/generated/gradience/preset.json done - mkdir -p "$HOME/.config/presets" # create gradience presets folder - gradience-cli apply -p "$HOME"/.cache/ags/user/generated/gradience/preset.json --gtk both + 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 @@ -143,9 +148,9 @@ apply_gtk() { # Using gradience-cli } apply_ags() { - sass "$HOME"/.config/ags/scss/main.scss "$HOME"/.cache/ags/user/generated/style.css + sass "$CONFIG_DIR"/scss/main.scss "$CACHE_DIR"/user/generated/style.css ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' - ags run-js "App.resetCss(); App.applyCss('${HOME}/.cache/ags/user/generated/style.css');" + ags run-js "App.resetCss(); App.applyCss('${CACHE_DIR}/user/generated/style.css');" } if [[ "$1" = "--bad-apple" ]]; then diff --git a/.config/ags/scripts/color_generation/colorgen.sh b/.config/ags/scripts/color_generation/colorgen.sh index 0010496ac..0fff322f9 100755 --- a/.config/ags/scripts/color_generation/colorgen.sh +++ b/.config/ags/scripts/color_generation/colorgen.sh @@ -1,16 +1,22 @@ #!/usr/bin/env bash +XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" +CONFIG_DIR="$XDG_CONFIG_HOME/ags" +CACHE_DIR="$XDG_CACHE_HOME/ags" + # check if no arguments if [ $# -eq 0 ]; then echo "Usage: colorgen.sh /path/to/image (--apply)" exit 1 fi -colormodefile="$HOME/.cache/ags/user/colormode.txt" +# check if the file $CACHE_DIR/user/colormode.txt exists. if not, create it. else, read it to $lightdark +colormodefile="$CACHE_DIR/user/colormode.txt" lightdark="dark" transparency="opaque" materialscheme="vibrant" -terminalscheme="$HOME/.config/ags/scripts/templates/terminal/scheme-base.json" +terminalscheme="$XDG_CONFIG_HOME/ags/scripts/templates/terminal/scheme-base.json" if [ ! -f $colormodefile ]; then echo "dark" > $colormodefile @@ -25,24 +31,24 @@ else transparency=$(sed -n '2p' $colormodefile) materialscheme=$(sed -n '3p' $colormodefile) if [ "$materialscheme" = "monochrome" ]; then - terminalscheme="$HOME/.config/ags/scripts/templates/terminal/scheme-monochrome.json" + terminalscheme="$XDG_CONFIG_HOME/ags/scripts/templates/terminal/scheme-monochrome.json" fi fi backend="material" # color generator backend -if [ ! -f "$HOME/.cache/ags/user/colorbackend.txt" ]; then - echo "material" > "$HOME/.cache/ags/user/colorbackend.txt" +if [ ! -f "$CACHE_DIR/user/colorbackend.txt" ]; then + echo "material" > "$CACHE_DIR/user/colorbackend.txt" else - backend=$(cat "$HOME/.cache/ags/user/colorbackend.txt") # either "" or "-l" + backend=$(cat "$CACHE_DIR/user/colorbackend.txt") # either "" or "-l" fi -cd "$HOME/.config/ags/scripts/" || exit +cd "$CONFIG_DIR/scripts/" || exit if [[ "$1" = "#"* ]]; then # this is a color color_generation/generate_colors_material.py --color "$1" \ --mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \ --termscheme $terminalscheme --blend_bg_fg \ - > "$HOME"/.cache/ags/user/generated/material_colors.scss + > "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then - cp "$HOME"/.cache/ags/user/generated/material_colors.scss "$HOME/.config/ags/scss/_material.scss" + cp "$CACHE_DIR"/user/generated/material_colors.scss "$CONFIG_DIR/scss/_material.scss" color_generation/applycolor.sh fi elif [ "$backend" = "material" ]; then @@ -53,10 +59,10 @@ elif [ "$backend" = "material" ]; then color_generation/generate_colors_material.py --path "$1" \ --mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \ --termscheme $terminalscheme --blend_bg_fg \ - --cache "$HOME/.cache/ags/user/color.txt" $smartflag \ - > "$HOME"/.cache/ags/user/generated/material_colors.scss + --cache "$CACHE_DIR/user/color.txt" $smartflag \ + > "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then - cp "$HOME"/.cache/ags/user/generated/material_colors.scss "$HOME/.config/ags/scss/_material.scss" + cp "$CACHE_DIR"/user/generated/material_colors.scss "$CONFIG_DIR/scss/_material.scss" color_generation/applycolor.sh fi elif [ "$backend" = "pywal" ]; then @@ -64,21 +70,21 @@ elif [ "$backend" = "pywal" ]; then wal -c wal -i "$1" -n $lightdark -q # copy scss - cp "$HOME/.cache/wal/colors.scss" "$HOME"/.cache/ags/user/generated/material_colors.scss + cp "$XDG_CACHE_HOME/wal/colors.scss" "$CACHE_DIR"/user/generated/material_colors.scss - cat color_generation/pywal_to_material.scss >> "$HOME"/.cache/ags/user/generated/material_colors.scss + cat color_generation/pywal_to_material.scss >> "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then - sass "$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/\./$/g" "$HOME"/.cache/ags/user/generated/colors_classes.scss - sed -i "s/}//g" "$HOME"/.cache/ags/user/generated/colors_classes.scss + sass "$CACHE_DIR"/user/generated/material_colors.scss "$CACHE_DIR"/user/generated/colors_classes.scss --style compact + sed -i "s/ { color//g" "$CACHE_DIR"/user/generated/colors_classes.scss + sed -i "s/\./$/g" "$CACHE_DIR"/user/generated/colors_classes.scss + sed -i "s/}//g" "$CACHE_DIR"/user/generated/colors_classes.scss if [ "$lightdark" = "-l" ]; then - printf "\n""\$darkmode: false;""\n" >> "$HOME"/.cache/ags/user/generated/colors_classes.scss + printf "\n""\$darkmode: false;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss else - printf "\n""\$darkmode: true;""\n" >> "$HOME"/.cache/ags/user/generated/colors_classes.scss + printf "\n""\$darkmode: true;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss fi - cp "$HOME"/.cache/ags/user/generated/colors_classes.scss "$HOME/.config/ags/scss/_material.scss" + cp "$CACHE_DIR"/user/generated/colors_classes.scss "$CONFIG_DIR/scss/_material.scss" color_generation/applycolor.sh fi diff --git a/.config/ags/scripts/color_generation/switchcolor.sh b/.config/ags/scripts/color_generation/switchcolor.sh index 628d91158..11d69a309 100755 --- a/.config/ags/scripts/color_generation/switchcolor.sh +++ b/.config/ags/scripts/color_generation/switchcolor.sh @@ -1,10 +1,15 @@ #!/usr/bin/env bash +XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" +CONFIG_DIR="$XDG_CONFIG_HOME/ags" +CACHE_DIR="$XDG_CACHE_HOME/ags" + if [ "$1" == "--pick" ]; then color=$(hyprpicker --no-fancy) else - color=$(cut -f1 "${HOME}/.cache/ags/user/color.txt") + color=$(cut -f1 "${CACHE_DIR}/user/color.txt") fi # Generate colors for ags n stuff -"$HOME"/.config/ags/scripts/color_generation/colorgen.sh "${color}" --apply +"$CONFIG_DIR"/scripts/color_generation/colorgen.sh "${color}" --apply diff --git a/.config/ags/scripts/color_generation/switchwall.sh b/.config/ags/scripts/color_generation/switchwall.sh index 6ed03eb92..a08f7cc68 100755 --- a/.config/ags/scripts/color_generation/switchwall.sh +++ b/.config/ags/scripts/color_generation/switchwall.sh @@ -1,5 +1,8 @@ #!/usr/bin/env bash +XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +CONFIG_DIR="$XDG_CONFIG_HOME/ags" + if [ "$1" == "--noswitch" ]; then imgpath=$(swww query | head -1 | awk -F 'image: ' '{print $2}') # imgpath=$(ags run-js 'wallpaper.get(0)') @@ -28,4 +31,4 @@ else fi # Generate colors for ags n stuff -"$HOME"/.config/ags/scripts/color_generation/colorgen.sh "${imgpath}" --apply --smart +"$CONFIG_DIR"/scripts/color_generation/colorgen.sh "${imgpath}" --apply --smart From 234fc4b84734ba0d2722dca3107fb93718d86ed5 Mon Sep 17 00:00:00 2001 From: Cu3PO42 Date: Wed, 3 Apr 2024 21:55:46 +0200 Subject: [PATCH 3/6] chore: move color .scss files to XDG_STATE_HOME --- .config/ags/config.js | 7 ++++--- .config/ags/config_overviewOnly.js | 7 ++++--- .config/ags/modules/indicators/musiccontrols.js | 6 +++--- .config/ags/scripts/color_generation/applycolor.sh | 10 ++++++---- .config/ags/scripts/color_generation/colorgen.sh | 10 ++++++---- .config/ags/scss/_music.scss | 6 +++--- .config/ags/scss/{ => fallback}/_material.scss | 0 .config/ags/scss/main.scss | 2 +- 8 files changed, 27 insertions(+), 21 deletions(-) rename .config/ags/scss/{ => fallback}/_material.scss (100%) diff --git a/.config/ags/config.js b/.config/ags/config.js index 9bc65433e..d915fac01 100644 --- a/.config/ags/config.js +++ b/.config/ags/config.js @@ -33,11 +33,12 @@ function forMonitorsAsync(widget) { } // SCSS compilation -Utils.exec(`bash -c 'echo "" > ${App.configDir}/scss/_musicwal.scss'`); // reset music styles -Utils.exec(`bash -c 'echo "" > ${App.configDir}/scss/_musicmaterial.scss'`); // reset music styles +Utils.exec(`mkdir -p "${GLib.get_user_state_dir()}/ags/scss"`); +Utils.exec(`bash -c 'echo "" > ${GLib.get_user_state_dir()}/ags/scss/_musicwal.scss'`); // reset music styles +Utils.exec(`bash -c 'echo "" > ${GLib.get_user_state_dir()}/ags/scss/_musicmaterial.scss'`); // reset music styles async function applyStyle() { Utils.exec(`mkdir -p ${COMPILED_STYLE_DIR}`); - Utils.exec(`sass ${App.configDir}/scss/main.scss ${COMPILED_STYLE_DIR}/style.css`); + Utils.exec(`sass -I "${GLib.get_user_state_dir()}/ags/scss" -I "${App.configDir}/scss/fallback" "${App.configDir}/scss/main.scss" "${COMPILED_STYLE_DIR}/style.css"`); App.resetCss(); App.applyCss(`${COMPILED_STYLE_DIR}/style.css`); console.log('[LOG] Styles loaded') diff --git a/.config/ags/config_overviewOnly.js b/.config/ags/config_overviewOnly.js index bc3563e6b..857f37c7f 100644 --- a/.config/ags/config_overviewOnly.js +++ b/.config/ags/config_overviewOnly.js @@ -16,12 +16,13 @@ import userOptions from './modules/.configuration/user_options.js'; // Widgets import Overview from './modules/overview/main.js'; -Utils.exec(`bash -c 'echo "" > ${App.configDir}/scss/_musicwal.scss'`); // reset music styles -Utils.exec(`bash -c 'echo "" > ${App.configDir}/scss/_musicmaterial.scss'`); // reset music styles const COMPILED_STYLE_DIR = `${GLib.get_user_cache_dir()}/ags/user/generated` +Utils.exec(`mkdir -p "${GLib.get_user_state_dir()}/ags/scss"`); +Utils.exec(`bash -c 'echo "" > ${GLib.get_user_state_dir()}/ags/scss/_musicwal.scss'`); // reset music styles +Utils.exec(`bash -c 'echo "" > ${GLib.get_user_state_dir()}/ags/scss/_musicmaterial.scss'`); // reset music styles async function applyStyle() { Utils.exec(`mkdir -p ${COMPILED_STYLE_DIR}`); - Utils.exec(`sass ${App.configDir}/scss/main.scss ${COMPILED_STYLE_DIR}/style.css`); + Utils.exec(`sass -I "${GLib.get_user_state_dir()}/ags/scss" -I "${App.configDir}/scss/fallback" "${App.configDir}/scss/main.scss" "${COMPILED_STYLE_DIR}/style.css"`); App.resetCss(); App.applyCss(`${COMPILED_STYLE_DIR}/style.css`); console.log('[LOG] Styles loaded') diff --git a/.config/ags/modules/indicators/musiccontrols.js b/.config/ags/modules/indicators/musiccontrols.js index 1e2db3bc7..88951fb07 100644 --- a/.config/ags/modules/indicators/musiccontrols.js +++ b/.config/ags/modules/indicators/musiccontrols.js @@ -206,11 +206,11 @@ const CoverArt = ({ player, ...rest }) => { // Generate colors execAsync(['bash', '-c', - `${App.configDir}/scripts/color_generation/generate_colors_material.py --path '${coverPath}' --mode ${darkMode.value ? 'dark' : 'light'} > ${App.configDir}/scss/_musicmaterial.scss`]) + `${App.configDir}/scripts/color_generation/generate_colors_material.py --path '${coverPath}' --mode ${darkMode.value ? 'dark' : 'light'} > ${GLib.get_user_state_dir()}/ags/scss/_musicmaterial.scss`]) .then(() => { exec(`wal -i "${player.coverPath}" -n -t -s -e -q ${darkMode.value ? '' : '-l'}`) - exec(`cp ${GLib.get_user_cache_dir()}/wal/colors.scss ${App.configDir}/scss/_musicwal.scss`); - exec(`sass ${App.configDir}/scss/_music.scss ${stylePath}`); + exec(`cp ${GLib.get_user_cache_dir()}/wal/colors.scss ${GLib.get_user_state_dir()}/ags/scss/_musicwal.scss`); + exec(`sass -I "${GLib.get_user_state_dir()}/ags/scss" -I "${App.configDir}/scss/fallback" "${App.configDir}/scss/_music.scss" "${stylePath}"`); Utils.timeout(200, () => { // self.attribute.showImage(self, coverPath) self.css = `background-image: url('${coverPath}');`; // CSS image diff --git a/.config/ags/scripts/color_generation/applycolor.sh b/.config/ags/scripts/color_generation/applycolor.sh index 0e612ca5d..98be96a92 100755 --- a/.config/ags/scripts/color_generation/applycolor.sh +++ b/.config/ags/scripts/color_generation/applycolor.sh @@ -2,8 +2,10 @@ XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" +XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" CONFIG_DIR="$XDG_CONFIG_HOME/ags" CACHE_DIR="$XDG_CACHE_HOME/ags" +STATE_DIR="$XDG_STATE_HOME/ags" term_alpha=100 #Set this to < 100 make all your terminals transparent # sleep 0 # idk i wanted some delay or colors dont get applied properly @@ -148,22 +150,22 @@ apply_gtk() { # Using gradience-cli } apply_ags() { - sass "$CONFIG_DIR"/scss/main.scss "$CACHE_DIR"/user/generated/style.css + sass -I "$STATE_DIR/scss" -I "$CONFIG_DIR/scss/fallback" "$CONFIG_DIR"/scss/main.scss "$CACHE_DIR"/user/generated/style.css ags run-js 'openColorScheme.value = true; Utils.timeout(2000, () => openColorScheme.value = false);' ags run-js "App.resetCss(); App.applyCss('${CACHE_DIR}/user/generated/style.css');" } if [[ "$1" = "--bad-apple" ]]; then lightdark=$(get_light_dark) - cp scripts/color_generation/specials/_material_badapple"${lightdark}".scss scss/_material.scss + 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 scss/_material.scss | cut -d: -f1) - colorstrings=$(cat scss/_material.scss | cut -d: -f2 | cut -d ' ' -f2 | cut -d ";" -f1) + 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 diff --git a/.config/ags/scripts/color_generation/colorgen.sh b/.config/ags/scripts/color_generation/colorgen.sh index 0fff322f9..8a1638c53 100755 --- a/.config/ags/scripts/color_generation/colorgen.sh +++ b/.config/ags/scripts/color_generation/colorgen.sh @@ -2,8 +2,10 @@ XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" +XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" CONFIG_DIR="$XDG_CONFIG_HOME/ags" CACHE_DIR="$XDG_CACHE_HOME/ags" +STATE_DIR="$XDG_STATE_HOME/ags" # check if no arguments if [ $# -eq 0 ]; then @@ -48,7 +50,7 @@ if [[ "$1" = "#"* ]]; then # this is a color --termscheme $terminalscheme --blend_bg_fg \ > "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then - cp "$CACHE_DIR"/user/generated/material_colors.scss "$CONFIG_DIR/scss/_material.scss" + cp "$CACHE_DIR"/user/generated/material_colors.scss "$STATE_DIR/scss/_material.scss" color_generation/applycolor.sh fi elif [ "$backend" = "material" ]; then @@ -62,7 +64,7 @@ elif [ "$backend" = "material" ]; then --cache "$CACHE_DIR/user/color.txt" $smartflag \ > "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then - cp "$CACHE_DIR"/user/generated/material_colors.scss "$CONFIG_DIR/scss/_material.scss" + cp "$CACHE_DIR"/user/generated/material_colors.scss "$STATE_DIR/scss/_material.scss" color_generation/applycolor.sh fi elif [ "$backend" = "pywal" ]; then @@ -74,7 +76,7 @@ elif [ "$backend" = "pywal" ]; then cat color_generation/pywal_to_material.scss >> "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then - sass "$CACHE_DIR"/user/generated/material_colors.scss "$CACHE_DIR"/user/generated/colors_classes.scss --style compact + sass -I "$STATE_DIR/scss" -I "$CONFIG_DIR/scss/fallback" "$CACHE_DIR"/user/generated/material_colors.scss "$CACHE_DIR"/user/generated/colors_classes.scss --style compressed sed -i "s/ { color//g" "$CACHE_DIR"/user/generated/colors_classes.scss sed -i "s/\./$/g" "$CACHE_DIR"/user/generated/colors_classes.scss sed -i "s/}//g" "$CACHE_DIR"/user/generated/colors_classes.scss @@ -84,7 +86,7 @@ elif [ "$backend" = "pywal" ]; then printf "\n""\$darkmode: true;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss fi - cp "$CACHE_DIR"/user/generated/colors_classes.scss "$CONFIG_DIR/scss/_material.scss" + cp "$CACHE_DIR"/user/generated/colors_classes.scss "$STATE_DIR/scss/_material.scss" color_generation/applycolor.sh fi diff --git a/.config/ags/scss/_music.scss b/.config/ags/scss/_music.scss index cd5130509..473a855e8 100644 --- a/.config/ags/scss/_music.scss +++ b/.config/ags/scss/_music.scss @@ -1,7 +1,7 @@ -@import './material'; -@import './musicmaterial'; +@import 'material'; +@import 'musicmaterial'; @import './wal'; -@import './musicwal'; +@import 'musicwal'; @import './colors'; @import './lib_mixins'; $music_transparentize_amount: 0.3; diff --git a/.config/ags/scss/_material.scss b/.config/ags/scss/fallback/_material.scss similarity index 100% rename from .config/ags/scss/_material.scss rename to .config/ags/scss/fallback/_material.scss diff --git a/.config/ags/scss/main.scss b/.config/ags/scss/main.scss index 990d1d6a8..a166115b7 100644 --- a/.config/ags/scss/main.scss +++ b/.config/ags/scss/main.scss @@ -5,7 +5,7 @@ *:not(popover) { all: unset; } // Colors -@import './material'; // Material colors +@import 'material'; // Material colors @import './colors'; // Global color definitions. Uses material colors as base. @import './lib_mixins'; @import './lib_classes'; From 0092e7f48842af519b17ca60c65433751e3b2c6c Mon Sep 17 00:00:00 2001 From: Cu3PO42 Date: Wed, 3 Apr 2024 21:55:52 +0200 Subject: [PATCH 4/6] chore: move firstrun.txt to XDG_STATE_HOME --- .config/ags/services/messages.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.config/ags/services/messages.js b/.config/ags/services/messages.js index d94487165..11e7c564d 100644 --- a/.config/ags/services/messages.js +++ b/.config/ags/services/messages.js @@ -8,13 +8,14 @@ export function fileExists(filePath) { } const FIRST_RUN_FILE = "firstrun.txt"; -const FIRST_RUN_PATH = GLib.build_filenamev([GLib.get_user_cache_dir(), "ags", "user", FIRST_RUN_FILE]); +const FIRST_RUN_PATH = `${GLib.get_user_state_dir()}/ags/user/${FIRST_RUN_FILE}`; const FIRST_RUN_FILE_CONTENT = "Just a file to confirm that you have been greeted ;)"; const APP_NAME = "illogical-impulse"; const FIRST_RUN_NOTIF_TITLE = "Welcome!"; const FIRST_RUN_NOTIF_BODY = `First run? 👀 CTRL+SUPER+T to pick a wallpaper (or styles will break!)\nFor a list of keybinds, hit Super + /.`; export async function firstRunWelcome() { + GLib.mkdir_with_parents(`${GLib.get_user_state_dir()}/ags/user`, 755); if (!fileExists(FIRST_RUN_PATH)) { Utils.writeFile(FIRST_RUN_FILE_CONTENT, FIRST_RUN_PATH) .then(() => { @@ -54,7 +55,7 @@ async function batteryMessage() { } // Run them -firstRunWelcome(); +firstRunWelcome().catch(print); Utils.timeout(1, () => { Battery.connect('changed', () => batteryMessage().catch(print)); -}) \ No newline at end of file +}) From 97999cd4e4ddc3168be91dda6ed378d79e567c9d Mon Sep 17 00:00:00 2001 From: Cu3PO42 Date: Wed, 3 Apr 2024 21:56:05 +0200 Subject: [PATCH 5/6] chore: move more files to XDG_STATE_HOME --- .config/ags/modules/.miscutils/system.js | 2 +- .config/ags/modules/indicators/colorscheme.js | 8 ++++---- .config/ags/modules/indicators/musiccontrols.js | 2 +- .config/ags/modules/overview/miscfunctions.js | 10 +++++----- .../ags/modules/sideright/centermodules/configure.js | 4 ++-- .config/ags/scripts/color_generation/applycolor.sh | 6 +++--- .config/ags/scripts/color_generation/colorgen.sh | 12 ++++++------ .config/ags/scripts/color_generation/switchcolor.sh | 4 +++- .config/ags/services/todo.js | 2 +- .config/ags/services/wallpaper.js | 2 +- 10 files changed, 27 insertions(+), 25 deletions(-) diff --git a/.config/ags/modules/.miscutils/system.js b/.config/ags/modules/.miscutils/system.js index 210dd3f73..3f81458f1 100644 --- a/.config/ags/modules/.miscutils/system.js +++ b/.config/ags/modules/.miscutils/system.js @@ -8,7 +8,7 @@ export const isDebianDistro = (distroID == 'linuxmint' || distroID == 'ubuntu' | export const isArchDistro = (distroID == 'arch' || distroID == 'endeavouros' || distroID == 'cachyos'); export const hasFlatpak = !!exec(`bash -c 'command -v flatpak'`); -const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; +const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/colormode.txt`; const colorMode = Utils.exec(`bash -c "sed -n '1p' '${LIGHTDARK_FILE_LOCATION}'"`); export let darkMode = Variable(!(Utils.readFile(LIGHTDARK_FILE_LOCATION).split('\n')[0].trim() == 'light')); export const hasPlasmaIntegration = !!Utils.exec('bash -c "command -v plasma-browser-integration-host"'); diff --git a/.config/ags/modules/indicators/colorscheme.js b/.config/ags/modules/indicators/colorscheme.js index d679aff78..65906bd66 100644 --- a/.config/ags/modules/indicators/colorscheme.js +++ b/.config/ags/modules/indicators/colorscheme.js @@ -96,7 +96,7 @@ const schemeOptionsArr = [ //] ]; -const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; +const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/colormode.txt`; const initColorMode = Utils.exec(`bash -c "sed -n \'1p\' ${LIGHTDARK_FILE_LOCATION}"`); const initColorVal = (initColorMode == "dark") ? 1 : 0; const initTransparency = Utils.exec(`bash -c "sed -n \'2p\' ${LIGHTDARK_FILE_LOCATION}"`); @@ -126,7 +126,7 @@ const ColorSchemeSettings = () => Widget.Box({ initValue: initColorVal, onChange: (self, newValue) => { let lightdark = newValue == 0 ? "light" : "dark"; - execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "1s/.*/${lightdark}/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) + execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "1s/.*/${lightdark}/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`]) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .catch(print); }, @@ -138,7 +138,7 @@ const ColorSchemeSettings = () => Widget.Box({ initValue: initTransparencyVal, onChange: (self, newValue) => { let transparency = newValue == 0 ? "opaque" : "transparent"; - execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "2s/.*/${transparency}/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) + execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "2s/.*/${transparency}/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`]) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .catch(print); }, @@ -162,7 +162,7 @@ const ColorSchemeSettings = () => Widget.Box({ optionsArr: schemeOptionsArr, initIndex: initSchemeIndex, onChange: (value, name) => { - execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "3s/.*/${value}/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) + execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "3s/.*/${value}/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`]) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .catch(print); }, diff --git a/.config/ags/modules/indicators/musiccontrols.js b/.config/ags/modules/indicators/musiccontrols.js index 88951fb07..a547c9c28 100644 --- a/.config/ags/modules/indicators/musiccontrols.js +++ b/.config/ags/modules/indicators/musiccontrols.js @@ -12,7 +12,7 @@ import { showMusicControls } from '../../variables.js'; import { darkMode, hasPlasmaIntegration } from '../.miscutils/system.js'; const COMPILED_STYLE_DIR = `${GLib.get_user_cache_dir()}/ags/user/generated` -const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_cache_dir()}/ags/user/colormode.txt`; +const LIGHTDARK_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/colormode.txt`; const colorMode = Utils.exec(`bash -c "sed -n \'1p\' '${LIGHTDARK_FILE_LOCATION}'"`); const lightDark = (colorMode == "light") ? '-l' : ''; const COVER_COLORSCHEME_SUFFIX = '_colorscheme.css'; diff --git a/.config/ags/modules/overview/miscfunctions.js b/.config/ags/modules/overview/miscfunctions.js index 0e7505f78..199b25c39 100644 --- a/.config/ags/modules/overview/miscfunctions.js +++ b/.config/ags/modules/overview/miscfunctions.js @@ -33,28 +33,28 @@ export function launchCustomCommand(command) { } else if (args[0] == '>light') { // Light mode darkMode.value = false; - execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "1s/.*/light/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) + execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "1s/.*/light/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`]) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .catch(print); } else if (args[0] == '>dark') { // Dark mode darkMode.value = true; - execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "1s/.*/dark/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) + execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "1s/.*/dark/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`]) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .catch(print); } else if (args[0] == '>badapple') { // Black and white - execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "3s/.*/monochrome/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) + execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "3s/.*/monochrome/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`]) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .catch(print); } else if (args[0] == '>material') { // Use material colors - 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_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)) .catch(print); } else if (args[0] == '>pywal') { // Use Pywal (ik it looks shit but I'm not removing) - 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_state_dir()}/ags/user && echo "pywal" > ${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)) .catch(print); } diff --git a/.config/ags/modules/sideright/centermodules/configure.js b/.config/ags/modules/sideright/centermodules/configure.js index c5ba17958..ef3923bff 100644 --- a/.config/ags/modules/sideright/centermodules/configure.js +++ b/.config/ags/modules/sideright/centermodules/configure.js @@ -65,11 +65,11 @@ export default (props) => { icon: 'border_clear', name: 'Transparency', desc: 'Make shell elements transparent\nBlur is also recommended if you enable this', - initValue: exec('bash -c "sed -n \'2p\' $HOME/.cache/ags/user/colormode.txt"') == "transparent", + initValue: exec(`bash -c "sed -n \'2p\' ${GLib.get_user_state_dir()}/ags/user/colormode.txt"`) == "transparent", onChange: (self, newValue) => { const transparency = newValue == 0 ? "opaque" : "transparent"; console.log(transparency); - execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_cache_dir()}/ags/user && sed -i "2s/.*/${transparency}/" ${GLib.get_user_cache_dir()}/ags/user/colormode.txt`]) + execAsync([`bash`, `-c`, `mkdir -p ${GLib.get_user_state_dir()}/ags/user && sed -i "2s/.*/${transparency}/" ${GLib.get_user_state_dir()}/ags/user/colormode.txt`]) .then(execAsync(['bash', '-c', `${App.configDir}/scripts/color_generation/switchcolor.sh`])) .catch(print); }, diff --git a/.config/ags/scripts/color_generation/applycolor.sh b/.config/ags/scripts/color_generation/applycolor.sh index 98be96a92..8f67b9367 100755 --- a/.config/ags/scripts/color_generation/applycolor.sh +++ b/.config/ags/scripts/color_generation/applycolor.sh @@ -39,10 +39,10 @@ transparentize() { get_light_dark() { lightdark="" - if [ ! -f "$CACHE_DIR"/user/colormode.txt ]; then - echo "" > "$CACHE_DIR"/user/colormode.txt + if [ ! -f "$STATE_DIR/user/colormode.txt" ]; then + echo "" > "$STATE_DIR/user/colormode.txt" else - lightdark=$(sed -n '1p' "$CACHE_DIR/user/colormode.txt") + lightdark=$(sed -n '1p' "$STATE_DIR/user/colormode.txt") fi echo "$lightdark" } diff --git a/.config/ags/scripts/color_generation/colorgen.sh b/.config/ags/scripts/color_generation/colorgen.sh index 8a1638c53..99ac2f6e1 100755 --- a/.config/ags/scripts/color_generation/colorgen.sh +++ b/.config/ags/scripts/color_generation/colorgen.sh @@ -13,8 +13,8 @@ if [ $# -eq 0 ]; then exit 1 fi -# check if the file $CACHE_DIR/user/colormode.txt exists. if not, create it. else, read it to $lightdark -colormodefile="$CACHE_DIR/user/colormode.txt" +# check if the file $STATE_DIR/user/colormode.txt exists. if not, create it. else, read it to $lightdark +colormodefile="$STATE_DIR/user/colormode.txt" lightdark="dark" transparency="opaque" materialscheme="vibrant" @@ -37,10 +37,10 @@ else fi fi backend="material" # color generator backend -if [ ! -f "$CACHE_DIR/user/colorbackend.txt" ]; then - echo "material" > "$CACHE_DIR/user/colorbackend.txt" +if [ ! -f "$STATE_DIR/user/colorbackend.txt" ]; then + echo "material" > "$STATE_DIR/user/colorbackend.txt" else - backend=$(cat "$CACHE_DIR/user/colorbackend.txt") # either "" or "-l" + backend=$(cat "$STATE_DIR/user/colorbackend.txt") # either "" or "-l" fi cd "$CONFIG_DIR/scripts/" || exit @@ -61,7 +61,7 @@ elif [ "$backend" = "material" ]; then color_generation/generate_colors_material.py --path "$1" \ --mode "$lightdark" --scheme "$materialscheme" --transparency "$transparency" \ --termscheme $terminalscheme --blend_bg_fg \ - --cache "$CACHE_DIR/user/color.txt" $smartflag \ + --cache "$STATE_DIR/user/color.txt" $smartflag \ > "$CACHE_DIR"/user/generated/material_colors.scss if [ "$2" = "--apply" ]; then cp "$CACHE_DIR"/user/generated/material_colors.scss "$STATE_DIR/scss/_material.scss" diff --git a/.config/ags/scripts/color_generation/switchcolor.sh b/.config/ags/scripts/color_generation/switchcolor.sh index 11d69a309..0c083ba46 100755 --- a/.config/ags/scripts/color_generation/switchcolor.sh +++ b/.config/ags/scripts/color_generation/switchcolor.sh @@ -2,13 +2,15 @@ XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}" +XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}" CONFIG_DIR="$XDG_CONFIG_HOME/ags" CACHE_DIR="$XDG_CACHE_HOME/ags" +STATE_DIR="$XDG_STATE_HOME/ags" if [ "$1" == "--pick" ]; then color=$(hyprpicker --no-fancy) else - color=$(cut -f1 "${CACHE_DIR}/user/color.txt") + color=$(cut -f1 "$STATE_DIR/user/color.txt") fi # Generate colors for ags n stuff diff --git a/.config/ags/services/todo.js b/.config/ags/services/todo.js index 9ceff5ddb..d5384f3be 100644 --- a/.config/ags/services/todo.js +++ b/.config/ags/services/todo.js @@ -58,7 +58,7 @@ class TodoService extends Service { constructor() { super(); - this._todoPath = `${GLib.get_user_cache_dir()}/ags/user/todo.json`; + this._todoPath = `${GLib.get_user_state_dir()}/ags/user/todo.json`; try { const fileContents = Utils.readFile(this._todoPath); this._todoJson = JSON.parse(fileContents); diff --git a/.config/ags/services/wallpaper.js b/.config/ags/services/wallpaper.js index e1bcac5c3..9fa2b83ff 100644 --- a/.config/ags/services/wallpaper.js +++ b/.config/ags/services/wallpaper.js @@ -2,7 +2,7 @@ const { Gdk, GLib } = imports.gi; import Service from 'resource:///com/github/Aylur/ags/service.js'; import * as Utils from 'resource:///com/github/Aylur/ags/utils.js'; -const WALLPAPER_CONFIG_PATH = `${GLib.get_user_cache_dir()}/ags/user/wallpaper.json`; +const WALLPAPER_CONFIG_PATH = `${GLib.get_user_state_dir()}/ags/user/wallpaper.json`; class WallpaperService extends Service { static { From 8d9d12773176fd56ef01b2ef6dc3612bfcdbe70e Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Sun, 19 May 2024 22:22:02 +0700 Subject: [PATCH 6/6] ai: store data in state dir instead of cache --- .config/ags/services/gemini.js | 8 ++++---- .config/ags/services/gpt.js | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.config/ags/services/gemini.js b/.config/ags/services/gemini.js index a4d048742..f20586a31 100644 --- a/.config/ags/services/gemini.js +++ b/.config/ags/services/gemini.js @@ -6,7 +6,7 @@ import GLib from 'gi://GLib'; import Soup from 'gi://Soup?version=3.0'; import { fileExists } from '../modules/.miscutils/files.js'; -const HISTORY_DIR = `${GLib.get_user_cache_dir()}/ags/user/ai/chats/`; +const HISTORY_DIR = `${GLib.get_user_state_dir()}/ags/user/ai/chats/`; const HISTORY_FILENAME = `gemini.txt`; const HISTORY_PATH = HISTORY_DIR + HISTORY_FILENAME; const initMessages = @@ -34,9 +34,9 @@ if (!fileExists(`${GLib.get_user_config_dir()}/gemini_history.json`)) { Utils.writeFile('[ ]', `${GLib.get_user_config_dir()}/gemini_history.json`).catch(print); } -Utils.exec(`mkdir -p ${GLib.get_user_cache_dir()}/ags/user/ai`); -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`; +Utils.exec(`mkdir -p ${GLib.get_user_state_dir()}/ags/user/ai`); +const KEY_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/ai/google_key.txt`; +const APIDOM_FILE_LOCATION = `${GLib.get_user_state_dir()}/ags/user/ai/google_api_dom.txt`; function replaceapidom(URL) { if (fileExists(APIDOM_FILE_LOCATION)) { var contents = Utils.readFile(APIDOM_FILE_LOCATION).trim(); diff --git a/.config/ags/services/gpt.js b/.config/ags/services/gpt.js index 6b50c384f..30695e970 100644 --- a/.config/ags/services/gpt.js +++ b/.config/ags/services/gpt.js @@ -60,7 +60,7 @@ const initMessages = { role: "assistant", content: "## Skeuomorphism\n- A design philosophy- From early days of interface designing- Tries to imitate real-life objects- It's in fact still used by Apple in their icons until today.", }, ]; -Utils.exec(`mkdir -p ${GLib.get_user_cache_dir()}/ags/user/ai`); +Utils.exec(`mkdir -p ${GLib.get_user_state_dir()}/ags/user/ai`); class GPTMessage extends Service { static { @@ -139,13 +139,13 @@ class GPTService extends Service { _temperature = userOptions.ai.defaultTemperature; _messages = []; _key = ''; - _key_file_location = `${GLib.get_user_cache_dir()}/ags/user/ai/${PROVIDERS[this._currentProvider]['key_file']}`; + _key_file_location = `${GLib.get_user_state_dir()}/ags/user/ai/${PROVIDERS[this._currentProvider]['key_file']}`; _url = GLib.Uri.parse(PROVIDERS[this._currentProvider]['base_url'], GLib.UriFlags.NONE); _decoder = new TextDecoder(); _initChecks() { - this._key_file_location = `${GLib.get_user_cache_dir()}/ags/user/ai/${PROVIDERS[this._currentProvider]['key_file']}`; + this._key_file_location = `${GLib.get_user_state_dir()}/ags/user/ai/${PROVIDERS[this._currentProvider]['key_file']}`; if (fileExists(this._key_file_location)) this._key = Utils.readFile(this._key_file_location).trim(); else this.emit('hasKey', false); this._url = GLib.Uri.parse(PROVIDERS[this._currentProvider]['base_url'], GLib.UriFlags.NONE);