diff options
Diffstat (limited to '.local/usr/wal-telegram/wal-telegram')
-rwxr-xr-x | .local/usr/wal-telegram/wal-telegram | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/.local/usr/wal-telegram/wal-telegram b/.local/usr/wal-telegram/wal-telegram new file mode 100755 index 0000000..0a1f24b --- /dev/null +++ b/.local/usr/wal-telegram/wal-telegram @@ -0,0 +1,257 @@ +#!/usr/bin/env bash +# +# A script to create Telegram palettes that use colors generated by pywal/wal. +# Requires pywal or wal, bash and cat. + +# shellcheck source=/dev/null +. "${HOME}/.cache/wal/colors.sh" + +# Prepare the conditions for the other functions. +prepare() { + pre="${HOME}/.cache/wal-telegram" + mkdir -p "$pre" + rm -f "${pre}/background".* + rm -f "${pre}/colors.tdesktop-palette" + wal_path="$(<"${HOME}/.cache/wal/wal")" + wal_ext="${wal_path##*.}" + cp "$wal_path" "${pre}/background.${wal_ext}" +} + +# Lighten/darken by 20%, 30%, 40%, 50%, 60% some colors using only pure bash. +create_colors() { + colors=(0 1 2 7) + for i in "${colors[@]}"; do + color="color${i}" + c_rgb_12d="$(( 0x"${!color:1:2}" ))" + c_rgb_34d="$(( 0x"${!color:3:2}" ))" + c_rgb_56d="$(( 0x"${!color:5:2}" ))" + c_rgb_12d_20l="$(( c_rgb_12d + "$((c_rgb_12d / 5))" ))" + c_rgb_34d_20l="$(( c_rgb_34d + "$((c_rgb_34d / 5))" ))" + c_rgb_56d_20l="$(( c_rgb_56d + "$((c_rgb_56d / 5))" ))" + [[ "${c_rgb_12d_20l}" -ge 255 ]] && c_rgb_12d_20l=255 + [[ "${c_rgb_34d_20l}" -ge 255 ]] && c_rgb_34d_20l=255 + [[ "${c_rgb_56d_20l}" -ge 255 ]] && c_rgb_56d_20l=255 + printf -v c_hex_12d_20l '%x' "$c_rgb_12d_20l" + printf -v c_hex_34d_20l '%x' "$c_rgb_34d_20l" + printf -v c_hex_56d_20l '%x' "$c_rgb_56d_20l" + [[ "${#c_hex_12d_20l}" -eq 1 ]] && c_hex_12d_20l="0${c_hex_12d_20l}" + [[ "${#c_hex_34d_20l}" -eq 1 ]] && c_hex_34d_20l="0${c_hex_34d_20l}" + [[ "${#c_hex_56d_20l}" -eq 1 ]] && c_hex_56d_20l="0${c_hex_56d_20l}" + c_hex_20l="#${c_hex_12d_20l}${c_hex_34d_20l}${c_hex_56d_20l}" + declare -g color"${i}"_lighter_20="$c_hex_20l" + c_rgb_12d_30l="$(( c_rgb_12d + "$((c_rgb_12d * 3 / 10))" ))" + c_rgb_34d_30l="$(( c_rgb_34d + "$((c_rgb_34d * 3 / 10))" ))" + c_rgb_56d_30l="$(( c_rgb_56d + "$((c_rgb_56d * 3 / 10))" ))" + [[ "${c_rgb_12d_30l}" -ge 255 ]] && c_rgb_12d_30l=255 + [[ "${c_rgb_34d_30l}" -ge 255 ]] && c_rgb_34d_30l=255 + [[ "${c_rgb_56d_30l}" -ge 255 ]] && c_rgb_56d_30l=255 + printf -v c_hex_12d_30l '%x' "$c_rgb_12d_30l" + printf -v c_hex_34d_30l '%x' "$c_rgb_34d_30l" + printf -v c_hex_56d_30l '%x' "$c_rgb_56d_30l" + [[ "${#c_hex_12d_30l}" -eq 1 ]] && c_hex_12d_30l="0${c_hex_12d_30l}" + [[ "${#c_hex_34d_30l}" -eq 1 ]] && c_hex_34d_30l="0${c_hex_34d_30l}" + [[ "${#c_hex_56d_30l}" -eq 1 ]] && c_hex_56d_30l="0${c_hex_56d_30l}" + c_hex_30l="#${c_hex_12d_30l}${c_hex_34d_30l}${c_hex_56d_30l}" + declare -g color"${i}"_lighter_30="$c_hex_30l" + c_rgb_12d_40l="$(( c_rgb_12d + "$((c_rgb_12d * 2 / 5))" ))" + c_rgb_34d_40l="$(( c_rgb_34d + "$((c_rgb_34d * 2 / 5))" ))" + c_rgb_56d_40l="$(( c_rgb_56d + "$((c_rgb_56d * 2 / 5))" ))" + [[ "${c_rgb_12d_40l}" -ge 255 ]] && c_rgb_12d_40l=255 + [[ "${c_rgb_34d_40l}" -ge 255 ]] && c_rgb_34d_40l=255 + [[ "${c_rgb_56d_40l}" -ge 255 ]] && c_rgb_56d_40l=255 + printf -v c_hex_12d_40l '%x' "$c_rgb_12d_40l" + printf -v c_hex_34d_40l '%x' "$c_rgb_34d_40l" + printf -v c_hex_56d_40l '%x' "$c_rgb_56d_40l" + [[ "${#c_hex_12d_40l}" -eq 1 ]] && c_hex_12d_40l="0${c_hex_12d_40l}" + [[ "${#c_hex_34d_40l}" -eq 1 ]] && c_hex_34d_40l="0${c_hex_34d_40l}" + [[ "${#c_hex_56d_40l}" -eq 1 ]] && c_hex_56d_40l="0${c_hex_56d_40l}" + c_hex_40l="#${c_hex_12d_40l}${c_hex_34d_40l}${c_hex_56d_40l}" + declare -g color"${i}"_lighter_40="$c_hex_40l" + c_rgb_12d_50l="$(( c_rgb_12d + "$((c_rgb_12d / 2))" ))" + c_rgb_34d_50l="$(( c_rgb_34d + "$((c_rgb_34d / 2))" ))" + c_rgb_56d_50l="$(( c_rgb_56d + "$((c_rgb_56d / 2))" ))" + [[ "${c_rgb_12d_50l}" -ge 255 ]] && c_rgb_12d_50l=255 + [[ "${c_rgb_34d_50l}" -ge 255 ]] && c_rgb_34d_50l=255 + [[ "${c_rgb_56d_50l}" -ge 255 ]] && c_rgb_56d_50l=255 + printf -v c_hex_12d_50l '%x' "$c_rgb_12d_50l" + printf -v c_hex_34d_50l '%x' "$c_rgb_34d_50l" + printf -v c_hex_56d_50l '%x' "$c_rgb_56d_50l" + [[ "${#c_hex_12d_50l}" -eq 1 ]] && c_hex_12d_50l="0${c_hex_12d_50l}" + [[ "${#c_hex_34d_50l}" -eq 1 ]] && c_hex_34d_50l="0${c_hex_34d_50l}" + [[ "${#c_hex_56d_50l}" -eq 1 ]] && c_hex_56d_50l="0${c_hex_56d_50l}" + c_hex_50l="#${c_hex_12d_50l}${c_hex_34d_50l}${c_hex_56d_50l}" + declare -g color"${i}"_lighter_50="$c_hex_50l" + c_rgb_12d_60l="$(( c_rgb_12d + "$((c_rgb_12d * 3 / 5))" ))" + c_rgb_34d_60l="$(( c_rgb_34d + "$((c_rgb_34d * 3 / 5))" ))" + c_rgb_56d_60l="$(( c_rgb_56d + "$((c_rgb_56d * 3 / 5))" ))" + [[ "${c_rgb_12d_60l}" -ge 255 ]] && c_rgb_12d_60l=255 + [[ "${c_rgb_34d_60l}" -ge 255 ]] && c_rgb_34d_60l=255 + [[ "${c_rgb_56d_60l}" -ge 255 ]] && c_rgb_56d_60l=255 + printf -v c_hex_12d_60l '%x' "$c_rgb_12d_60l" + printf -v c_hex_34d_60l '%x' "$c_rgb_34d_60l" + printf -v c_hex_56d_60l '%x' "$c_rgb_56d_60l" + [[ "${#c_hex_12d_60l}" -eq 1 ]] && c_hex_12d_60l="0${c_hex_12d_60l}" + [[ "${#c_hex_34d_60l}" -eq 1 ]] && c_hex_34d_60l="0${c_hex_34d_60l}" + [[ "${#c_hex_56d_60l}" -eq 1 ]] && c_hex_56d_60l="0${c_hex_56d_60l}" + c_hex_60l="#${c_hex_12d_60l}${c_hex_34d_60l}${c_hex_56d_60l}" + declare -g color"${i}"_lighter_60="$c_hex_60l" + c_rgb_12d_20d="$(( c_rgb_12d - "$((c_rgb_12d / 5))" ))" + c_rgb_34d_20d="$(( c_rgb_34d - "$((c_rgb_34d / 5))" ))" + c_rgb_56d_20d="$(( c_rgb_56d - "$((c_rgb_56d / 5))" ))" + printf -v c_hex_12d_20d '%x' "$c_rgb_12d_20d" + printf -v c_hex_34d_20d '%x' "$c_rgb_34d_20d" + printf -v c_hex_56d_20d '%x' "$c_rgb_56d_20d" + [[ "${#c_hex_12d_20d}" -eq 1 ]] && c_hex_12d_20d="0${c_hex_12d_20d}" + [[ "${#c_hex_34d_20d}" -eq 1 ]] && c_hex_34d_20d="0${c_hex_34d_20d}" + [[ "${#c_hex_56d_20d}" -eq 1 ]] && c_hex_56d_20d="0${c_hex_56d_20d}" + c_hex_20d="#${c_hex_12d_20d}${c_hex_34d_20d}${c_hex_56d_20d}" + declare -g color"${i}"_darker_20="$c_hex_20d" + c_rgb_12d_30d="$(( c_rgb_12d - "$((c_rgb_12d * 3 / 10))" ))" + c_rgb_34d_30d="$(( c_rgb_34d - "$((c_rgb_34d * 3 / 10))" ))" + c_rgb_56d_30d="$(( c_rgb_56d - "$((c_rgb_56d * 3 / 10))" ))" + printf -v c_hex_12d_30d '%x' "$c_rgb_12d_30d" + printf -v c_hex_34d_30d '%x' "$c_rgb_34d_30d" + printf -v c_hex_56d_30d '%x' "$c_rgb_56d_30d" + [[ "${#c_hex_12d_30d}" -eq 1 ]] && c_hex_12d_30d="0${c_hex_12d_30d}" + [[ "${#c_hex_34d_30d}" -eq 1 ]] && c_hex_34d_30d="0${c_hex_34d_30d}" + [[ "${#c_hex_56d_30d}" -eq 1 ]] && c_hex_56d_30d="0${c_hex_56d_30d}" + c_hex_30d="#${c_hex_12d_30d}${c_hex_34d_30d}${c_hex_56d_30d}" + declare -g color"${i}"_darker_30="$c_hex_30d" + c_rgb_12d_40d="$(( c_rgb_12d - "$((c_rgb_12d * 2 / 5))" ))" + c_rgb_34d_40d="$(( c_rgb_34d - "$((c_rgb_34d * 2 / 5))" ))" + c_rgb_56d_40d="$(( c_rgb_56d - "$((c_rgb_56d * 2 / 5))" ))" + printf -v c_hex_12d_40d '%x' "$c_rgb_12d_40d" + printf -v c_hex_34d_40d '%x' "$c_rgb_34d_40d" + printf -v c_hex_56d_40d '%x' "$c_rgb_56d_40d" + [[ "${#c_hex_12d_40d}" -eq 1 ]] && c_hex_12d_40d="0${c_hex_12d_40d}" + [[ "${#c_hex_34d_40d}" -eq 1 ]] && c_hex_34d_40d="0${c_hex_34d_40d}" + [[ "${#c_hex_56d_40d}" -eq 1 ]] && c_hex_56d_40d="0${c_hex_56d_40d}" + c_hex_40d="#${c_hex_12d_40d}${c_hex_34d_40d}${c_hex_56d_40d}" + declare -g color"${i}"_darker_40="$c_hex_40d" + c_rgb_12d_50d="$(( c_rgb_12d - "$((c_rgb_12d / 2))" ))" + c_rgb_34d_50d="$(( c_rgb_34d - "$((c_rgb_34d / 2))" ))" + c_rgb_56d_50d="$(( c_rgb_56d - "$((c_rgb_56d / 2))" ))" + printf -v c_hex_12d_50d '%x' "$c_rgb_12d_50d" + printf -v c_hex_34d_50d '%x' "$c_rgb_34d_50d" + printf -v c_hex_56d_50d '%x' "$c_rgb_56d_50d" + [[ "${#c_hex_12d_50d}" -eq 1 ]] && c_hex_12d_50d="0${c_hex_12d_50d}" + [[ "${#c_hex_34d_50d}" -eq 1 ]] && c_hex_34d_50d="0${c_hex_34d_50d}" + [[ "${#c_hex_56d_50d}" -eq 1 ]] && c_hex_56d_50d="0${c_hex_56d_50d}" + c_hex_50d="#${c_hex_12d_50d}${c_hex_34d_50d}${c_hex_56d_50d}" + declare -g color"${i}"_darker_50="$c_hex_50d" + c_rgb_12d_60d="$(( c_rgb_12d - "$((c_rgb_12d * 3 / 5))" ))" + c_rgb_34d_60d="$(( c_rgb_34d - "$((c_rgb_34d * 3 / 5))" ))" + c_rgb_56d_60d="$(( c_rgb_56d - "$((c_rgb_56d * 3 / 5))" ))" + printf -v c_hex_12d_60d '%x' "$c_rgb_12d_60d" + printf -v c_hex_34d_60d '%x' "$c_rgb_34d_60d" + printf -v c_hex_56d_60d '%x' "$c_rgb_56d_60d" + [[ "${#c_hex_12d_60d}" -eq 1 ]] && c_hex_12d_60d="0${c_hex_12d_60d}" + [[ "${#c_hex_34d_60d}" -eq 1 ]] && c_hex_34d_60d="0${c_hex_34d_60d}" + [[ "${#c_hex_56d_60d}" -eq 1 ]] && c_hex_56d_60d="0${c_hex_56d_60d}" + c_hex_60d="#${c_hex_12d_60d}${c_hex_34d_60d}${c_hex_56d_60d}" + declare -g color"${i}"_darker_60="$c_hex_60d" + done +} + +# Create colors.tdesktop-palette using the colors generated by create_colors() +# and the colors.wal-constants file. +create_palette() { + cat <<EOF > "${pre}/colors.tdesktop-palette" +// Colors imported from wal by init.sh. +color0: $color0; +color1: $color1; +color2: $color2; +color3: $color3; +color4: $color4; +color5: $color5; +color6: $color6; +color7: $color7; +color8: $color8; + +// Lighter and darker variants of wal's colors. +colorLighter0_20: $color0_lighter_20; +colorLighter0_30: $color0_lighter_30; +colorLighter0_40: $color0_lighter_40; +colorLighter0_50: $color0_lighter_50; +colorLighter0_60: $color0_lighter_60; +colorDarker0_20: $color0_darker_20; +colorDarker0_30: $color0_darker_30; +colorDarker0_40: $color0_darker_40; +colorDarker0_50: $color0_darker_50; +colorDarker0_60: $color0_darker_60; +colorLighter1_20: $color1_lighter_20; +colorLighter1_30: $color1_lighter_30; +colorLighter1_40: $color1_lighter_40; +colorLighter1_50: $color1_lighter_50; +colorLighter1_60: $color1_lighter_60; +colorDarker1_20: $color1_darker_20; +colorDarker1_30: $color1_darker_30; +colorDarker1_40: $color1_darker_40; +colorDarker1_50: $color1_darker_50; +colorDarker1_60: $color1_darker_60; +colorLighter2_20: $color2_lighter_20; +colorLighter2_30: $color2_lighter_30; +colorLighter2_40: $color2_lighter_40; +colorLighter2_50: $color2_lighter_50; +colorLighter2_60: $color2_lighter_60; +colorDarker2_20: $color2_darker_20; +colorDarker2_30: $color2_darker_30; +colorDarker2_40: $color2_darker_40; +colorDarker2_50: $color2_darker_50; +colorDarker2_60: $color2_darker_60; +colorLighter7_20: $color7_lighter_20; +colorLighter7_30: $color7_lighter_30; +colorLighter7_40: $color7_lighter_40; +colorLighter7_50: $color7_lighter_50; +colorLighter7_60: $color7_lighter_60; +colorDarker7_20: $color7_darker_20; +colorDarker7_30: $color7_darker_30; +colorDarker7_40: $color7_darker_40; +colorDarker7_50: $color7_darker_50; +colorDarker7_60: $color7_darker_60; + +// Alpha colors. +colorAlpha0_18: ${color0}18; +colorAlpha0_3c: ${color0}3c; +colorAlpha0_03: ${color0}03; +colorAlpha0_7f: ${color0}7f; +colorAlpha0_b0: ${color0}b0; +colorAlpha0_cc: ${color0}cc; +colorAlpha0_00: ${color0}00; +colorAlpha0_54: ${color0}54; +colorAlpha0_56: ${color0}56; +colorAlpha0_74: ${color0}74; +colorAlpha0_40: ${color0}40; +colorAlpha0_4c: ${color0}4c; +colorAlpha0_b2: ${color0}b2; +colorAlpha0_40: ${color0}40; +colorAlpha1_10: ${color1}10; +colorAlpha1_33: ${color1}33; +colorAlpha2_c8: ${color2}c8; +colorAlpha2_4c: ${color2}4c; +colorAlpha2_7f: ${color2}7f; +colorAlpha2_00: ${color2}00; +colorAlpha2_87: ${color2}87; +colorAlpha3_64: ${color3}64; +colorAlpha7_53: ${color7}53; +colorAlpha7_7a: ${color7}7a; +colorAlpha7_1a: ${color7}1a; +colorAlpha7_2c: ${color7}2c; +colorAlpha7_7f: ${color7}7f; +colorAlpha7_bc: ${color7}bc; +colorAlpha7_4c: ${color7}4c; +colorAlpha7_6b: ${color7}6b; +colorAlpha7_14: ${color7}14; +EOF + const="$(<".local/usr/wal-telegram/colors.wal-constants")" + printf '%s' "$const" >> "${pre}/colors.tdesktop-palette" +} + +main() { + prepare + create_colors + create_palette + printf '%s\n' "Theme created succesfully." +} + +main |