diff --git a/public/static/icons/touch-icon-120x120.png b/public/static/icons/touch-icon-120x120.png
new file mode 100644
index 0000000000000000000000000000000000000000..4193fcfadde8363fa34802327aac9436eaae4a53
Binary files /dev/null and b/public/static/icons/touch-icon-120x120.png differ
diff --git a/public/static/icons/touch-icon-128x128.png b/public/static/icons/touch-icon-128x128.png
new file mode 100644
index 0000000000000000000000000000000000000000..6475a7da218e0481bf7276cf1723a43e1adef53f
Binary files /dev/null and b/public/static/icons/touch-icon-128x128.png differ
diff --git a/public/static/icons/touch-icon-144x144.png b/public/static/icons/touch-icon-144x144.png
new file mode 100644
index 0000000000000000000000000000000000000000..41e9beea58b251545924b5cea33f29a0aa99ed22
Binary files /dev/null and b/public/static/icons/touch-icon-144x144.png differ
diff --git a/public/static/icons/touch-icon-152x152.png b/public/static/icons/touch-icon-152x152.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3ceb864673fbf6749d362da6240921d6ac59857
Binary files /dev/null and b/public/static/icons/touch-icon-152x152.png differ
diff --git a/public/static/icons/touch-icon-167x167.png b/public/static/icons/touch-icon-167x167.png
new file mode 100644
index 0000000000000000000000000000000000000000..8eb0337409ec66d1bd60e45cad3455fb01fdf5ed
Binary files /dev/null and b/public/static/icons/touch-icon-167x167.png differ
diff --git a/public/static/icons/touch-icon-16x16.png b/public/static/icons/touch-icon-16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..96df578c0a39126c8c2b26c85d5f32604a68866a
Binary files /dev/null and b/public/static/icons/touch-icon-16x16.png differ
diff --git a/public/static/icons/touch-icon-180x180.png b/public/static/icons/touch-icon-180x180.png
new file mode 100644
index 0000000000000000000000000000000000000000..c51197f2fa6d5881c8213ca4fee649d4c5016820
Binary files /dev/null and b/public/static/icons/touch-icon-180x180.png differ
diff --git a/public/static/icons/touch-icon-192x192.png b/public/static/icons/touch-icon-192x192.png
new file mode 100644
index 0000000000000000000000000000000000000000..1263811695d207a0032701b02f593b060b53d29c
Binary files /dev/null and b/public/static/icons/touch-icon-192x192.png differ
diff --git a/public/static/icons/touch-icon-256x256.png b/public/static/icons/touch-icon-256x256.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0893ba58eb53b91c9f4311020d3ec71f4b269ef
Binary files /dev/null and b/public/static/icons/touch-icon-256x256.png differ
diff --git a/public/static/icons/touch-icon-32x32.png b/public/static/icons/touch-icon-32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..5ac212ed8287abade7714adb0b54f6adf1acf5fa
Binary files /dev/null and b/public/static/icons/touch-icon-32x32.png differ
diff --git a/public/static/icons/touch-icon-512x512.png b/public/static/icons/touch-icon-512x512.png
new file mode 100644
index 0000000000000000000000000000000000000000..654de53218be4eb9ce702e4f2f96230a2baa0bca
Binary files /dev/null and b/public/static/icons/touch-icon-512x512.png differ
diff --git a/public/static/icons/touch-icon-96x96.png b/public/static/icons/touch-icon-96x96.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd941dc5d55f2c256d489a8f95466873a8485132
Binary files /dev/null and b/public/static/icons/touch-icon-96x96.png differ
diff --git a/public/static/icons/touch-icon.svg b/public/static/icons/touch-icon.svg
new file mode 100644
index 0000000000000000000000000000000000000000..ae43ad72fc4e08993b476df6f278b783ea03be1f
--- /dev/null
+++ b/public/static/icons/touch-icon.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 180 180" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2"><path style="fill:none" d="M0 0h180v180H0z"/><path style="fill:#673ab7" d="M0 0h162v172H0z" transform="scale(1.11111 1.04651)"/><path d="M8.427 1.305c-3.062 0-6.123.383-6.123 3.061v7.271a2.682 2.682 0 0 0 2.679 2.679l-1.148 1.148v.383h1.706l1.531-1.531h2.885l1.531 1.531h1.531v-.383l-1.148-1.148a2.681 2.681 0 0 0 2.678-2.679V4.366c0-2.678-2.74-3.061-6.122-3.061Zm-3.444 11.48a1.146 1.146 0 0 1-1.148-1.148c0-.635.512-1.148 1.148-1.148a1.147 1.147 0 1 1 0 2.296Zm2.678-5.357H3.835V4.366h3.826v3.062Zm1.531 0V4.366h3.827v3.062H9.192Zm2.679 5.357a1.146 1.146 0 0 1-1.148-1.148c0-.635.512-1.148 1.148-1.148a1.147 1.147 0 1 1 0 2.296ZM13.209 20.997l-3.591-3.59-1.222 1.214 4.813 4.813 10.332-10.332-1.214-1.214-9.118 9.109Z" style="fill:#fff;fill-rule:nonzero" transform="translate(4.812 8.457) scale(6.59229)"/></svg>
\ No newline at end of file
diff --git a/templates/layouts/default.html.ep b/templates/layouts/default.html.ep
index 10167fff36074e3aebb89808208c1ff12b25214b..4c7b1457d863ec7a3ae2e790f6d7d09c4ec4dfb1 100644
--- a/templates/layouts/default.html.ep
+++ b/templates/layouts/default.html.ep
@@ -17,10 +17,10 @@
 	<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-16x16.png" sizes="16x16">
 	<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-32x32.png" sizes="32x32">
 	<link rel="icon" type="image/png" href="/static/<%= $av %>/icons/icon-96x96.png" sizes="96x96">
-	<link rel="apple-touch-icon" href="/static/<%= $av %>/icons/icon-120x120.png">
-	<link rel="apple-touch-icon" sizes="180x180" href="/static/<%= $av %>/icons/icon-180x180.png">
-	<link rel="apple-touch-icon" sizes="152x152" href="/static/<%= $av %>/icons/icon-152x152.png">
-	<link rel="apple-touch-icon" sizes="167x167" href="/static/<%= $av %>/icons/icon-167x167.png">
+	<link rel="apple-touch-icon" href="/static/<%= $av %>/icons/touch-icon-120x120.png">
+	<link rel="apple-touch-icon" sizes="180x180" href="/static/<%= $av %>/icons/touch-icon-180x180.png">
+	<link rel="apple-touch-icon" sizes="152x152" href="/static/<%= $av %>/icons/touch-icon-152x152.png">
+	<link rel="apple-touch-icon" sizes="167x167" href="/static/<%= $av %>/icons/touch-icon-167x167.png">
 	<link rel="manifest" href="/static/<%= $av %>/manifest.json">
 	% if (session('theme') and session('theme') eq 'dark') {
 		%= stylesheet "/static/${av}/css/dark.min.css", id => 'theme'