Fix color generation for pywal (#816)

This commit is contained in:
clsty
2025-02-08 10:58:02 +08:00
parent 20a59268f7
commit 68b1dff79f
2 changed files with 15 additions and 5 deletions
@@ -14,7 +14,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_state_dir()}/ags/user/colormode.txt`;
const colorMode = Utils.exec(`bash -c "sed -n \'1p\' '${LIGHTDARK_FILE_LOCATION}'"`);
const lightDark = (colorMode == "light") ? '-l' : '';
const lightDark = (colorMode == "light") ? 'light' : '';
const COVER_COLORSCHEME_SUFFIX = '_colorscheme.css';
var lastCoverPath = '';
@@ -208,6 +208,10 @@ const CoverArt = ({ player, ...rest }) => {
execAsync(['bash', '-c',
`${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(() => {
// TODO: Use python venv, like
// source $(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate
// wal -i ......
// deactivate
exec(`wal -i "${player.coverPath}" -n -t -s -e -q ${darkMode.value ? '' : '-l'}`)
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}"`);
@@ -41,7 +41,7 @@ backend="material" # color generator backend
if [ ! -f "$STATE_DIR/user/colorbackend.txt" ]; then
echo "material" > "$STATE_DIR/user/colorbackend.txt"
else
backend=$(cat "$STATE_DIR/user/colorbackend.txt") # either "" or "-l"
backend=$(cat "$STATE_DIR/user/colorbackend.txt")
fi
cd "$CONFIG_DIR/scripts/" || exit
@@ -70,18 +70,24 @@ elif [ "$backend" = "material" ]; then
fi
elif [ "$backend" = "pywal" ]; then
# clear and generate
source $(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate
wal -c
wal -i "$1" -n $lightdark -q
deactivate
# copy scss
cp "$XDG_CACHE_HOME/wal/colors.scss" "$CACHE_DIR"/user/generated/material_colors.scss
cat color_generation/pywal_to_material.scss >> "$CACHE_DIR"/user/generated/material_colors.scss
if [ "$2" = "--apply" ]; then
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/ { 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
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
sed -i "s/\:/: /g" "$CACHE_DIR"/user/generated/colors_classes.scss
sed -i "s/}/;\n/g" "$CACHE_DIR"/user/generated/colors_classes.scss
if [ "$lightdark" = "light" ]; then
printf "\n""\$darkmode: false;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss
else
printf "\n""\$darkmode: true;""\n" >> "$CACHE_DIR"/user/generated/colors_classes.scss