Skip to content

Commit c03d709

Browse files
committed
Use single rendering script for all variations
- uses single render-assets.sh for all variations - single rendering script takes care of all assets used in gtk variations and xfwm variations - reduces repo size and better automation - No need to include .png files with repo as they can be generated during building deb packaging - better rendering of assets for new themes like gtk-4.0 - original rendering scripts has been kept back but can be removed
1 parent 0c6f6fe commit c03d709

File tree

2 files changed

+96
-16
lines changed

2 files changed

+96
-16
lines changed

src/Mint-Y/render-assets.sh

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#! /bin/bash
2+
3+
INKSCAPE="/usr/bin/inkscape"
4+
OPTIPNG="/usr/bin/optipng"
5+
6+
INDEX="assets.txt"
7+
if [[ $1 != "-dark" ]]; then
8+
SRC_FILE="assets.svg"
9+
ASSETS_DIR="assets"
10+
else
11+
SRC_FILE="assets"$1".svg"
12+
ASSETS_DIR="assets"$1
13+
fi
14+
mkdir -p $ASSETS_DIR
15+
16+
render()
17+
{
18+
echo Rendering $1
19+
if [[ "$1" == *"@2"* ]]; then
20+
$INKSCAPE --export-id=$2 --export-dpi=192 \
21+
"${INKSCAPE_OPTS[@]}" $1 $SRC_FILE >/dev/null 2>&1 \
22+
&& $OPTIPNG -o7 --quiet $1
23+
else
24+
$INKSCAPE --export-id=$2 "${INKSCAPE_OPTS[@]}" $1 $SRC_FILE >/dev/null 2>&1 \
25+
&& $OPTIPNG -o7 --quiet $1
26+
fi
27+
}
28+
29+
# Set options for Inkscape depending on version.
30+
INKSCAPE_OPTS=( --export-id-only )
31+
case $($INKSCAPE -V | cut -d' ' -f2) in
32+
# NB: The export option (-e or -o) must be the last option in the INKSCAPE_OPTS array.
33+
0.*) INKSCAPE_OPTS+=('-z' '-e');; # -z specifies not to launch GUI, -e is export
34+
1.*) INKSCAPE_OPTS+=('-o');; # v1.0+ uses no GUI by default, -e replaced by -o
35+
esac
36+
37+
for i in `cat $INDEX`
38+
do
39+
if [ -f $ASSETS_DIR/$i.png ]; then
40+
echo $ASSETS_DIR/$i.png exists.
41+
else
42+
render $ASSETS_DIR/$i.png $i &
43+
# allow only to execute number of jobs in parallel
44+
# equal to number of processors
45+
if [[ $(jobs -r -p | wc -l) -gt $(nproc) ]]; then
46+
# wait only for first job
47+
wait $(jobs -p)
48+
fi
49+
fi
50+
if [[ $1 == "s2" ]]; then
51+
if [ -f $ASSETS_DIR/$i@2.png ]; then
52+
echo $ASSETS_DIR/$i@2.png exists.
53+
else
54+
render $ASSETS_DIR/$i@2.png $i &
55+
# allow only to execute number of jobs in parallel
56+
# equal to number of processors
57+
if [[ $(jobs -r -p | wc -l) -gt $(nproc) ]]; then
58+
# wait only for first job
59+
wait $(jobs -p)
60+
fi
61+
fi
62+
fi
63+
done
64+
exit 0

update-variations.py

+32-16
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ def usage ():
1818
sys.exit(1)
1919

2020
def update_color (color):
21-
variation = "src/Mint-Y/variations/%s" % color
22-
print("updating %s" % variation)
21+
variation = curdir+"/src/Mint-Y/variations/%s" % color
22+
rendering_script = curdir+"/src/Mint-Y/render-assets.sh"
23+
print("updating %s" % color)
2324
os.system("rm -rf %s" % variation)
2425
os.system("mkdir -p %s/gtk-2.0" % variation)
2526
os.system("mkdir -p %s/gtk-3.0" % variation)
@@ -38,14 +39,9 @@ def update_color (color):
3839
files.append("gtk-2.0/assets")
3940
files.append("gtk-2.0/assets-dark")
4041
files.append("gtk-2.0/assets.txt")
41-
files.append("gtk-2.0/render-assets.sh")
42-
files.append("gtk-2.0/render-dark-assets.sh")
4342
files.append("gtk-3.0/assets")
4443
files.append("gtk-3.0/assets.txt")
45-
files.append("gtk-3.0/render-assets.sh")
46-
files.append("xfwm4/render-assets.sh")
4744
files.append("xfwm4/assets.txt")
48-
files.append("xfwm4-dark/render-assets.sh")
4945
files.append("xfwm4-dark/assets.txt")
5046

5147
for file in files:
@@ -66,21 +62,38 @@ def update_color (color):
6662
os.system("sed -i s'/%(accent)s/%(color_accent)s/gI' %(file)s" % {'accent': accent, 'color_accent': y_hex_colors4[color], 'file': asset_path})
6763

6864
# Render assets
65+
# TODO: need better idea to do '-dark'
66+
# and '@2' arguments
6967
os.chdir(variation)
70-
os.chdir("gtk-2.0")
68+
os.chdir(variation+"/gtk-2.0")
69+
print("**Rendering gtk-2.0 assets...")
7170
os.system("rm -rf assets/*")
71+
os.system(rendering_script)
72+
73+
print("**Rendering gtk-2.0 dark assets...")
7274
os.system("rm -rf assets-dark/*")
73-
os.system("./render-assets.sh")
74-
os.system("./render-dark-assets.sh")
75-
os.chdir("../gtk-3.0/")
75+
os.system(rendering_script+" -dark")
76+
# os.system("rm -rf assets/*@2.png")
77+
78+
print("**Rendering gtk-3.0 assets...")
79+
os.chdir(variation+"/gtk-3.0/")
7680
os.system("rm -rf assets/*")
77-
os.system("./render-assets.sh")
78-
os.chdir("../xfwm4/")
81+
os.system(rendering_script+" s2")
82+
83+
print("**Rendering xfwm4 assets...")
84+
os.chdir(variation+"/xfwm4/")
7985
os.system("rm -rf *.png")
80-
os.system("./render-assets.sh")
81-
os.chdir("../xfwm4-dark/")
86+
os.system(rendering_script)
87+
# os.system("rm -rf assets/*@2.png")
88+
os.system("mv assets/*.png ./ && rm -rf assets/")
89+
90+
print("**Rendering xfwm4 dark assets...")
91+
os.chdir(variation+"/xfwm4-dark/")
8292
os.system("rm -rf *.png")
83-
os.system("./render-assets.sh")
93+
os.system(rendering_script)
94+
# os.system("rm -rf assets/*@2.png")
95+
os.system("mv assets/*.png ./ && rm -rf assets/")
96+
print("")
8497
os.chdir(curdir)
8598

8699
if len(sys.argv) < 2:
@@ -92,6 +105,9 @@ def update_color (color):
92105

93106
# Mint-Y variations
94107
curdir = os.getcwd()
108+
# override for inkscape. when ulimit is set to "unlimited"
109+
# inkscape fails with segfault
110+
os.system("ulimit -s 1024")
95111

96112
if color_variation == "All":
97113
for color in y_hex_colors1.keys():

0 commit comments

Comments
 (0)