diff --git a/app/images/icons/Makefile b/app/images/icons/Makefile
index 83218e17..03eaed07 100644
--- a/app/images/icons/Makefile
+++ b/app/images/icons/Makefile
@@ -1,5 +1,8 @@
BROWSER_SIZES := 16 24 32 48 64
-ANDROID_SIZES := 72 96 144 192
+#ANDROID_SIZES := 72 96 144 192
+# FIXME: The ICO is limited to 8 icons due to a Chrome bug:
+# https://bugs.chromium.org/p/chromium/issues/detail?id=1381393
+ANDROID_SIZES := 96 144 192
WEB_ICON_SIZES := $(BROWSER_SIZES) $(ANDROID_SIZES)
#IOS_1X_SIZES := 20 29 40 76 # No such devices exist anymore
@@ -9,10 +12,19 @@ ALL_IOS_SIZES := $(IOS_1X_SIZES) $(IOS_2X_SIZES) $(IOS_3X_SIZES)
ALL_ICONS := \
$(ALL_IOS_SIZES:%=novnc-ios-%.png) \
- $(WEB_ICON_SIZES:%=novnc-%.png)
+ novnc.ico
all: $(ALL_ICONS)
+# Our testing shows that the ICO file need to be sorted in largest to
+# smallest to get the apporpriate behviour
+WEB_ICON_SIZES_REVERSE := $(shell echo $(WEB_ICON_SIZES) | tr ' ' '\n' | sort -nr | tr '\n' ' ')
+WEB_BASE_ICONS := $(WEB_ICON_SIZES_REVERSE:%=novnc-%.png)
+.INTERMEDIATE: $(WEB_BASE_ICONS)
+
+novnc.ico: $(WEB_BASE_ICONS)
+ convert $(WEB_BASE_ICONS) "$@"
+
# General conversion
novnc-%.png: novnc-icon.svg
convert -depth 8 -background transparent \
diff --git a/app/images/icons/novnc-144.png b/app/images/icons/novnc-144.png
deleted file mode 100644
index 1707e331..00000000
Binary files a/app/images/icons/novnc-144.png and /dev/null differ
diff --git a/app/images/icons/novnc-16.png b/app/images/icons/novnc-16.png
deleted file mode 100644
index d4e29288..00000000
Binary files a/app/images/icons/novnc-16.png and /dev/null differ
diff --git a/app/images/icons/novnc-192.png b/app/images/icons/novnc-192.png
deleted file mode 100644
index 8c582b47..00000000
Binary files a/app/images/icons/novnc-192.png and /dev/null differ
diff --git a/app/images/icons/novnc-24.png b/app/images/icons/novnc-24.png
deleted file mode 100644
index ee316e1d..00000000
Binary files a/app/images/icons/novnc-24.png and /dev/null differ
diff --git a/app/images/icons/novnc-32.png b/app/images/icons/novnc-32.png
deleted file mode 100644
index 6d9182a3..00000000
Binary files a/app/images/icons/novnc-32.png and /dev/null differ
diff --git a/app/images/icons/novnc-48.png b/app/images/icons/novnc-48.png
deleted file mode 100644
index 631a9bd6..00000000
Binary files a/app/images/icons/novnc-48.png and /dev/null differ
diff --git a/app/images/icons/novnc-64.png b/app/images/icons/novnc-64.png
deleted file mode 100644
index 98375f84..00000000
Binary files a/app/images/icons/novnc-64.png and /dev/null differ
diff --git a/app/images/icons/novnc-72.png b/app/images/icons/novnc-72.png
deleted file mode 100644
index 26e4fba4..00000000
Binary files a/app/images/icons/novnc-72.png and /dev/null differ
diff --git a/app/images/icons/novnc-96.png b/app/images/icons/novnc-96.png
deleted file mode 100644
index 102e8a60..00000000
Binary files a/app/images/icons/novnc-96.png and /dev/null differ
diff --git a/app/images/icons/novnc.ico b/app/images/icons/novnc.ico
new file mode 100644
index 00000000..c3bc58e3
Binary files /dev/null and b/app/images/icons/novnc.ico differ
diff --git a/vnc.html b/vnc.html
index 2f5438a7..e77e82ca 100644
--- a/vnc.html
+++ b/vnc.html
@@ -17,21 +17,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+