Files
mabox-tools/bin/mabox-logo
2026-01-26 17:03:18 +01:00

147 lines
6.7 KiB
Bash
Executable File

#!/bin/bash
# mabox-logo - colorize Mabox logo, flat and 3d (cube). For use in Conky and panel (maybe)
. ~/.config/mabox/mabox.conf
mkdir -p "$HOME/.icons"
in_color=${logo_in_color:-#32B557}
in_opacity=${logo_in_opacity:-1.0}
out_color=${logo_out_color:-#FFFFFF}
out_opacity=${logo_out_opacity:-1.0}
LOGO_SQUARE=~/.icons/mabox-logo-square.svg
LOGO_3D=~/.icons/mabox-logo-3d.svg
LOGO_CIRCLE=~/.icons/mabox-logo-circle.svg
CONKYLOGO="$HOME/.config/conky/Mabox_logo_SVG_mbcolor.conkyrc"
mklogos(){
case "$1" in
--in-color|ic) in_color=${2};;
--out-color|oc) out_color=${2};;
--in-opacity|io) in_opacity=${2};;
--out-opacity|oo) out_opacity=${2};;
all)
in_color=${2}
in_opacity=${3}
out_color=${4}
out_opacity=${5}
;;
default)
in_color=#32B557
in_opacity=1
out_color=#F8F8FF
out_opacity=1
;;
esac
# square
cat <<EOF > ${LOGO_SQUARE}
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256">
<path fill="${out_color}" fill-opacity="${out_opacity}" d="M0 0v256h256V0Zm16 16h224v224h-64V80h-16v160H96V80H80v160H16Z"/>
<path fill="${in_color}" fill-opacity="${in_opacity}" d="M80 240H16V16h224v224h-64V80h-16v160H96V80H80z"/>
</svg>
EOF
[[ ! -f "$HOME/.icons/mabox-logo-square-default.svg" ]] && cp "${LOGO_SQUARE}" "$HOME/.icons/mabox-logo-square-default.svg"
# 3D cube
cat <<EOF > ${LOGO_3D}
<svg xmlns="http://www.w3.org/2000/svg" width="1350" height="1350">
<path fill="${out_color}" fill-opacity="${out_opacity}" d="m675.469 35.245-581.09 189.03 573.45 260.3 592.67-257.6Zm-213.776 133.16 426.42 8.963 18.258 174.98-474.193-.484zm12.086 12.408-22.95 159.87 438.91.56-16.76-153.299zm21.08 11.274 358.641 4.838 13.082 132.39-105.23-.058-3.8-99.654-31.413-.43 2.537 99.586-105.367-.024 4.232-99.35-30.318.237-9.194 99.297-113.021.037zM65.098 253.454s43.103 463.121 65.154 694.621c175.89 115.17 351.351 231.05 526.951 346.68l-8.725-774.42c-3.242-2.767-582.7-267.85-583.38-266.88Zm1215.804 5.781c0-.03-588.8 263.04-588.8 263.04s-2.279 771.42.445 772.48l523.742-344.43ZM101.086 323.19l503.76 235.5s4.76 663.97 4.056 663.58l-134.884-88.175s-12.32-302.85-17.327-453.86l-39.154-17.644 13.867 443.039c-1.841-.542-123.63-79.893-123.63-79.893l-28.112-427.64-31.494-14.84 23.963 415.01c.133 2.314-112.08-69.5-112.15-70.137zm1141.713 3.334s-33.266 401.952-51.188 602.782c-39.452 21.937-116.5 70.802-116.5 70.802l24.7-426.73-33.282 17.209s-18.493 291.631-28.556 437.361l-125.27 76.008 14.895-440.77-38.659 20.077-17.689 451.68-140.31 87.831c-1.678-139.65 9.001-663.87 9.001-663.87l-.004-.009z"/>
<path fill="${in_color}" fill-opacity="${in_opacity}" d="M122.026 956.98C105.255 801.33 102.813 778.14 50 228.92L676.71 22.64 1300 225.42l-69.336 733.18-557.89 368.76zm526.96-437.21c-3.242-2.767-582.7-267.85-583.38-266.88 0 0 43.103 463.12 65.154 694.62 175.89 115.17 351.35 231.05 526.95 346.68zm-174.46 613.76s-12.32-302.85-17.326-453.86l-39.155-17.644 13.867 443.04c-1.842-.541-123.63-79.894-123.63-79.894l-28.113-427.64-31.494-14.84 23.964 415.01c.134 2.314-112.08-69.499-112.15-70.137l-58.895-604.94 503.76 235.5s4.758 663.97 4.055 663.58zm742.27-183.77 64.614-691.09c0-.03-588.8 263.04-588.8 263.04s-2.28 771.42.444 772.48zm-476.35-391.43 502.86-232.37s-33.266 401.95-51.188 602.78c-39.452 21.937-116.5 70.803-116.5 70.803l24.7-426.73-33.281 17.21s-18.494 291.63-28.557 437.36l-125.27 76.008 14.896-440.77-38.658 20.077-17.691 451.68-140.31 87.831c-1.677-139.65 9.002-663.87 9.002-663.87zm520.56-331.92L675.976 34.68 94.886 223.71l573.45 260.3zM432.686 351.3l29.515-183.46 426.42 8.963 18.257 174.98zm440.8-163.92-399.2-7.131-22.951 159.87 438.91.559zm-249.67 140.79 4.232-99.35-30.318.238-9.194 99.296-113.02.038 19.851-136.87 358.64 4.838 13.082 132.39-105.23-.057-3.798-99.655-31.414-.43 2.536 99.585z"/>
</svg>
EOF
[[ ! -f "$HOME/.icons/mabox-logo-3d-default.svg" ]] && cp "${LOGO_3D}" "$HOME/.icons/mabox-logo-3d-default.svg"
## circle
cat <<EOF > ${LOGO_CIRCLE}
<svg width="512" height="512" viewBox="0 0 135.467 135.467">
<path fill="${in_color}" fill-opacity="${in_opacity}" d="M67.733.927A66.806 66.806 0 0 0 .927 67.733a66.806 66.806 0 0 0 66.806 66.807 66.806 66.806 0 0 0 66.807-66.807A66.806 66.806 0 0 0 67.733.927Zm0 12.282a54.524 54.524 0 0 1 54.525 54.524 54.524 54.524 0 0 1-54.525 54.525A54.524 54.524 0 0 1 13.21 67.733 54.524 54.524 0 0 1 67.733 13.21ZM38.1 38.1v59.267h16.933V55.033h4.234v42.334H76.2V55.033h4.233v42.334h16.934V38.1Z"/>
<path fill="${out_color}" fill-opacity="${out_opacity}" d="M67.733 13.209A54.524 54.524 0 0 0 13.21 67.733a54.524 54.524 0 0 0 54.524 54.525 54.524 54.524 0 0 0 54.525-54.525A54.524 54.524 0 0 0 67.733 13.21ZM38.1 38.1h59.267v59.267H80.433V55.033H76.2v42.334H59.267V55.033h-4.234v42.334H38.1Z"/>
</svg>
EOF
[[ ! -f "$HOME/.icons/mabox-logo-circle-default.svg" ]] && cp "${LOGO_CIRCLE}" "$HOME/.icons/mabox-logo-circle-default.svg"
mb-setvar logo_in_color=$in_color
mb-setvar logo_out_color=$out_color
mb-setvar logo_in_opacity=$in_opacity
mb-setvar logo_out_opacity=$out_opacity
}
mkconky() {
cat << 'EOF' > ${CONKYLOGO}
conky.config = {
-- WINDOW
own_window = true,
own_window_type = 'desktop',
own_window_transparent = true,
own_window_hints = 'undecorated,below,skip_taskbar,skip_pager,sticky',
own_window_class = 'Conky-nobg',
own_window_title = 'Mabox Logo SVG',
alignment = 'middle_middle',
gap_x = 0,
gap_y = 0,
minimum_height = 48,
minimum_width = 48,
template0 = [[~/.icons/mabox-logo-square.svg]],
template1 = [[48x48]],
draw_borders = false,
border_inner_margin = 0,
border_outer_margin = 0,
border_width = 0,
background = true,
no_buffers = true,
imlib_cache_size = 0,
double_buffer = true,
update_interval = 0.6,
};
conky.text = [[
${image ${template0} -s ${template1}}
]];
EOF
}
mkmenu() {
case "$LANG" in
pl*)
cp /usr/share/mabox/lang/pl/.config/conky/menuscripts/Mabox_logo_SVG.csv ~/.config/conky/menuscripts/Mabox_logo_SVG.csv
;;
*)
cp /usr/share/mabox/lang/en/.config/conky/menuscripts/Mabox_logo_SVG.csv ~/.config/conky/menuscripts/Mabox_logo_SVG.csv
;;
esac
}
size () {
sd "minimum_height.*$" "minimum_height = ${1}," ${CONKYLOGO}
sd "minimum_width.*$" "minimum_width = ${1}," ${CONKYLOGO}
sd "template1 =.*$" "template1 = [[${1}x${1}]]," ${CONKYLOGO}
}
type () {
case "$1" in
square)
sd "template0 =.*$" "template0 = [[~/.icons/mabox-logo-square.svg]]," ${CONKYLOGO}
;;
3d)
sd "template0 =.*$" "template0 = [[~/.icons/mabox-logo-3d.svg]]," ${CONKYLOGO}
;;
circle)
sd "template0 =.*$" "template0 = [[~/.icons/mabox-logo-circle.svg]]," ${CONKYLOGO}
;;
esac
}
init(){
mklogos default
mkconky
mkmenu
}
revcolors () {
mklogos all ${logo_out_color} ${logo_out_opacity} ${logo_in_color} ${logo_in_opacity}
}
case "$1" in
init) init;;
size)size "$2";;
type)type "$2";;
revcolors)revcolors;;
*)mklogos "$1" "$2" "$3" "$4" "$5";;
esac