75 lines
1.8 KiB
Bash
75 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
. ~/.cache/wal/colors.sh # import colors from pywal
|
|
|
|
THEME_NAME="Pywal"
|
|
|
|
|
|
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"
|
|
ffmpeg -i "$wallpaper" -vf "scale='if(gt(a,1920/1080),-1,1920)':'if(gt(a,1920/1080),1080,-1)',gblur=sigma=20" "$THEME_DIR/$background_image"
|
|
|
|
}
|
|
|
|
|
|
background=$(hexToRgb $background)
|
|
foreground=$(hexToRgb $foreground)
|
|
accent=$(hexToRgb $color11)
|
|
secondary=$(hexToRgb $color8)
|
|
|
|
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": [$accent],
|
|
"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"
|