From f01f4aa5bff1bc79f966701199549621d422fcba Mon Sep 17 00:00:00 2001 From: Finn Freitag Date: Sat, 23 Nov 2024 00:13:53 +0100 Subject: [PATCH 1/6] Initial commit for Material you theme generation --- generate-material-you-theme.sh | 71 ++++++++++++++++++++ generate-theme.sh => generate-pywal-theme.sh | 0 2 files changed, 71 insertions(+) create mode 100755 generate-material-you-theme.sh rename generate-theme.sh => generate-pywal-theme.sh (100%) diff --git a/generate-material-you-theme.sh b/generate-material-you-theme.sh new file mode 100755 index 0000000..69287af --- /dev/null +++ b/generate-material-you-theme.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +scheme=$(jq ".schemes.dark" "/tmp/kde-material-you-colors-$(whoami).json") # import colors from kde-material-you + +THEME_NAME="MaterialYou" + + +DIR=$(dirname "${BASH_SOURCE[0]}") +THEME_DIR="$DIR/$THEME_NAME" + +# Converts hex colors into rgb joined with comma +# #fff -> 255, 255, 255 +hexToRgb() { + # Remove '#' character from hex color #fff -> fff + plain=${1#*#} + printf "%d, %d, %d" 0x${plain:0:2} 0x${plain:2:2} 0x${plain:4:2} +} + +prepare() { + if [ -d $THEME_DIR ]; then + rm -rf $THEME_DIR + fi + + mkdir $THEME_DIR + mkdir "$THEME_DIR/images" + + # Copy wallpaper so it can be used in theme + background_image="images/theme_ntp_background_norepeat.png" + cp "$wallpaper" "$THEME_DIR/$background_image" + +} + + +primary=$(hexToRgb $(echo $scheme | jq ".primary" -r)) +background=$(hexToRgb $(echo $scheme | jq ".background" -r)) + +generate() { + # Theme template + cat > "$THEME_DIR/manifest.json" << EOF + { + "manifest_version": 3, + "version": "1.0", + "name": "$THEME_NAME Theme", + "theme": { + "images": { + "theme_ntp_background" : "$background_image" + }, + "colors": { + #"frame": [$background], + "frame_inactive": [$background], + "toolbar": [$primary], + #"ntp_text": [$foreground], + #"ntp_link": [$accent], + #"ntp_section": [$secondary], + #"button_background": [$foreground], + #"toolbar_button_icon": [$foreground], + #"toolbar_text": [$foreground], + #"omnibox_background": [$background], + #"omnibox_text": [$foreground] + }, + "properties": { + "ntp_background_alignment": "bottom" + } + } + } +EOF +} + +#prepare +#generate +#echo "Pywal Chrome theme generated at $THEME_DIR" diff --git a/generate-theme.sh b/generate-pywal-theme.sh similarity index 100% rename from generate-theme.sh rename to generate-pywal-theme.sh From cbff2eaffa14665a5e151634ec16d714036534a2 Mon Sep 17 00:00:00 2001 From: Finn Freitag Date: Sat, 23 Nov 2024 19:23:56 +0100 Subject: [PATCH 2/6] Choose some colors --- generate-material-you-theme.sh | 40 ++++++++++++++++++++++------------ generate-pywal-theme.sh | 4 +++- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/generate-material-you-theme.sh b/generate-material-you-theme.sh index 69287af..4983792 100755 --- a/generate-material-you-theme.sh +++ b/generate-material-you-theme.sh @@ -1,6 +1,7 @@ #!/bin/bash scheme=$(jq ".schemes.dark" "/tmp/kde-material-you-colors-$(whoami).json") # import colors from kde-material-you +wallpaper=$(jq ".pywal.dark.wallpaper" "/tmp/kde-material-you-colors-$(whoami).json" -r) THEME_NAME="MaterialYou" @@ -32,10 +33,21 @@ prepare() { primary=$(hexToRgb $(echo $scheme | jq ".primary" -r)) +on_primary=$(hexToRgb $(echo $scheme | jq ".onPrimary" -r)) +primary_container=$(hexToRgb $(echo $scheme | jq ".primaryContainer" -r)) +on_primary_container=$(hexToRgb $(echo $scheme | jq ".onPrimaryContainer" -r)) +secondary=$(hexToRgb $(echo $scheme | jq ".secondary" -r)) +on_secondary=$(hexToRgb $(echo $scheme | jq ".onSecondary" -r)) +secondary_container=$(hexToRgb $(echo $scheme | jq ".secondaryContainer" -r)) +on_secondary_container=$(hexToRgb $(echo $scheme | jq ".onSecondaryContainer" -r)) +tertiary=$(hexToRgb $(echo $scheme | jq ".tertiary" -r)) +surface_container=$(hexToRgb $(echo $scheme | jq ".surfaceContainer" -r)) background=$(hexToRgb $(echo $scheme | jq ".background" -r)) +echo $background + generate() { - # Theme template + # Theme template cat > "$THEME_DIR/manifest.json" << EOF { "manifest_version": 3, @@ -46,17 +58,17 @@ generate() { "theme_ntp_background" : "$background_image" }, "colors": { - #"frame": [$background], + "frame": [$surface_container], "frame_inactive": [$background], - "toolbar": [$primary], - #"ntp_text": [$foreground], - #"ntp_link": [$accent], - #"ntp_section": [$secondary], - #"button_background": [$foreground], - #"toolbar_button_icon": [$foreground], - #"toolbar_text": [$foreground], - #"omnibox_background": [$background], - #"omnibox_text": [$foreground] + "toolbar": [$secondary_container], + "ntp_text": [$on_secondary_container], + "ntp_link": [$tertiary], + "ntp_section": [$secondary_container], + "button_background": [$on_primary], + "toolbar_button_icon": [$on_secondary_container], + "toolbar_text": [$on_secondary_container], + "omnibox_background": [$primary], + "omnibox_text": [$on_primary] }, "properties": { "ntp_background_alignment": "bottom" @@ -66,6 +78,6 @@ generate() { EOF } -#prepare -#generate -#echo "Pywal Chrome theme generated at $THEME_DIR" +prepare +generate +echo "Pywal Chrome theme generated at $THEME_DIR" diff --git a/generate-pywal-theme.sh b/generate-pywal-theme.sh index d1efd2d..665a05d 100755 --- a/generate-pywal-theme.sh +++ b/generate-pywal-theme.sh @@ -36,6 +36,8 @@ foreground=$(hexToRgb $foreground) accent=$(hexToRgb $color11) secondary=$(hexToRgb $color8) +echo $background + generate() { # Theme template cat > "$THEME_DIR/manifest.json" << EOF @@ -70,4 +72,4 @@ EOF prepare generate -echo "Pywal Chrome theme generated at $THEME_DIR" + echo "Pywal Chrome theme generated at $THEME_DIR" From eeb5e27eae1eeb6da0f090f7ca2a9377bea85493 Mon Sep 17 00:00:00 2001 From: Finn Freitag Date: Sun, 24 Nov 2024 13:43:34 +0100 Subject: [PATCH 3/6] Remove redundant color imports --- generate-material-you-theme.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/generate-material-you-theme.sh b/generate-material-you-theme.sh index 4983792..2a5d645 100755 --- a/generate-material-you-theme.sh +++ b/generate-material-you-theme.sh @@ -34,13 +34,8 @@ prepare() { primary=$(hexToRgb $(echo $scheme | jq ".primary" -r)) on_primary=$(hexToRgb $(echo $scheme | jq ".onPrimary" -r)) -primary_container=$(hexToRgb $(echo $scheme | jq ".primaryContainer" -r)) -on_primary_container=$(hexToRgb $(echo $scheme | jq ".onPrimaryContainer" -r)) -secondary=$(hexToRgb $(echo $scheme | jq ".secondary" -r)) -on_secondary=$(hexToRgb $(echo $scheme | jq ".onSecondary" -r)) secondary_container=$(hexToRgb $(echo $scheme | jq ".secondaryContainer" -r)) on_secondary_container=$(hexToRgb $(echo $scheme | jq ".onSecondaryContainer" -r)) -tertiary=$(hexToRgb $(echo $scheme | jq ".tertiary" -r)) surface_container=$(hexToRgb $(echo $scheme | jq ".surfaceContainer" -r)) background=$(hexToRgb $(echo $scheme | jq ".background" -r)) From 930e439b10add230303536f209f5ff4cacdd1549 Mon Sep 17 00:00:00 2001 From: Finn Freitag Date: Sun, 24 Nov 2024 13:55:09 +0100 Subject: [PATCH 4/6] Update README.md --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d0c65a1..03f0402 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,20 @@ # Chromium pywal theme generator -Generates [pywal](https://github.com/dylanaraps/pywal) theme for Chromium +Generates [pywal](https://github.com/dylanaraps/pywal) and [kde-material-you-colors](https://github.com/luisbocanegra/kde-material-you-colors) themes for Chromium and Chromium-based browsers. ![Screenshot](./Screenshots/screenshot.png) ## Usage - -1. Run script `./generate-theme.sh` -2. Open chromium +Note: If you're using kde-material-you-colors, `generate-pywal-theme.sh` will not deliver good results. +So make sure to use `generate-material-you-theme.sh` instead +1. Run script `./generate-pywal-theme.sh` for pywal or `./generate-material-you-theme.sh` for kde-material-you-colors. +2. Open Chromium 3. Go to `chrome://extensions` 4. Turn on "Developer Mode" in the top right corner 5. Press "Load unpacked" -6. Select "Pywal" (by default) in the same folder with the script -7. ??? -8. PROFIT! +6. Select "Pywal" or "MaterialYou" (by default) in the same folder with the script +7. PROFIT! + However, you need to run this script and restart chromium each time you change pywal colors (or reload extension manually, since there is no way to do it automatically). So, make an alias or something like that. From 1ba21f39f0d04c54e275101ad931315402a4c26e Mon Sep 17 00:00:00 2001 From: Finn Freitag Date: Sun, 24 Nov 2024 14:03:04 +0100 Subject: [PATCH 5/6] Add missing color import --- generate-material-you-theme.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/generate-material-you-theme.sh b/generate-material-you-theme.sh index 2a5d645..ac2884e 100755 --- a/generate-material-you-theme.sh +++ b/generate-material-you-theme.sh @@ -36,6 +36,7 @@ primary=$(hexToRgb $(echo $scheme | jq ".primary" -r)) on_primary=$(hexToRgb $(echo $scheme | jq ".onPrimary" -r)) secondary_container=$(hexToRgb $(echo $scheme | jq ".secondaryContainer" -r)) on_secondary_container=$(hexToRgb $(echo $scheme | jq ".onSecondaryContainer" -r)) +tertiary=$(hexToRgb $(echo $scheme | jq ".tertiary" -r)) surface_container=$(hexToRgb $(echo $scheme | jq ".surfaceContainer" -r)) background=$(hexToRgb $(echo $scheme | jq ".background" -r)) From 13124d083ec0d96a01539b2dc7dba1b4b3c6c351 Mon Sep 17 00:00:00 2001 From: Finn Freitag Date: Sun, 24 Nov 2024 14:15:36 +0100 Subject: [PATCH 6/6] Revert changes made to generate-pywal-theme.sh --- generate-pywal-theme.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/generate-pywal-theme.sh b/generate-pywal-theme.sh index 665a05d..d1efd2d 100755 --- a/generate-pywal-theme.sh +++ b/generate-pywal-theme.sh @@ -36,8 +36,6 @@ foreground=$(hexToRgb $foreground) accent=$(hexToRgb $color11) secondary=$(hexToRgb $color8) -echo $background - generate() { # Theme template cat > "$THEME_DIR/manifest.json" << EOF @@ -72,4 +70,4 @@ EOF prepare generate - echo "Pywal Chrome theme generated at $THEME_DIR" +echo "Pywal Chrome theme generated at $THEME_DIR"