diff --git a/assets/images/generate_assets.sh b/assets/images/generate_assets.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e4ed353fefe3652e41dc2f75abb067e430bffdbb
--- /dev/null
+++ b/assets/images/generate_assets.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+IMAGES="quassel_light quassel_dark solarized_light solarized_dark gruvbox_light gruvbox_dark amoled"
+RESOLUTIONS="220 266 335 352 532"
+
+PHONE_RESOLUTIONS="16 220 300 400 520 640 800 1000 1220"
+
+cd $(dirname $(realpath -s $0))
+
+function generate_thumb() {
+  convert $1.png -filter Lanczos -distort Resize 16x $1@thumb.png                                                          
+  convert $1@thumb.png -filter Lanczos -distort Resize 220x -quality 50 $1@thumb.jpg
+  rm $1@thumb.png
+}
+
+function generate_resolution() {
+  convert $1.png -filter Lanczos -distort Resize $2x $1@$2.png
+}
+
+# Generate Images
+for image in $IMAGES; do
+  echo $image
+  for resolution in $RESOLUTIONS; do
+    generate_resolution $image $resolution
+  done
+  generate_thumb $image
+done
+
+# Generate Phone
+for resolution in $PHONE_RESOLUTIONS; do
+  generate_resolution "phone" $resolution
+done
+convert phone@16.png -filter Lanczos -distort Resize 400x phone@thumb.png