diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0d451969e24e81718f1e035a8695c82c700a7177..e547cdac413b7e69f71508555a5eff8890a0f367 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -94,7 +94,6 @@ set(COMMON_HEADERS
     ${SRC_DIR}/qrimageprovider.h
     ${SRC_DIR}/messagesadapter.h
     ${SRC_DIR}/accountadapter.h
-    ${SRC_DIR}/tintedbuttonimageprovider.h
     ${SRC_DIR}/calladapter.h
     ${SRC_DIR}/conversationsadapter.h
     ${SRC_DIR}/distantrenderer.h
@@ -436,14 +435,14 @@ else()
     target_compile_definitions(jami-qt PRIVATE JAMI_INSTALL_PREFIX="${JAMI_DATA_PREFIX}")
 
     # logos
-    install(FILES images/jami.svg
+    install(FILES resources/images/jami.svg
         DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps)
 
-    install(FILES images/jami-48px.png
+    install(FILES resources/images/jami-48px.png
         DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps
         RENAME jami.png)
 
-    install(FILES images/jami-32px.xpm
+    install(FILES resources/images/jami-32px.xpm
         DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps
         RENAME jami.xpm)
 
diff --git a/cmake/windows_daemon_deploy.cmake b/cmake/windows_daemon_deploy.cmake
index 82d8a94bfb475f49132a9e3632c3c721479afcf0..2d4c8b13cec22c71f05c35fd2bd81f4bbbaa7c7b 100644
--- a/cmake/windows_daemon_deploy.cmake
+++ b/cmake/windows_daemon_deploy.cmake
@@ -12,7 +12,7 @@ else()
               "${DRING_PATH}/contrib/build/openssl/libcrypto-1_1-x64.dll"
               "${DRING_PATH}/contrib/build/openssl/libssl-1_1-x64.dll"
               "${PROJECT_ROOT_DIR}/qt.conf"
-              "${PROJECT_ROOT_DIR}/images/jami.ico"
+              "${PROJECT_ROOT_DIR}/resources/images/jami.ico"
               "${PROJECT_ROOT_DIR}/License.rtf"
          DESTINATION ${COPY_TO_PATH})
-endif()
\ No newline at end of file
+endif()
diff --git a/gen-resources.py b/gen-resources.py
new file mode 100644
index 0000000000000000000000000000000000000000..a47147bf761c46019f7b057aeb3faa408130ca36
--- /dev/null
+++ b/gen-resources.py
@@ -0,0 +1,33 @@
+import os
+import sys
+import re
+
+resdir = 'resources'
+qmlfile = os.path.join('src', 'constant', 'JamiResources.qml')
+sep = '_'
+
+# replace characters that aren't valid within QML property names
+formatProp = lambda str: (
+    "".join([{".": sep, "-": sep, " ": sep}
+        .get(c, c) for c in str]
+    ).lower())
+
+with open('resources.qrc', 'w') as qrc, open(qmlfile, 'w') as qml:
+    qrc.write('<RCC>\n')
+    qml.write('pragma Singleton\nimport QtQuick 2.14\nQtObject {\n')
+    for root, _, files in os.walk(resdir):
+        if len(files):
+            prefix = root.rsplit(os.sep, 1)[-1]
+            qrc.write('\t<qresource prefix="/%s">\n' % prefix)
+            for filename in files:
+                # use posix separators in the resource path
+                filepath = os.path.join(root, filename).replace(os.sep, '/')
+                qrc.write('\t\t<file alias="%s">%s</file>\n'
+                    % (filename, filepath))
+                # only record images/icons as properties
+                if (re.match("icons|images", prefix)):
+                    qml.write('    readonly property string %s: "qrc:/%s"\n'
+                        % (formatProp(filename), filepath.split('/', 1)[1]))
+            qrc.write('\t</qresource>\n')
+    qml.write('}')
+    qrc.write('</RCC>')
\ No newline at end of file
diff --git a/ico.rc b/ico.rc
index ad48aa5125c717fa317d409f43365bdd3a3e0b76..07f790922bdea72f79a06f9c59f41659213a2283 100644
--- a/ico.rc
+++ b/ico.rc
@@ -1 +1 @@
-IDI_ICON1               ICON    DISCARDABLE     "images/jami.ico"
+IDI_ICON1               ICON    DISCARDABLE     "resources/images/jami.ico"
diff --git a/images/ajax-loader.gif b/images/ajax-loader.gif
deleted file mode 100644
index f2a1bc0c6f545e20e631a96e8e92f9822e75d046..0000000000000000000000000000000000000000
Binary files a/images/ajax-loader.gif and /dev/null differ
diff --git a/images/icons/arrow_back-white-24dp.svg b/images/icons/arrow_back-white-24dp.svg
deleted file mode 100644
index bc39c0465a797b60a073e4cf18802b1f14679339..0000000000000000000000000000000000000000
--- a/images/icons/arrow_back-white-24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
\ No newline at end of file
diff --git a/images/icons/baseline-refresh-24px.svg b/images/icons/baseline-refresh-24px.svg
deleted file mode 100644
index f1ad30d2771d751804451e96802f6cf324685386..0000000000000000000000000000000000000000
--- a/images/icons/baseline-refresh-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/><path d="M0 0h24v24H0z" fill="none"/></svg>
\ No newline at end of file
diff --git a/images/icons/chat-24px.svg b/images/icons/chat-24px.svg
deleted file mode 100644
index 4ce311b89f8e7512531e20da88cd42b618953a5a..0000000000000000000000000000000000000000
--- a/images/icons/chat-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z"/></svg>
\ No newline at end of file
diff --git a/images/icons/chevron_left_black_24dp.svg b/images/icons/chevron_left_black_24dp.svg
deleted file mode 100644
index fad9a0553ece863edf10abfa8256cafc7b74cd49..0000000000000000000000000000000000000000
--- a/images/icons/chevron_left_black_24dp.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
\ No newline at end of file
diff --git a/images/icons/delete-24px.svg b/images/icons/delete-24px.svg
deleted file mode 100644
index 07d10f6a487decea4c64b7cff0dc4ce428a860ac..0000000000000000000000000000000000000000
--- a/images/icons/delete-24px.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>Garbage</title>
-    <g id="Icones_Outline" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Garbage" fill="#000000" fill-rule="nonzero" stroke="#000000" stroke-width="0.75">
-            <g id="noun_Garbage_2034095" transform="translate(2.000000, 2.000000)">
-                <path d="M18.5416667,2.66666667 L12.4791667,2.66666667 L12.4791667,2.1875 C12.4791667,1.04166667 11.5416667,0.104166667 10.3958333,0.104166667 L8.77083333,0.104166667 C7.625,0.104166667 6.6875,1.04166667 6.6875,2.1875 L6.6875,2.66666667 L0.625,2.66666667 C0.333333333,2.66666667 0.0833333333,2.91666667 0.0833333333,3.20833333 C0.0833333333,3.5 0.333333333,3.75 0.625,3.75 L2.14583333,3.75 L2.85416667,17.7291667 C2.91666667,18.9375 3.91666667,19.8958333 5.14583333,19.8958333 L14.0625,19.8958333 C15.2708333,19.8958333 16.2916667,18.9375 16.3541667,17.7291667 L17.0208333,3.75 L18.5416667,3.75 C18.8333333,3.75 19.0833333,3.5 19.0833333,3.20833333 C19.0833333,2.91666667 18.8333333,2.66666667 18.5416667,2.66666667 Z M7.77083333,2.1875 C7.77083333,1.64583333 8.20833333,1.1875 8.77083333,1.1875 L10.3958333,1.1875 C10.9375,1.1875 11.3958333,1.625 11.3958333,2.1875 L11.3958333,2.66666667 L7.77083333,2.66666667 L7.77083333,2.1875 Z M15.2291667,17.6666667 C15.1875,18.3125 14.6666667,18.7916667 14.0416667,18.7916667 L5.125,18.7916667 C4.47916667,18.7916667 3.95833333,18.2916667 3.9375,17.6666667 L3.22916667,3.75 L15.9166667,3.75 L15.2291667,17.6666667 Z" id="Shape"></path>
-            </g>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/images/icons/ic_add_black_18dp_2x.png b/images/icons/ic_add_black_18dp_2x.png
deleted file mode 100644
index 6f33be6bac35e3e9dae81da4931ee44b64ad180e..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_add_black_18dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_arrow_drop_down_black_18dp_2x.png b/images/icons/ic_arrow_drop_down_black_18dp_2x.png
deleted file mode 100644
index ec71509f355e483ad3f2d2d49cc8af4cb52767e2..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_arrow_drop_down_black_18dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_arrow_drop_down_black_9dp_2x.png b/images/icons/ic_arrow_drop_down_black_9dp_2x.png
deleted file mode 100644
index 9ccea133ddb3b5a0293ccdbd374c8085040bc1c8..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_arrow_drop_down_black_9dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_arrow_drop_up_black_18dp_2x.png b/images/icons/ic_arrow_drop_up_black_18dp_2x.png
deleted file mode 100644
index 65b14e07e4d317a898df215c7a6e89ed06957d5d..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_arrow_drop_up_black_18dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_arrow_drop_up_black_9dp_2x.png b/images/icons/ic_arrow_drop_up_black_9dp_2x.png
deleted file mode 100644
index 7c319760027b8f5576ca698e58c2310874c61c05..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_arrow_drop_up_black_9dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_arrow_forward_white_48dp_2x.png b/images/icons/ic_arrow_forward_white_48dp_2x.png
deleted file mode 100644
index 5e93f8862b879d31e51adaf46b3a0ebd2063c5a1..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_arrow_forward_white_48dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_arrow_tab_next_black_9dp_2x.png b/images/icons/ic_arrow_tab_next_black_9dp_2x.png
deleted file mode 100644
index 62e6238e5597d2256a9407ce145ca5ddff4cf9a0..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_arrow_tab_next_black_9dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_arrow_tab_previous_black_9dp_2x.png b/images/icons/ic_arrow_tab_previous_black_9dp_2x.png
deleted file mode 100644
index 25769dad4b82d1d90d27dc252ccda3d9e733788d..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_arrow_tab_previous_black_9dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_chat_black_24dp_2x.png b/images/icons/ic_chat_black_24dp_2x.png
deleted file mode 100644
index e9e92e5f809cd0a62b9a5867d57319d1a86fe31e..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_chat_black_24dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_chat_white_24dp.png b/images/icons/ic_chat_white_24dp.png
deleted file mode 100644
index ace0bef32ec67afbe5af73db991c704650d394bc..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_chat_white_24dp.png and /dev/null differ
diff --git a/images/icons/ic_check_white_18dp_2x.png b/images/icons/ic_check_white_18dp_2x.png
deleted file mode 100644
index 729f290104788ce25a026cd1842e625ed29469d3..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_check_white_18dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_done_white_24dp.png b/images/icons/ic_done_white_24dp.png
deleted file mode 100644
index 3b2b65d26291575f2741d223cdf80facb436dc20..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_done_white_24dp.png and /dev/null differ
diff --git a/images/icons/ic_exit_full_screen_black.png b/images/icons/ic_exit_full_screen_black.png
deleted file mode 100644
index 964dd00211344abeea319521600c2feb54305b96..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_exit_full_screen_black.png and /dev/null differ
diff --git a/images/icons/ic_folder_black_18dp_2x.png b/images/icons/ic_folder_black_18dp_2x.png
deleted file mode 100644
index fceeb6778dbbdcfaaf03c0b4f7d10350731fb59c..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_folder_black_18dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_full_screen_black.png b/images/icons/ic_full_screen_black.png
deleted file mode 100644
index 906ca1e46c4385c89faca3735ce121169568b7ab..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_full_screen_black.png and /dev/null differ
diff --git a/images/icons/ic_group_add_white_24dp.png b/images/icons/ic_group_add_white_24dp.png
deleted file mode 100644
index a769931c4236a87d4b19f944f56af54faa0eb94e..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_group_add_white_24dp.png and /dev/null differ
diff --git a/images/icons/ic_hide_password.png b/images/icons/ic_hide_password.png
deleted file mode 100644
index ccad190eaf366c056fbaf2b8a1935d97f24472cf..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_hide_password.png and /dev/null differ
diff --git a/images/icons/ic_mic_off_white_24dp.png b/images/icons/ic_mic_off_white_24dp.png
deleted file mode 100644
index bb7915f33df69c09fbc22cb39e913205a6f06004..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_mic_off_white_24dp.png and /dev/null differ
diff --git a/images/icons/ic_mic_white_24dp.png b/images/icons/ic_mic_white_24dp.png
deleted file mode 100644
index 5917157b17791c2fb94a6eed899b0ecd202d50d8..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_mic_white_24dp.png and /dev/null differ
diff --git a/images/icons/ic_photo_camera_white_24dp_2x.png b/images/icons/ic_photo_camera_white_24dp_2x.png
deleted file mode 100644
index be9fb226a53ce5ee4008cfafa0754f42284d51b3..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_photo_camera_white_24dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_play_white_24dp.png b/images/icons/ic_play_white_24dp.png
deleted file mode 100644
index d7768701870ef857e807e4cbe5029736f4cdb709..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_play_white_24dp.png and /dev/null differ
diff --git a/images/icons/ic_send_white_24dp.png b/images/icons/ic_send_white_24dp.png
deleted file mode 100644
index ef59e77678dbd3f5d866bca9058b6e90cb8d6098..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_send_white_24dp.png and /dev/null differ
diff --git a/images/icons/ic_settings_white_48dp_2x.png b/images/icons/ic_settings_white_48dp_2x.png
deleted file mode 100644
index 507c5edd44bfb5efe41327d5cef511a108d35f13..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_settings_white_48dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_share_black_48dp_2x.png b/images/icons/ic_share_black_48dp_2x.png
deleted file mode 100644
index 5a8544ce5d6c8bf471c8fbd54cf4f88254ea9ccb..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_share_black_48dp_2x.png and /dev/null differ
diff --git a/images/icons/ic_show_password.png b/images/icons/ic_show_password.png
deleted file mode 100644
index 2a6655786a47723443854df3fa37aa2daa3b9ad5..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_show_password.png and /dev/null differ
diff --git a/images/icons/ic_videocam_off_white_24dp.png b/images/icons/ic_videocam_off_white_24dp.png
deleted file mode 100644
index 5d540589b4a4f9e22a8c4f1f292e12ec75ad443b..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_videocam_off_white_24dp.png and /dev/null differ
diff --git a/images/icons/ic_videocam_white.png b/images/icons/ic_videocam_white.png
deleted file mode 100644
index 44c28e2f2830f927973beaa3a143ddfe439f20ed..0000000000000000000000000000000000000000
Binary files a/images/icons/ic_videocam_white.png and /dev/null differ
diff --git a/images/icons/mic-24px.svg b/images/icons/mic-24px.svg
deleted file mode 100644
index cdb2429b7b7d3d6d61a9cd37da21886b0e59af21..0000000000000000000000000000000000000000
--- a/images/icons/mic-24px.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>Micro</title>
-    <g id="Icones_Outline" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Micro" fill-rule="nonzero" stroke="#000000">
-            <g id="Group" transform="translate(5.000000, 2.000000)">
-                <path d="M6.56527519,0.974075391 C7.45579029,0.974075391 8.26271949,1.33613472 8.84711447,1.9205297 C9.43150944,2.50492467 9.79356877,3.31185387 9.79356877,4.20236897 L9.79356877,4.20236897 L9.79356877,10.2205384 C9.79356877,11.1110527 9.43150906,11.917982 8.84711379,12.5023773 C8.2627189,13.0867722 7.45579,13.4488319 6.56527519,13.4488319 C5.67476035,13.4488319 4.86783137,13.0867721 4.2834364,12.5023772 C3.6990411,11.917982 3.33698134,11.1110526 3.33698134,10.2205384 L3.33698134,10.2205384 L3.33698134,4.20236897 C3.33698134,3.31185389 3.69904072,2.50492472 4.28343573,1.92052975 C4.86783077,1.33613475 5.67476006,0.974075391 6.56527519,0.974075391 Z" id="Path" stroke-width="1.75"></path>
-                <path d="M0.555659536,6.93784593 C0.263494091,6.93333516 -0.00456587154,7.20139238 -5.2430396e-05,7.49355783 L-5.2430396e-05,10.2290732 C-5.2430396e-05,13.673624 2.64524538,16.4924773 6.01816938,16.768711 L6.01816938,18.7006784 L3.82974614,18.7006784 C3.52758781,18.7006784 3.28264033,18.9456177 3.28264033,19.2477842 C3.28264033,19.5499508 3.52758781,19.79489 3.82974614,19.79489 L9.30080425,19.79489 C9.60296258,19.79489 9.84791006,19.5499508 9.84791006,19.2477842 C9.84791006,18.9456177 9.60296258,18.7012802 9.30080425,18.7006784 L7.112381,18.7006784 L7.112381,16.768711 C10.4853047,16.4924773 13.1305918,13.673624 13.1305918,10.2290732 L13.1305918,7.49355783 C13.1346209,7.20451636 12.8725107,6.93866123 12.5834391,6.93866123 C12.2943675,6.93866123 12.0322464,7.20451636 12.0363333,7.49355783 L12.0363333,10.2290732 C12.0363333,13.2695043 9.60570358,15.7001313 6.56527519,15.7001313 C3.52484407,15.7001313 1.09421682,13.2695043 1.09421682,10.2290732 L1.09421682,7.49355783 C1.09870309,7.20709323 0.842124138,6.94237335 0.555659536,6.93784593 Z" id="Path" stroke-width="0.5" fill="#000000"></path>
-            </g>
-        </g>
-    </g>
-</svg>
\ No newline at end of file
diff --git a/images/icons/pause-24px.svg b/images/icons/pause-24px.svg
deleted file mode 100644
index 63a1c461e99026a9df668630aa8f214508ee0b09..0000000000000000000000000000000000000000
--- a/images/icons/pause-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/></svg>
\ No newline at end of file
diff --git a/images/icons/play_circle_outline-24px.svg b/images/icons/play_circle_outline-24px.svg
deleted file mode 100644
index a845a76c4658e23c8e58655e6772a8183170826a..0000000000000000000000000000000000000000
--- a/images/icons/play_circle_outline-24px.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
\ No newline at end of file
diff --git a/images/jami.png b/images/jami.png
deleted file mode 100644
index aef46d27351a67bf8b10d63bc759c6a85387d41c..0000000000000000000000000000000000000000
Binary files a/images/jami.png and /dev/null differ
diff --git a/images/spike.png b/images/spike.png
deleted file mode 100644
index 1f0392703b91ddcc49f5fd47707ee5f82eb51021..0000000000000000000000000000000000000000
Binary files a/images/spike.png and /dev/null differ
diff --git a/images/waiting.gif b/images/waiting.gif
deleted file mode 100644
index ba2fbbcf203d31269617a75a0bf1fb308226791d..0000000000000000000000000000000000000000
Binary files a/images/waiting.gif and /dev/null differ
diff --git a/qml.qrc b/qml.qrc
index 233a6e2f4e1d9bc632325c4b0bca04e0703f4f88..e4a1b61f8fd4a5ba9f3784e2a3ff5888bb3e830b 100644
--- a/qml.qrc
+++ b/qml.qrc
@@ -10,13 +10,11 @@
         <file>src/commoncomponents/PasswordDialog.qml</file>
         <file>src/commoncomponents/MaterialLineEdit.qml</file>
         <file>src/commoncomponents/PhotoboothView.qml</file>
-        <file>src/commoncomponents/LookupStatusLabel.qml</file>
         <file>src/commoncomponents/ListViewJami.qml</file>
         <file>src/commoncomponents/DeleteAccountDialog.qml</file>
         <file>src/commoncomponents/CustomBorder.qml</file>
         <file>src/commoncomponents/PushButton.qml</file>
         <file>src/commoncomponents/JamiFileDialog.qml</file>
-        <file>src/commoncomponents/TintedButton.qml</file>
         <file>src/commoncomponents/AccountMigrationDialog.qml</file>
         <file>src/commoncomponents/MaterialButton.qml</file>
         <file>src/commoncomponents/ElidedTextLabel.qml</file>
@@ -89,7 +87,6 @@
         <file>src/wizardview/components/ImportFromDevicePage.qml</file>
         <file>src/wizardview/components/ConnectToAccountManagerPage.qml</file>
         <file>src/wizardview/components/ProfilePage.qml</file>
-        <file>src/wizardview/components/CollapsiblePasswordWidget.qml</file>
         <file>src/wizardview/components/AccountCreationStepIndicator.qml</file>
         <file>src/mainview/MainView.qml</file>
         <file>src/mainview/components/PluginHandlerItemDelegate.qml</file>
@@ -159,5 +156,6 @@
         <file>src/mainview/components/ConversationAvatar.qml</file>
         <file>src/mainview/components/InvitationView.qml</file>
         <file>src/commoncomponents/GeneralWebEngineView.qml</file>
+        <file>src/constant/JamiResources.qml</file>
     </qresource>
 </RCC>
diff --git a/resources.qrc b/resources.qrc
index 884215072d018198c17e87c98bfd3aef8f0e5e78..037ed738d4589221d5990e6fdb880e98894ae522 100644
--- a/resources.qrc
+++ b/resources.qrc
@@ -1,150 +1,126 @@
-<RCC>
-    <qresource prefix="/">
-        <file>images/icons/outline-info-24px.svg</file>
-        <file>images/icons/baseline-camera_alt-24px.svg</file>
-        <file>images/icons/baseline-refresh-24px.svg</file>
-        <file>images/jami_rolling_spinner.gif</file>
-        <file>images/icons/baseline-close-24px.svg</file>
-        <file>images/icons/cross_black_24dp.svg</file>
-        <file>images/icons/mosaic_black_24dp.svg</file>
-        <file>images/icons/baseline-done-24px.svg</file>
-        <file>images/icons/baseline-error_outline-24px.svg</file>
-        <file>projectcredits.html</file>
-        <file>images/ajax-loader.gif</file>
-        <file>images/default_avatar_overlay.svg</file>
-        <file>images/FontAwesome.otf</file>
-        <file>images/jami.ico</file>
-        <file>images/jami.png</file>
-        <file>images/jami.svg</file>
-        <file>images/jami-new.svg</file>
-        <file>images/spike.png</file>
-        <file>images/waiting.gif</file>
-        <file>images/icons/ic_add_black_18dp_2x.png</file>
-        <file>images/icons/info-24px.svg</file>
-        <file>images/icons/backup-24px.svg</file>
-        <file>images/icons/check_box_outline_blank-24px.svg</file>
-        <file>images/icons/check_box-24px.svg</file>
-        <file>images/icons/check_black-24dp.svg</file>
-        <file>images/icons/devices-24px.svg</file>
-        <file>images/icons/ic_arrow_back_24px.svg</file>
-        <file>images/icons/ic_arrow_back_white_24dp.svg</file>
-        <file>images/icons/ic_arrow_drop_down_black_9dp_2x.png</file>
-        <file>images/icons/ic_arrow_drop_down_black_18dp_2x.png</file>
-        <file>images/icons/ic_arrow_drop_up_black_9dp_2x.png</file>
-        <file>images/icons/ic_arrow_drop_up_black_18dp_2x.png</file>
-        <file>images/icons/ic_arrow_forward_white_48dp_2x.png</file>
-        <file>images/icons/ic_arrow_tab_next_black_9dp_2x.png</file>
-        <file>images/icons/ic_arrow_tab_previous_black_9dp_2x.png</file>
-        <file>images/icons/block_black-24dp.svg</file>
-        <file>images/icons/ic_hangup_participant-24px.svg</file>
-        <file>images/icons/delete_forever-24px.svg</file>
-        <file>images/icons/phone_forwarded-24px.svg</file>
-        <file>images/icons/ic_chat_black_24dp_2x.png</file>
-        <file>images/icons/ic_chat_white_24dp.png</file>
-        <file>images/icons/ic_clear_24px.svg</file>
-        <file>images/icons/ic_content_copy.svg</file>
-        <file>images/icons/ic_done_white_24dp.png</file>
-        <file>images/icons/ic_keypad.svg</file>
-        <file>images/icons/open_in_full-24px.svg</file>
-        <file>images/icons/close_fullscreen-24px.svg</file>
-        <file>images/icons/ic_group_add_white_24dp.png</file>
-        <file>images/icons/ic_mic_off_white_24dp.png</file>
-        <file>images/icons/pause_circle_outline-24px.svg</file>
-        <file>images/icons/play_circle_outline-24px.svg</file>
-        <file>images/icons/ic_pause_white_100px.svg</file>
-        <file>images/icons/groups-24px.svg</file>
-        <file>images/icons/ic_photo_camera_white_24dp_2x.png</file>
-        <file>images/icons/ic_baseline-search-24px.svg</file>
-        <file>images/icons/ic_send_24px.svg</file>
-        <file>images/icons/ic_send_white_24dp.png</file>
-        <file>images/icons/ic_settings_white_48dp_2x.png</file>
-        <file>images/icons/ic_share_black_48dp_2x.png</file>
-        <file>images/icons/ic_video_call_24px.svg</file>
-        <file>images/icons/ic_videocam_off_white_24dp.png</file>
-        <file>images/icons/ic_videocam_white.png</file>
-        <file>images/icons/ic_call_end_white_24px.svg</file>
-        <file>images/icons/round-add-24px.svg</file>
-        <file>images/icons/round-arrow_drop_down-24px.svg</file>
-        <file>images/icons/round-arrow_drop_up-24px.svg</file>
-        <file>images/icons/round-arrow_right-24px.svg</file>
-        <file>images/icons/round-close-24px.svg</file>
-        <file>images/icons/round-edit-24px.svg</file>
-        <file>images/icons/round-folder-24px.svg</file>
-        <file>images/icons/round-remove_circle-24px.svg</file>
-        <file>images/icons/round-settings-24px.svg</file>
-        <file>images/icons/round-undo-24px.svg</file>
-        <file>images/icons/round-check_circle-24px.svg</file>
-        <file>images/icons/round-error-24px.svg</file>
-        <file>images/icons/round-save_alt-24px.svg</file>
-        <file>images/jami_eclipse_spinner.gif</file>
-        <file>images/icons/ic_hide_password.png</file>
-        <file>images/icons/ic_show_password.png</file>
-        <file>images/icons/baseline-desktop_windows-24px.svg</file>
-        <file>images/icons/ic_high_quality_24px.svg</file>
-        <file>images/icons/insert_photo-24px.svg</file>
-        <file>images/icons/round-add_a_photo-24px.svg</file>
-        <file>images/icons/ic_mic_white_24dp.png</file>
-        <file>images/icons/ic_play_white_24dp.png</file>
-        <file>images/icons/av_icons/delete-24px.svg</file>
-        <file>images/icons/av_icons/fiber_manual_record-24px.svg</file>
-        <file>images/icons/av_icons/play_circle_outline-24px.svg</file>
-        <file>images/icons/av_icons/re-record-24px.svg</file>
-        <file>images/icons/av_icons/stop-24px-red.svg</file>
-        <file>images/icons/av_icons/pause-24px.svg</file>
-        <file>images/icons/av_icons/send-24px.svg</file>
-        <file>images/icons/av_icons/stop-24px.svg</file>
-        <file>images/icons/av_icons/mic-24px.svg</file>
-        <file>images/icons/extension_24dp.svg</file>
-        <file>images/icons/settings_backup_restore-black-18dp.svg</file>
-        <file>images/icons/person-24px.svg</file>
-        <file>images/icons/drafts-24px.svg</file>
-        <file>images/icons/router-24px.svg</file>
-        <file>images/icons/arrow_back-white-24dp.svg</file>
-        <file>images/icons/videocam-24px.svg</file>
-        <file>images/icons/qr_code-24px.svg</file>
-        <file>images/icons/content_copy-24px.svg</file>
-        <file>images/icons/videocam_off-24px.svg</file>
-        <file>images/icons/mic_off-24px.svg</file>
-        <file>images/icons/mic-24px.svg</file>
-        <file>images/icons/group_add-24px.svg</file>
-        <file>images/icons/chat-24px.svg</file>
-        <file>images/icons/phone_paused-24px.svg</file>
-        <file>images/icons/pause-24px.svg</file>
-        <file>images/icons/arrow_drop_up-24px.svg</file>
-        <file>images/icons/arrow_drop_down-24px.svg</file>
-        <file>images/icons/expand_less-24px.svg</file>
-        <file>images/icons/expand_more-24px.svg</file>
-        <file>images/icons/delete-24px.svg</file>
-        <file>images/icons/settings_backup_restore-24px.svg</file>
-        <file>images/logo-jami-standard-coul.svg</file>
-        <file>images/logo-jami-standard-coul-white.svg</file>
-        <file>images/icons/moderator.svg</file>
-        <file>images/icons/star_outline-24px.svg</file>
-        <file>images/icons/message_audio_black-24dp.svg</file>
-        <file>images/icons/message_video_black-24dp.svg</file>
-        <file>images/icons/send_black-24dp.svg</file>
-        <file>images/icons/back-24px.svg</file>
-        <file>images/icons/place_audiocall-24px.svg</file>
-        <file>images/icons/add_people-24px.svg</file>
-        <file>images/icons/share-24px.svg</file>
-        <file>images/icons/settings-24px.svg</file>
-        <file>images/icons/quote.svg</file>
-        <file>images/icons/plugins-24px.svg</file>
-        <file>images/icons/record_black_24dp.svg</file>
-        <file>images/icons/account_black-24dp.svg</file>
-        <file>images/icons/gear_black-24dp.svg</file>
-        <file>images/icons/media_black-24dp.svg</file>
-        <file>images/icons/plugin_settings_black-24dp.svg</file>
-        <file>images/icons/share_stop_black_24dp.svg</file>
-        <file>images/icons/share_screen_black_24dp.svg</file>
-        <file>images/icons/chat_black_24dp.svg</file>
-        <file>images/icons/add_people_black_24dp.svg</file>
-        <file>images/icons/spk_black_24dp.svg</file>
-        <file>images/icons/spk_none_black_24dp.svg</file>
-        <file>images/icons/more_vert-24dp.svg</file>
-        <file>images/icons/chevron_left_black_24dp.svg</file>
-        <file>images/icons/emoji_black-24dp.svg</file>
-        <file>images/icons/link_black-24dp.svg</file>
-        <file>images/icons/file_black-24dp.svg</file>
-    </qresource>
-</RCC>
+<RCC>
+	<qresource prefix="/fonts">
+		<file alias="FontAwesome.otf">resources/fonts/FontAwesome.otf</file>
+	</qresource>
+	<qresource prefix="/icons">
+		<file alias="account_24dp.svg">resources/icons/account_24dp.svg</file>
+		<file alias="add_people_24dp.svg">resources/icons/add_people_24dp.svg</file>
+		<file alias="add_people_black_24dp.svg">resources/icons/add_people_black_24dp.svg</file>
+		<file alias="arrow_drop_down_24dp.svg">resources/icons/arrow_drop_down_24dp.svg</file>
+		<file alias="arrow_drop_up_24dp.svg">resources/icons/arrow_drop_up_24dp.svg</file>
+		<file alias="backup_24dp.svg">resources/icons/backup_24dp.svg</file>
+		<file alias="back_24dp.svg">resources/icons/back_24dp.svg</file>
+		<file alias="baseline_camera_alt_24dp.svg">resources/icons/baseline_camera_alt_24dp.svg</file>
+		<file alias="baseline_close_24dp.svg">resources/icons/baseline_close_24dp.svg</file>
+		<file alias="baseline_desktop_windows_24dp.svg">resources/icons/baseline_desktop_windows_24dp.svg</file>
+		<file alias="baseline_done_24dp.svg">resources/icons/baseline_done_24dp.svg</file>
+		<file alias="baseline_error_outline_24dp.svg">resources/icons/baseline_error_outline_24dp.svg</file>
+		<file alias="block_black_24dp.svg">resources/icons/block_black_24dp.svg</file>
+		<file alias="chat_black_24dp.svg">resources/icons/chat_black_24dp.svg</file>
+		<file alias="check_black_24dp.svg">resources/icons/check_black_24dp.svg</file>
+		<file alias="check_box_24dp.svg">resources/icons/check_box_24dp.svg</file>
+		<file alias="check_box_outline_blank_24dp.svg">resources/icons/check_box_outline_blank_24dp.svg</file>
+		<file alias="chevron_left_black_24dp.svg">resources/icons/chevron_left_black_24dp.svg</file>
+		<file alias="close_fullscreen_24dp.svg">resources/icons/close_fullscreen_24dp.svg</file>
+		<file alias="close_white_24dp.svg">resources/icons/close_white_24dp.svg</file>
+		<file alias="content_copy_24dp.svg">resources/icons/content_copy_24dp.svg</file>
+		<file alias="cross_black_24dp.svg">resources/icons/cross_black_24dp.svg</file>
+		<file alias="delete_24dp.svg">resources/icons/delete_24dp.svg</file>
+		<file alias="delete_forever_24dp.svg">resources/icons/delete_forever_24dp.svg</file>
+		<file alias="devices_24dp.svg">resources/icons/devices_24dp.svg</file>
+		<file alias="done_white_24dp.svg">resources/icons/done_white_24dp.svg</file>
+		<file alias="drafts_24dp.svg">resources/icons/drafts_24dp.svg</file>
+		<file alias="emoji_black_24dp.svg">resources/icons/emoji_black_24dp.svg</file>
+		<file alias="expand_less_24dp.svg">resources/icons/expand_less_24dp.svg</file>
+		<file alias="expand_more_24dp.svg">resources/icons/expand_more_24dp.svg</file>
+		<file alias="extension_24dp.svg">resources/icons/extension_24dp.svg</file>
+		<file alias="fiber_manual_record_24dp.svg">resources/icons/fiber_manual_record_24dp.svg</file>
+		<file alias="file_black_24dp.svg">resources/icons/file_black_24dp.svg</file>
+		<file alias="gear_black_24dp.svg">resources/icons/gear_black_24dp.svg</file>
+		<file alias="groups_24dp.svg">resources/icons/groups_24dp.svg</file>
+		<file alias="group_add_24dp.svg">resources/icons/group_add_24dp.svg</file>
+		<file alias="ic_arrow_back_24dp.svg">resources/icons/ic_arrow_back_24dp.svg</file>
+		<file alias="ic_arrow_back_white_24dp.svg">resources/icons/ic_arrow_back_white_24dp.svg</file>
+		<file alias="ic_baseline_search_24dp.svg">resources/icons/ic_baseline_search_24dp.svg</file>
+		<file alias="ic_call_end_white_24dp.svg">resources/icons/ic_call_end_white_24dp.svg</file>
+		<file alias="ic_clear_24dp.svg">resources/icons/ic_clear_24dp.svg</file>
+		<file alias="ic_content_copy.svg">resources/icons/ic_content_copy.svg</file>
+		<file alias="ic_hangup_participant_24dp.svg">resources/icons/ic_hangup_participant_24dp.svg</file>
+		<file alias="ic_high_quality_24dp.svg">resources/icons/ic_high_quality_24dp.svg</file>
+		<file alias="ic_keypad.svg">resources/icons/ic_keypad.svg</file>
+		<file alias="ic_pause_white_100px.svg">resources/icons/ic_pause_white_100px.svg</file>
+		<file alias="ic_send_24dp.svg">resources/icons/ic_send_24dp.svg</file>
+		<file alias="ic_video_call_24dp.svg">resources/icons/ic_video_call_24dp.svg</file>
+		<file alias="info_24dp.svg">resources/icons/info_24dp.svg</file>
+		<file alias="insert_photo_24dp.svg">resources/icons/insert_photo_24dp.svg</file>
+		<file alias="link_black_24dp.svg">resources/icons/link_black_24dp.svg</file>
+		<file alias="media_black_24dp.svg">resources/icons/media_black_24dp.svg</file>
+		<file alias="message_audio_black_24dp.svg">resources/icons/message_audio_black_24dp.svg</file>
+		<file alias="message_video_black_24dp.svg">resources/icons/message_video_black_24dp.svg</file>
+		<file alias="mic_24dp.svg">resources/icons/mic_24dp.svg</file>
+		<file alias="mic_off_24dp.svg">resources/icons/mic_off_24dp.svg</file>
+		<file alias="moderator.svg">resources/icons/moderator.svg</file>
+		<file alias="more_vert_24dp.svg">resources/icons/more_vert_24dp.svg</file>
+		<file alias="mosaic_black_24dp.svg">resources/icons/mosaic_black_24dp.svg</file>
+		<file alias="open_in_full_24dp.svg">resources/icons/open_in_full_24dp.svg</file>
+		<file alias="outline_info_24dp.svg">resources/icons/outline_info_24dp.svg</file>
+		<file alias="pause_24dp.svg">resources/icons/pause_24dp.svg</file>
+		<file alias="pause_circle_outline_24dp.svg">resources/icons/pause_circle_outline_24dp.svg</file>
+		<file alias="person_24dp.svg">resources/icons/person_24dp.svg</file>
+		<file alias="phone_forwarded_24dp.svg">resources/icons/phone_forwarded_24dp.svg</file>
+		<file alias="phone_paused_24dp.svg">resources/icons/phone_paused_24dp.svg</file>
+		<file alias="place_audiocall_24dp.svg">resources/icons/place_audiocall_24dp.svg</file>
+		<file alias="play_circle_outline_24dp.svg">resources/icons/play_circle_outline_24dp.svg</file>
+		<file alias="plugins_24dp.svg">resources/icons/plugins_24dp.svg</file>
+		<file alias="plugin_settings_black_24dp.svg">resources/icons/plugin_settings_black_24dp.svg</file>
+		<file alias="qr_code_24dp.svg">resources/icons/qr_code_24dp.svg</file>
+		<file alias="record_black_24dp.svg">resources/icons/record_black_24dp.svg</file>
+		<file alias="re_record_24dp.svg">resources/icons/re_record_24dp.svg</file>
+		<file alias="round_add_24dp.svg">resources/icons/round_add_24dp.svg</file>
+		<file alias="round_add_a_photo_24dp.svg">resources/icons/round_add_a_photo_24dp.svg</file>
+		<file alias="round_arrow_drop_down_24dp.svg">resources/icons/round_arrow_drop_down_24dp.svg</file>
+		<file alias="round_arrow_drop_up_24dp.svg">resources/icons/round_arrow_drop_up_24dp.svg</file>
+		<file alias="round_arrow_right_24dp.svg">resources/icons/round_arrow_right_24dp.svg</file>
+		<file alias="round_check_circle_24dp.svg">resources/icons/round_check_circle_24dp.svg</file>
+		<file alias="round_close_24dp.svg">resources/icons/round_close_24dp.svg</file>
+		<file alias="round_edit_24dp.svg">resources/icons/round_edit_24dp.svg</file>
+		<file alias="round_error_24dp.svg">resources/icons/round_error_24dp.svg</file>
+		<file alias="round_folder_24dp.svg">resources/icons/round_folder_24dp.svg</file>
+		<file alias="round_remove_circle_24dp.svg">resources/icons/round_remove_circle_24dp.svg</file>
+		<file alias="round_save_alt_24dp.svg">resources/icons/round_save_alt_24dp.svg</file>
+		<file alias="round_settings_24dp.svg">resources/icons/round_settings_24dp.svg</file>
+		<file alias="round_undo_24dp.svg">resources/icons/round_undo_24dp.svg</file>
+		<file alias="router_24dp.svg">resources/icons/router_24dp.svg</file>
+		<file alias="send_24dp.svg">resources/icons/send_24dp.svg</file>
+		<file alias="send_black_24dp.svg">resources/icons/send_black_24dp.svg</file>
+		<file alias="settings_24dp.svg">resources/icons/settings_24dp.svg</file>
+		<file alias="settings_backup_restore_24dp.svg">resources/icons/settings_backup_restore_24dp.svg</file>
+		<file alias="settings_backup_restore_black_18dp.svg">resources/icons/settings_backup_restore_black_18dp.svg</file>
+		<file alias="share_24dp.svg">resources/icons/share_24dp.svg</file>
+		<file alias="share_screen_black_24dp.svg">resources/icons/share_screen_black_24dp.svg</file>
+		<file alias="share_stop_black_24dp.svg">resources/icons/share_stop_black_24dp.svg</file>
+		<file alias="spk_black_24dp.svg">resources/icons/spk_black_24dp.svg</file>
+		<file alias="spk_none_black_24dp.svg">resources/icons/spk_none_black_24dp.svg</file>
+		<file alias="star_outline_24dp.svg">resources/icons/star_outline_24dp.svg</file>
+		<file alias="stop_24dp.svg">resources/icons/stop_24dp.svg</file>
+		<file alias="stop_24dp_red.svg">resources/icons/stop_24dp_red.svg</file>
+		<file alias="videocam_24dp.svg">resources/icons/videocam_24dp.svg</file>
+		<file alias="videocam_off_24dp.svg">resources/icons/videocam_off_24dp.svg</file>
+	</qresource>
+	<qresource prefix="/images">
+		<file alias="default_avatar_overlay.svg">resources/images/default_avatar_overlay.svg</file>
+		<file alias="jami-32px.xpm">resources/images/jami-32px.xpm</file>
+		<file alias="jami-48px.png">resources/images/jami-48px.png</file>
+		<file alias="jami-new.svg">resources/images/jami-new.svg</file>
+		<file alias="jami.ico">resources/images/jami.ico</file>
+		<file alias="jami.svg">resources/images/jami.svg</file>
+		<file alias="jami_eclipse_spinner.gif">resources/images/jami_eclipse_spinner.gif</file>
+		<file alias="jami_rolling_spinner.gif">resources/images/jami_rolling_spinner.gif</file>
+		<file alias="logo-jami-standard-coul-white.svg">resources/images/logo-jami-standard-coul-white.svg</file>
+		<file alias="logo-jami-standard-coul.svg">resources/images/logo-jami-standard-coul.svg</file>
+		<file alias="quote.svg">resources/images/quote.svg</file>
+	</qresource>
+	<qresource prefix="/misc">
+		<file alias="projectcredits.html">resources/misc/projectcredits.html</file>
+	</qresource>
+</RCC>
\ No newline at end of file
diff --git a/images/FontAwesome.otf b/resources/fonts/FontAwesome.otf
similarity index 100%
rename from images/FontAwesome.otf
rename to resources/fonts/FontAwesome.otf
diff --git a/images/icons/account_black-24dp.svg b/resources/icons/account_24dp.svg
similarity index 100%
rename from images/icons/account_black-24dp.svg
rename to resources/icons/account_24dp.svg
diff --git a/images/icons/add_people-24px.svg b/resources/icons/add_people_24dp.svg
similarity index 96%
rename from images/icons/add_people-24px.svg
rename to resources/icons/add_people_24dp.svg
index 536065ad93f67093d5547c68495741666e23472d..d108ce122124b0a301bd7a90ecc97faf729c811f 100644
--- a/images/icons/add_people-24px.svg
+++ b/resources/icons/add_people_24dp.svg
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     <title>Add people</title>
     <g id="Icones_Outline" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="Add-people" fill="#000000" fill-rule="nonzero" stroke="#000000" stroke-width="0.5">
diff --git a/images/icons/add_people_black_24dp.svg b/resources/icons/add_people_black_24dp.svg
similarity index 100%
rename from images/icons/add_people_black_24dp.svg
rename to resources/icons/add_people_black_24dp.svg
diff --git a/images/icons/arrow_drop_down-24px.svg b/resources/icons/arrow_drop_down_24dp.svg
similarity index 100%
rename from images/icons/arrow_drop_down-24px.svg
rename to resources/icons/arrow_drop_down_24dp.svg
diff --git a/images/icons/arrow_drop_up-24px.svg b/resources/icons/arrow_drop_up_24dp.svg
similarity index 100%
rename from images/icons/arrow_drop_up-24px.svg
rename to resources/icons/arrow_drop_up_24dp.svg
diff --git a/images/icons/ic_arrow_back_24px.svg b/resources/icons/back_24dp.svg
similarity index 87%
rename from images/icons/ic_arrow_back_24px.svg
rename to resources/icons/back_24dp.svg
index 7dfac6569cca98214b728f3e10b071ff4b943af3..67bc868f5cd9e0c4dd1ae4dd807b0712ee55f15e 100644
--- a/images/icons/ic_arrow_back_24px.svg
+++ b/resources/icons/back_24dp.svg
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     <title>Arrow Left</title>
     <g id="Icones" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="&lt;-" fill="#000000" transform="translate(2.000000, 5.000000)">
diff --git a/images/icons/backup-24px.svg b/resources/icons/backup_24dp.svg
similarity index 100%
rename from images/icons/backup-24px.svg
rename to resources/icons/backup_24dp.svg
diff --git a/images/icons/baseline-camera_alt-24px.svg b/resources/icons/baseline_camera_alt_24dp.svg
similarity index 100%
rename from images/icons/baseline-camera_alt-24px.svg
rename to resources/icons/baseline_camera_alt_24dp.svg
diff --git a/images/icons/baseline-close-24px.svg b/resources/icons/baseline_close_24dp.svg
similarity index 100%
rename from images/icons/baseline-close-24px.svg
rename to resources/icons/baseline_close_24dp.svg
diff --git a/images/icons/baseline-desktop_windows-24px.svg b/resources/icons/baseline_desktop_windows_24dp.svg
similarity index 100%
rename from images/icons/baseline-desktop_windows-24px.svg
rename to resources/icons/baseline_desktop_windows_24dp.svg
diff --git a/images/icons/baseline-done-24px.svg b/resources/icons/baseline_done_24dp.svg
similarity index 100%
rename from images/icons/baseline-done-24px.svg
rename to resources/icons/baseline_done_24dp.svg
diff --git a/images/icons/baseline-error_outline-24px.svg b/resources/icons/baseline_error_outline_24dp.svg
similarity index 100%
rename from images/icons/baseline-error_outline-24px.svg
rename to resources/icons/baseline_error_outline_24dp.svg
diff --git a/images/icons/block_black-24dp.svg b/resources/icons/block_black_24dp.svg
similarity index 100%
rename from images/icons/block_black-24dp.svg
rename to resources/icons/block_black_24dp.svg
diff --git a/images/icons/chat_black_24dp.svg b/resources/icons/chat_black_24dp.svg
similarity index 100%
rename from images/icons/chat_black_24dp.svg
rename to resources/icons/chat_black_24dp.svg
diff --git a/images/icons/check_black-24dp.svg b/resources/icons/check_black_24dp.svg
similarity index 100%
rename from images/icons/check_black-24dp.svg
rename to resources/icons/check_black_24dp.svg
diff --git a/images/icons/check_box-24px.svg b/resources/icons/check_box_24dp.svg
similarity index 100%
rename from images/icons/check_box-24px.svg
rename to resources/icons/check_box_24dp.svg
diff --git a/images/icons/check_box_outline_blank-24px.svg b/resources/icons/check_box_outline_blank_24dp.svg
similarity index 100%
rename from images/icons/check_box_outline_blank-24px.svg
rename to resources/icons/check_box_outline_blank_24dp.svg
diff --git a/resources/icons/chevron_left_black_24dp.svg b/resources/icons/chevron_left_black_24dp.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5eedff5741123617a6df34827e10b3cae387b970
--- /dev/null
+++ b/resources/icons/chevron_left_black_24dp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
\ No newline at end of file
diff --git a/images/icons/close_fullscreen-24px.svg b/resources/icons/close_fullscreen_24dp.svg
similarity index 95%
rename from images/icons/close_fullscreen-24px.svg
rename to resources/icons/close_fullscreen_24dp.svg
index 283edad30732f0c4fa40140967f15ce0eaf58fea..58c109d090a41dbde334561f300de2a1fe015235 100644
--- a/images/icons/close_fullscreen-24px.svg
+++ b/resources/icons/close_fullscreen_24dp.svg
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     <title>Reduce Screen</title>
     <g id="Icones" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="Reduce-Screen" fill="#000000" fill-rule="nonzero">
diff --git a/images/icons/close-white-24dp.svg b/resources/icons/close_white_24dp.svg
similarity index 100%
rename from images/icons/close-white-24dp.svg
rename to resources/icons/close_white_24dp.svg
diff --git a/images/icons/content_copy-24px.svg b/resources/icons/content_copy_24dp.svg
similarity index 100%
rename from images/icons/content_copy-24px.svg
rename to resources/icons/content_copy_24dp.svg
diff --git a/images/icons/cross_black_24dp.svg b/resources/icons/cross_black_24dp.svg
similarity index 100%
rename from images/icons/cross_black_24dp.svg
rename to resources/icons/cross_black_24dp.svg
diff --git a/images/icons/av_icons/delete-24px.svg b/resources/icons/delete_24dp.svg
similarity index 100%
rename from images/icons/av_icons/delete-24px.svg
rename to resources/icons/delete_24dp.svg
diff --git a/images/icons/delete_forever-24px.svg b/resources/icons/delete_forever_24dp.svg
similarity index 100%
rename from images/icons/delete_forever-24px.svg
rename to resources/icons/delete_forever_24dp.svg
diff --git a/images/icons/devices-24px.svg b/resources/icons/devices_24dp.svg
similarity index 100%
rename from images/icons/devices-24px.svg
rename to resources/icons/devices_24dp.svg
diff --git a/images/icons/done-white-24dp.svg b/resources/icons/done_white_24dp.svg
similarity index 100%
rename from images/icons/done-white-24dp.svg
rename to resources/icons/done_white_24dp.svg
diff --git a/images/icons/drafts-24px.svg b/resources/icons/drafts_24dp.svg
similarity index 100%
rename from images/icons/drafts-24px.svg
rename to resources/icons/drafts_24dp.svg
diff --git a/images/icons/emoji_black-24dp.svg b/resources/icons/emoji_black_24dp.svg
similarity index 100%
rename from images/icons/emoji_black-24dp.svg
rename to resources/icons/emoji_black_24dp.svg
diff --git a/images/icons/expand_less-24px.svg b/resources/icons/expand_less_24dp.svg
similarity index 100%
rename from images/icons/expand_less-24px.svg
rename to resources/icons/expand_less_24dp.svg
diff --git a/images/icons/expand_more-24px.svg b/resources/icons/expand_more_24dp.svg
similarity index 100%
rename from images/icons/expand_more-24px.svg
rename to resources/icons/expand_more_24dp.svg
diff --git a/images/icons/extension_24dp.svg b/resources/icons/extension_24dp.svg
similarity index 100%
rename from images/icons/extension_24dp.svg
rename to resources/icons/extension_24dp.svg
diff --git a/images/icons/av_icons/fiber_manual_record-24px.svg b/resources/icons/fiber_manual_record_24dp.svg
similarity index 100%
rename from images/icons/av_icons/fiber_manual_record-24px.svg
rename to resources/icons/fiber_manual_record_24dp.svg
diff --git a/images/icons/file_black-24dp.svg b/resources/icons/file_black_24dp.svg
similarity index 100%
rename from images/icons/file_black-24dp.svg
rename to resources/icons/file_black_24dp.svg
diff --git a/images/icons/gear_black-24dp.svg b/resources/icons/gear_black_24dp.svg
similarity index 100%
rename from images/icons/gear_black-24dp.svg
rename to resources/icons/gear_black_24dp.svg
diff --git a/images/icons/group_add-24px.svg b/resources/icons/group_add_24dp.svg
similarity index 100%
rename from images/icons/group_add-24px.svg
rename to resources/icons/group_add_24dp.svg
diff --git a/images/icons/groups-24px.svg b/resources/icons/groups_24dp.svg
similarity index 100%
rename from images/icons/groups-24px.svg
rename to resources/icons/groups_24dp.svg
diff --git a/images/icons/back-24px.svg b/resources/icons/ic_arrow_back_24dp.svg
similarity index 100%
rename from images/icons/back-24px.svg
rename to resources/icons/ic_arrow_back_24dp.svg
diff --git a/images/icons/ic_arrow_back_white_24dp.svg b/resources/icons/ic_arrow_back_white_24dp.svg
similarity index 100%
rename from images/icons/ic_arrow_back_white_24dp.svg
rename to resources/icons/ic_arrow_back_white_24dp.svg
diff --git a/images/icons/ic_baseline-search-24px.svg b/resources/icons/ic_baseline_search_24dp.svg
similarity index 100%
rename from images/icons/ic_baseline-search-24px.svg
rename to resources/icons/ic_baseline_search_24dp.svg
diff --git a/images/icons/ic_call_end_white_24px.svg b/resources/icons/ic_call_end_white_24dp.svg
similarity index 100%
rename from images/icons/ic_call_end_white_24px.svg
rename to resources/icons/ic_call_end_white_24dp.svg
diff --git a/images/icons/ic_clear_24px.svg b/resources/icons/ic_clear_24dp.svg
similarity index 100%
rename from images/icons/ic_clear_24px.svg
rename to resources/icons/ic_clear_24dp.svg
diff --git a/images/icons/ic_content_copy.svg b/resources/icons/ic_content_copy.svg
similarity index 100%
rename from images/icons/ic_content_copy.svg
rename to resources/icons/ic_content_copy.svg
diff --git a/images/icons/ic_hangup_participant-24px.svg b/resources/icons/ic_hangup_participant_24dp.svg
similarity index 100%
rename from images/icons/ic_hangup_participant-24px.svg
rename to resources/icons/ic_hangup_participant_24dp.svg
diff --git a/images/icons/ic_high_quality_24px.svg b/resources/icons/ic_high_quality_24dp.svg
similarity index 100%
rename from images/icons/ic_high_quality_24px.svg
rename to resources/icons/ic_high_quality_24dp.svg
diff --git a/images/icons/ic_keypad.svg b/resources/icons/ic_keypad.svg
similarity index 100%
rename from images/icons/ic_keypad.svg
rename to resources/icons/ic_keypad.svg
diff --git a/images/icons/ic_pause_white_100px.svg b/resources/icons/ic_pause_white_100px.svg
similarity index 100%
rename from images/icons/ic_pause_white_100px.svg
rename to resources/icons/ic_pause_white_100px.svg
diff --git a/images/icons/ic_send_24px.svg b/resources/icons/ic_send_24dp.svg
similarity index 100%
rename from images/icons/ic_send_24px.svg
rename to resources/icons/ic_send_24dp.svg
diff --git a/images/icons/ic_video_call_24px.svg b/resources/icons/ic_video_call_24dp.svg
similarity index 100%
rename from images/icons/ic_video_call_24px.svg
rename to resources/icons/ic_video_call_24dp.svg
diff --git a/images/icons/info-24px.svg b/resources/icons/info_24dp.svg
similarity index 100%
rename from images/icons/info-24px.svg
rename to resources/icons/info_24dp.svg
diff --git a/images/icons/insert_photo-24px.svg b/resources/icons/insert_photo_24dp.svg
similarity index 100%
rename from images/icons/insert_photo-24px.svg
rename to resources/icons/insert_photo_24dp.svg
diff --git a/images/icons/link_black-24dp.svg b/resources/icons/link_black_24dp.svg
similarity index 100%
rename from images/icons/link_black-24dp.svg
rename to resources/icons/link_black_24dp.svg
diff --git a/images/icons/media_black-24dp.svg b/resources/icons/media_black_24dp.svg
similarity index 100%
rename from images/icons/media_black-24dp.svg
rename to resources/icons/media_black_24dp.svg
diff --git a/images/icons/message_audio_black-24dp.svg b/resources/icons/message_audio_black_24dp.svg
similarity index 100%
rename from images/icons/message_audio_black-24dp.svg
rename to resources/icons/message_audio_black_24dp.svg
diff --git a/images/icons/message_video_black-24dp.svg b/resources/icons/message_video_black_24dp.svg
similarity index 100%
rename from images/icons/message_video_black-24dp.svg
rename to resources/icons/message_video_black_24dp.svg
diff --git a/images/icons/av_icons/mic-24px.svg b/resources/icons/mic_24dp.svg
similarity index 100%
rename from images/icons/av_icons/mic-24px.svg
rename to resources/icons/mic_24dp.svg
diff --git a/images/icons/mic_off-24px.svg b/resources/icons/mic_off_24dp.svg
similarity index 100%
rename from images/icons/mic_off-24px.svg
rename to resources/icons/mic_off_24dp.svg
diff --git a/images/icons/moderator.svg b/resources/icons/moderator.svg
similarity index 100%
rename from images/icons/moderator.svg
rename to resources/icons/moderator.svg
diff --git a/images/icons/more_vert-24dp.svg b/resources/icons/more_vert_24dp.svg
similarity index 100%
rename from images/icons/more_vert-24dp.svg
rename to resources/icons/more_vert_24dp.svg
diff --git a/images/icons/mosaic_black_24dp.svg b/resources/icons/mosaic_black_24dp.svg
similarity index 100%
rename from images/icons/mosaic_black_24dp.svg
rename to resources/icons/mosaic_black_24dp.svg
diff --git a/images/icons/open_in_full-24px.svg b/resources/icons/open_in_full_24dp.svg
similarity index 100%
rename from images/icons/open_in_full-24px.svg
rename to resources/icons/open_in_full_24dp.svg
diff --git a/images/icons/outline-info-24px.svg b/resources/icons/outline_info_24dp.svg
similarity index 100%
rename from images/icons/outline-info-24px.svg
rename to resources/icons/outline_info_24dp.svg
diff --git a/images/icons/av_icons/pause-24px.svg b/resources/icons/pause_24dp.svg
similarity index 100%
rename from images/icons/av_icons/pause-24px.svg
rename to resources/icons/pause_24dp.svg
diff --git a/images/icons/pause_circle_outline-24px.svg b/resources/icons/pause_circle_outline_24dp.svg
similarity index 100%
rename from images/icons/pause_circle_outline-24px.svg
rename to resources/icons/pause_circle_outline_24dp.svg
diff --git a/images/icons/person-24px.svg b/resources/icons/person_24dp.svg
similarity index 100%
rename from images/icons/person-24px.svg
rename to resources/icons/person_24dp.svg
diff --git a/images/icons/phone_forwarded-24px.svg b/resources/icons/phone_forwarded_24dp.svg
similarity index 100%
rename from images/icons/phone_forwarded-24px.svg
rename to resources/icons/phone_forwarded_24dp.svg
diff --git a/images/icons/phone_paused-24px.svg b/resources/icons/phone_paused_24dp.svg
similarity index 100%
rename from images/icons/phone_paused-24px.svg
rename to resources/icons/phone_paused_24dp.svg
diff --git a/images/icons/place_audiocall-24px.svg b/resources/icons/place_audiocall_24dp.svg
similarity index 100%
rename from images/icons/place_audiocall-24px.svg
rename to resources/icons/place_audiocall_24dp.svg
diff --git a/images/icons/av_icons/play_circle_outline-24px.svg b/resources/icons/play_circle_outline_24dp.svg
similarity index 100%
rename from images/icons/av_icons/play_circle_outline-24px.svg
rename to resources/icons/play_circle_outline_24dp.svg
diff --git a/images/icons/plugin_settings_black-24dp.svg b/resources/icons/plugin_settings_black_24dp.svg
similarity index 100%
rename from images/icons/plugin_settings_black-24dp.svg
rename to resources/icons/plugin_settings_black_24dp.svg
diff --git a/images/icons/plugins-24px.svg b/resources/icons/plugins_24dp.svg
similarity index 100%
rename from images/icons/plugins-24px.svg
rename to resources/icons/plugins_24dp.svg
diff --git a/images/icons/qr_code-24px.svg b/resources/icons/qr_code_24dp.svg
similarity index 100%
rename from images/icons/qr_code-24px.svg
rename to resources/icons/qr_code_24dp.svg
diff --git a/images/icons/av_icons/re-record-24px.svg b/resources/icons/re_record_24dp.svg
similarity index 100%
rename from images/icons/av_icons/re-record-24px.svg
rename to resources/icons/re_record_24dp.svg
diff --git a/images/icons/record_black_24dp.svg b/resources/icons/record_black_24dp.svg
similarity index 100%
rename from images/icons/record_black_24dp.svg
rename to resources/icons/record_black_24dp.svg
diff --git a/images/icons/round-add-24px.svg b/resources/icons/round_add_24dp.svg
similarity index 100%
rename from images/icons/round-add-24px.svg
rename to resources/icons/round_add_24dp.svg
diff --git a/images/icons/round-add_a_photo-24px.svg b/resources/icons/round_add_a_photo_24dp.svg
similarity index 100%
rename from images/icons/round-add_a_photo-24px.svg
rename to resources/icons/round_add_a_photo_24dp.svg
diff --git a/images/icons/round-arrow_drop_down-24px.svg b/resources/icons/round_arrow_drop_down_24dp.svg
similarity index 100%
rename from images/icons/round-arrow_drop_down-24px.svg
rename to resources/icons/round_arrow_drop_down_24dp.svg
diff --git a/images/icons/round-arrow_drop_up-24px.svg b/resources/icons/round_arrow_drop_up_24dp.svg
similarity index 100%
rename from images/icons/round-arrow_drop_up-24px.svg
rename to resources/icons/round_arrow_drop_up_24dp.svg
diff --git a/images/icons/round-arrow_right-24px.svg b/resources/icons/round_arrow_right_24dp.svg
similarity index 100%
rename from images/icons/round-arrow_right-24px.svg
rename to resources/icons/round_arrow_right_24dp.svg
diff --git a/images/icons/round-check_circle-24px.svg b/resources/icons/round_check_circle_24dp.svg
similarity index 100%
rename from images/icons/round-check_circle-24px.svg
rename to resources/icons/round_check_circle_24dp.svg
diff --git a/images/icons/round-close-24px.svg b/resources/icons/round_close_24dp.svg
similarity index 100%
rename from images/icons/round-close-24px.svg
rename to resources/icons/round_close_24dp.svg
diff --git a/images/icons/round-edit-24px.svg b/resources/icons/round_edit_24dp.svg
similarity index 100%
rename from images/icons/round-edit-24px.svg
rename to resources/icons/round_edit_24dp.svg
diff --git a/images/icons/round-error-24px.svg b/resources/icons/round_error_24dp.svg
similarity index 100%
rename from images/icons/round-error-24px.svg
rename to resources/icons/round_error_24dp.svg
diff --git a/images/icons/round-folder-24px.svg b/resources/icons/round_folder_24dp.svg
similarity index 100%
rename from images/icons/round-folder-24px.svg
rename to resources/icons/round_folder_24dp.svg
diff --git a/images/icons/round-remove_circle-24px.svg b/resources/icons/round_remove_circle_24dp.svg
similarity index 100%
rename from images/icons/round-remove_circle-24px.svg
rename to resources/icons/round_remove_circle_24dp.svg
diff --git a/images/icons/round-save_alt-24px.svg b/resources/icons/round_save_alt_24dp.svg
similarity index 100%
rename from images/icons/round-save_alt-24px.svg
rename to resources/icons/round_save_alt_24dp.svg
diff --git a/images/icons/round-settings-24px.svg b/resources/icons/round_settings_24dp.svg
similarity index 100%
rename from images/icons/round-settings-24px.svg
rename to resources/icons/round_settings_24dp.svg
diff --git a/images/icons/round-undo-24px.svg b/resources/icons/round_undo_24dp.svg
similarity index 100%
rename from images/icons/round-undo-24px.svg
rename to resources/icons/round_undo_24dp.svg
diff --git a/images/icons/router-24px.svg b/resources/icons/router_24dp.svg
similarity index 100%
rename from images/icons/router-24px.svg
rename to resources/icons/router_24dp.svg
diff --git a/images/icons/av_icons/send-24px.svg b/resources/icons/send_24dp.svg
similarity index 100%
rename from images/icons/av_icons/send-24px.svg
rename to resources/icons/send_24dp.svg
diff --git a/images/icons/send_black-24dp.svg b/resources/icons/send_black_24dp.svg
similarity index 100%
rename from images/icons/send_black-24dp.svg
rename to resources/icons/send_black_24dp.svg
diff --git a/images/icons/settings-24px.svg b/resources/icons/settings_24dp.svg
similarity index 100%
rename from images/icons/settings-24px.svg
rename to resources/icons/settings_24dp.svg
diff --git a/images/icons/settings_backup_restore-24px.svg b/resources/icons/settings_backup_restore_24dp.svg
similarity index 100%
rename from images/icons/settings_backup_restore-24px.svg
rename to resources/icons/settings_backup_restore_24dp.svg
diff --git a/images/icons/settings_backup_restore-black-18dp.svg b/resources/icons/settings_backup_restore_black_18dp.svg
similarity index 100%
rename from images/icons/settings_backup_restore-black-18dp.svg
rename to resources/icons/settings_backup_restore_black_18dp.svg
diff --git a/images/icons/share-24px.svg b/resources/icons/share_24dp.svg
similarity index 100%
rename from images/icons/share-24px.svg
rename to resources/icons/share_24dp.svg
diff --git a/images/icons/share_screen_black_24dp.svg b/resources/icons/share_screen_black_24dp.svg
similarity index 100%
rename from images/icons/share_screen_black_24dp.svg
rename to resources/icons/share_screen_black_24dp.svg
diff --git a/images/icons/share_stop_black_24dp.svg b/resources/icons/share_stop_black_24dp.svg
similarity index 100%
rename from images/icons/share_stop_black_24dp.svg
rename to resources/icons/share_stop_black_24dp.svg
diff --git a/images/icons/spk_black_24dp.svg b/resources/icons/spk_black_24dp.svg
similarity index 100%
rename from images/icons/spk_black_24dp.svg
rename to resources/icons/spk_black_24dp.svg
diff --git a/images/icons/spk_none_black_24dp.svg b/resources/icons/spk_none_black_24dp.svg
similarity index 100%
rename from images/icons/spk_none_black_24dp.svg
rename to resources/icons/spk_none_black_24dp.svg
diff --git a/images/icons/star_outline-24px.svg b/resources/icons/star_outline_24dp.svg
similarity index 100%
rename from images/icons/star_outline-24px.svg
rename to resources/icons/star_outline_24dp.svg
diff --git a/images/icons/av_icons/stop-24px.svg b/resources/icons/stop_24dp.svg
similarity index 100%
rename from images/icons/av_icons/stop-24px.svg
rename to resources/icons/stop_24dp.svg
diff --git a/images/icons/av_icons/stop-24px-red.svg b/resources/icons/stop_24dp_red.svg
similarity index 100%
rename from images/icons/av_icons/stop-24px-red.svg
rename to resources/icons/stop_24dp_red.svg
diff --git a/images/icons/videocam-24px.svg b/resources/icons/videocam_24dp.svg
similarity index 100%
rename from images/icons/videocam-24px.svg
rename to resources/icons/videocam_24dp.svg
diff --git a/images/icons/videocam_off-24px.svg b/resources/icons/videocam_off_24dp.svg
similarity index 100%
rename from images/icons/videocam_off-24px.svg
rename to resources/icons/videocam_off_24dp.svg
diff --git a/images/default_avatar_overlay.svg b/resources/images/default_avatar_overlay.svg
similarity index 100%
rename from images/default_avatar_overlay.svg
rename to resources/images/default_avatar_overlay.svg
diff --git a/images/jami-32px.xpm b/resources/images/jami-32px.xpm
similarity index 100%
rename from images/jami-32px.xpm
rename to resources/images/jami-32px.xpm
diff --git a/images/jami-48px.png b/resources/images/jami-48px.png
similarity index 100%
rename from images/jami-48px.png
rename to resources/images/jami-48px.png
diff --git a/images/jami-new.svg b/resources/images/jami-new.svg
similarity index 100%
rename from images/jami-new.svg
rename to resources/images/jami-new.svg
diff --git a/images/jami.ico b/resources/images/jami.ico
similarity index 100%
rename from images/jami.ico
rename to resources/images/jami.ico
diff --git a/images/jami.svg b/resources/images/jami.svg
similarity index 100%
rename from images/jami.svg
rename to resources/images/jami.svg
diff --git a/images/jami_eclipse_spinner.gif b/resources/images/jami_eclipse_spinner.gif
similarity index 100%
rename from images/jami_eclipse_spinner.gif
rename to resources/images/jami_eclipse_spinner.gif
diff --git a/images/jami_rolling_spinner.gif b/resources/images/jami_rolling_spinner.gif
similarity index 100%
rename from images/jami_rolling_spinner.gif
rename to resources/images/jami_rolling_spinner.gif
diff --git a/images/logo-jami-standard-coul-white.svg b/resources/images/logo-jami-standard-coul-white.svg
similarity index 100%
rename from images/logo-jami-standard-coul-white.svg
rename to resources/images/logo-jami-standard-coul-white.svg
diff --git a/images/logo-jami-standard-coul.svg b/resources/images/logo-jami-standard-coul.svg
similarity index 100%
rename from images/logo-jami-standard-coul.svg
rename to resources/images/logo-jami-standard-coul.svg
diff --git a/images/icons/quote.svg b/resources/images/quote.svg
similarity index 100%
rename from images/icons/quote.svg
rename to resources/images/quote.svg
diff --git a/projectcredits.html b/resources/misc/projectcredits.html
similarity index 100%
rename from projectcredits.html
rename to resources/misc/projectcredits.html
diff --git a/src/DaemonReconnectWindow.qml b/src/DaemonReconnectWindow.qml
index fa1eb907c5542df49e8cea9e8fd317c573e43f06..b017a42268b68f7bedcafbad4f76143e42cc9844 100644
--- a/src/DaemonReconnectWindow.qml
+++ b/src/DaemonReconnectWindow.qml
@@ -23,8 +23,7 @@ import QtQuick.Layouts 1.14
 import QtQuick.Controls.Universal 2.14
 import QtGraphicalEffects 1.14
 
-// Should not import anything other than this
-// to make sure that it is self-dependent
+import net.jami.Constants 1.0
 import net.jami.Models 1.0
 
 import "commoncomponents"
@@ -62,7 +61,7 @@ ApplicationWindow {
 
         anchors.fill: parent
 
-        source: "qrc:/images/logo-jami-standard-coul.svg"
+        source: JamiResources.logo_jami_standard_coul_svg
     }
 
     Popup {
@@ -115,7 +114,7 @@ ApplicationWindow {
 
                     visible: !connectionFailed
 
-                    source: "qrc:/images/jami_rolling_spinner.gif"
+                    source: JamiResources.jami_rolling_spinner_gif
 
                     playing: true
                     paused: false
diff --git a/src/commoncomponents/AccountMigrationDialog.qml b/src/commoncomponents/AccountMigrationDialog.qml
index 67ae6920b5423d4ce22e5f6f783f5ebb40b02f11..733358c1aa409bac70162269360532b83a8fff8f 100644
--- a/src/commoncomponents/AccountMigrationDialog.qml
+++ b/src/commoncomponents/AccountMigrationDialog.qml
@@ -510,21 +510,20 @@ Window {
                                 switch (spinnerDisplyState) {
                                 case "spinnerLabel_Regular":
                                     background = Qt.createQmlObject("import QtQuick 2.14;
+                                                                        import \"qrc:/src/constant/\";
                                                                         AnimatedImage {
-                                                                        source: \"qrc:/images/jami_eclipse_spinner.gif\"
-
+                                                                        source: JamiResources.jami_eclipse_spinner_gif
                                                                         playing: true
                                                                         paused: false
                                                                         fillMode: Image.PreserveAspectFit
-                                                                        mipmap: true
-                                                                        }", spinnerLabel)
+                                                                        mipmap: true}", spinnerLabel)
                                     break
                                 case "spinnerLabel_Failure":
                                     background = Qt.createQmlObject("import QtQuick 2.14;
                                                                         import \"qrc:/src/constant/\";
                                                                         Image {
                                                                         anchors.fill: parent;
-                                                                        source:\"image://tintedPixmap/\" + (\"qrc:/images/icons/baseline-error_outline-24px.svg\").replace(\"qrc:/images/icons/\", \"\") + \"+\" + JamiTheme.urgentOrange_;
+                                                                        source: JamiResources.baseline_error_outline_24dp_svg;
                                                                         mipmap: true;}", spinnerLabel)
                                     break
                                 }
diff --git a/src/commoncomponents/DaemonReconnectPopup.qml b/src/commoncomponents/DaemonReconnectPopup.qml
index 9520e3a211ff4a6fede84d6ec656209eca26c8bb..640b2bc937519e20cc4ca1ee268afc5675385e62 100644
--- a/src/commoncomponents/DaemonReconnectPopup.qml
+++ b/src/commoncomponents/DaemonReconnectPopup.qml
@@ -20,8 +20,8 @@ import QtQuick 2.14
 import QtQuick.Controls 2.14
 import QtQuick.Layouts 1.14
 
-import net.jami.Models 1.0
 import net.jami.Constants 1.0
+import net.jami.Models 1.0
 
 ModalPopup {
     id: root
@@ -72,7 +72,7 @@ ModalPopup {
 
                 visible: !connectionFailed
 
-                source: "qrc:/images/jami_rolling_spinner.gif";
+                source: JamiResources.jami_rolling_spinner_gif
 
                 playing: true
                 paused: false
diff --git a/src/commoncomponents/LookupStatusLabel.qml b/src/commoncomponents/LookupStatusLabel.qml
deleted file mode 100644
index 5cc64d2135f5bc22418f0fefd04f3b1c22e466f7..0000000000000000000000000000000000000000
--- a/src/commoncomponents/LookupStatusLabel.qml
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2019-2020 by Savoir-faire Linux
- * Author: Yang Wang   <yang.wang@savoirfairelinux.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.14
-import QtQuick.Layouts 1.14
-import QtQuick.Controls 2.14
-
-import net.jami.Constants 1.0
-
-Label {
-    id: lookupStatusLabel
-
-    property int labelWidth : 30
-    property int labelHeight : 30
-
-    Layout.maximumWidth: labelWidth
-    Layout.preferredWidth: labelWidth
-    Layout.minimumWidth: labelWidth
-
-    Layout.maximumHeight: labelHeight
-    Layout.preferredHeight: labelHeight
-    Layout.minimumHeight: labelHeight
-
-    property string lookupStatusState: "Blank"
-
-    // whenever look up status state change, the backgroud weill be set to a cooresponding choice
-    onLookupStatusStateChanged: {
-        switch (lookupStatusState) {
-        case "Blank":
-            background = Qt.createQmlObject(
-                        "import QtQuick 2.14; Rectangle { anchors.fill: parent; color: \"transparent\"; }",
-                        lookupStatusLabel)
-            break
-        case "Invalid":
-            background = Qt.createQmlObject("import QtQuick 2.14;
-import \"qrc:/src/constant/\";
-Rectangle {
-anchors.fill: parent;
-Image {
-anchors.fill: parent;
-source: \"image://tintedPixmap/\" + (\"qrc:/images/icons/baseline-error_outline-24px.svg\").replace(\"qrc:/images/icons/\",\"\") + \"+\" + JamiTheme.urgentOrange_;
-mipmap: true;
-}
-}", lookupStatusLabel)
-            break
-        case "Taken":
-            background = Qt.createQmlObject("import QtQuick 2.14;
-import \"qrc:/src/constant/\";
-Rectangle {
-anchors.fill: parent;
-Image{
-anchors.fill: parent;
-source: \"image://tintedPixmap/\" + (\"qrc:/images/icons/baseline-close-24px.svg\").replace(\"qrc:/images/icons/\",\"\") + \"+\" + JamiTheme.red_;
-mipmap: true;
-}
-}", lookupStatusLabel)
-            break
-        case "Free":
-            background = Qt.createQmlObject("import QtQuick 2.14;
-import \"qrc:/src/constant/\";
-Rectangle {
-anchors.fill: parent;
-Image {
-anchors.fill: parent;
-source: \"image://tintedPixmap/\"+ (\"qrc:/images/icons/baseline-done-24px.svg\").replace(\"qrc:/images/icons/\",\"\") + \"+\" + JamiTheme.presenceGreen_;
-mipmap: true;
-}
-}", lookupStatusLabel)
-            break
-        case "Searching":
-            background = Qt.createQmlObject("import QtQuick 2.14;
-import \"qrc:/src/constant/\";
-Rectangle {
-anchors.fill: parent;
-AnimatedImage {
-anchors.fill: parent
-source: \"qrc:/images/jami_rolling_spinner.gif\";
-
-playing: true
-paused: false
-fillMode: Image.PreserveAspectFit
-mipmap: true
-}
-}", lookupStatusLabel)
-            break
-        }
-    }
-}
diff --git a/src/commoncomponents/MaterialLineEdit.qml b/src/commoncomponents/MaterialLineEdit.qml
index 45adb3047ff4e7095a64a6e9a9a251fa4b02c154..968529730612f5b39bc009239198d2ab485f8ad7 100644
--- a/src/commoncomponents/MaterialLineEdit.qml
+++ b/src/commoncomponents/MaterialLineEdit.qml
@@ -52,7 +52,7 @@ TextField {
 
         switch(borderColorMode){
         case MaterialLineEdit.SEARCHING:
-            iconSource = "qrc:/images/jami_rolling_spinner.gif"
+            iconSource = JamiResources.jami_rolling_spinner_gif
             borderColor = JamiTheme.greyBorderColor
             break
         case MaterialLineEdit.NORMAL:
@@ -60,11 +60,11 @@ TextField {
             borderColor = JamiTheme.greyBorderColor
             break
         case MaterialLineEdit.RIGHT:
-            iconSource = "qrc:/images/icons/round-check_circle-24px.svg"
+            iconSource = JamiResources.round_check_circle_24dp_svg
             borderColor = "green"
             break
         case MaterialLineEdit.ERROR:
-            iconSource = "qrc:/images/icons/round-error-24px.svg"
+            iconSource = JamiResources.round_error_24dp_svg
             borderColor = "red"
             break
         }
diff --git a/src/commoncomponents/PhotoboothView.qml b/src/commoncomponents/PhotoboothView.qml
index 6772e9884ae3e0392562f138532716f1f8e374a8..7f1b33412c94c32ffd4b8a22a3a825f17570f864 100644
--- a/src/commoncomponents/PhotoboothView.qml
+++ b/src/commoncomponents/PhotoboothView.qml
@@ -157,8 +157,8 @@ Item {
                 imageColor: JamiTheme.textColor
                 toolTipText: JamiStrings.takePhoto
                 source: isPreviewing ?
-                            "qrc:/images/icons/round-add_a_photo-24px.svg" :
-                            "qrc:/images/icons/baseline-camera_alt-24px.svg"
+                            JamiResources.round_add_a_photo_24dp_svg :
+                            JamiResources.baseline_camera_alt_24dp_svg
 
                 onClicked: {
                     if (isPreviewing) {
@@ -179,7 +179,7 @@ Item {
                 visible: LRCInstance.currentAccountAvatarSet
                 Layout.alignment: Qt.AlignHCenter
                 radius: JamiTheme.primaryRadius
-                source: "qrc:/images/icons/round-close-24px.svg"
+                source: JamiResources.round_close_24dp_svg
                 toolTipText: JamiStrings.clearAvatar
                 imageColor: JamiTheme.textColor
 
@@ -194,7 +194,7 @@ Item {
 
                 Layout.alignment: Qt.AlignHCenter
                 radius: JamiTheme.primaryRadius
-                source: "qrc:/images/icons/round-folder-24px.svg"
+                source: JamiResources.round_folder_24dp_svg
                 toolTipText: JamiStrings.importFromFile
                 imageColor: JamiTheme.textColor
 
diff --git a/src/commoncomponents/PreferenceItemDelegate.qml b/src/commoncomponents/PreferenceItemDelegate.qml
index d9af39b3e7be8cd461970e32c6a4b25f6e72b579..57b3ea9d1c71a785f2cc5f4395facb78933d84db 100644
--- a/src/commoncomponents/PreferenceItemDelegate.qml
+++ b/src/commoncomponents/PreferenceItemDelegate.qml
@@ -128,7 +128,7 @@ ItemDelegate {
             Layout.preferredHeight: preferredSize
             imageColor: JamiTheme.textColor
 
-            source: "qrc:/images/icons/round-settings-24px.svg"
+            source: JamiResources.round_settings_24dp_svg
 
             toolTipText: qsTr("Edit preference")
             opacity: enabled ? 1.0 : 0.5
@@ -180,7 +180,7 @@ ItemDelegate {
 
             text: UtilsAdapter.fileName(preferenceCurrentValue)
             toolTipText: JamiStrings.chooseImageFile
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             color: JamiTheme.buttonTintedGrey
             hoveredColor: JamiTheme.buttonTintedGreyHovered
             pressedColor: JamiTheme.buttonTintedGreyPressed
diff --git a/src/commoncomponents/SpinnerButton.qml b/src/commoncomponents/SpinnerButton.qml
index 05c7737fd0c7422afb58d375dce750bdd526f282..f0306a5e91eca07860f4ff1e33ef4ff4aa8fdf16 100644
--- a/src/commoncomponents/SpinnerButton.qml
+++ b/src/commoncomponents/SpinnerButton.qml
@@ -28,7 +28,9 @@ MaterialButton {
     property string spinnerTriggeredtext: value
     property string normalText: value
 
-    animatedImageSource: spinnerTriggered ? "qrc:/images/jami_rolling_spinner.gif" : ""
+    animatedImageSource: spinnerTriggered ?
+                             JamiResources.jami_rolling_spinner_gif :
+                             ""
     text: spinnerTriggered ? spinnerTriggeredtext : normalText
     color: !enabled ? JamiTheme.buttonTintedGreyInactive :
                       JamiTheme.wizardBlueButtons
diff --git a/src/commoncomponents/TintedButton.qml b/src/commoncomponents/TintedButton.qml
deleted file mode 100644
index fba4737d29ae607c557783e70e41b887e6331ede..0000000000000000000000000000000000000000
--- a/src/commoncomponents/TintedButton.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2020 by Savoir-faire Linux
- * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.14
-import QtQuick.Controls 2.14
-
-Button {
-    id: tintedButton
-
-
-    // TintColor, color for the pixmap when button is hovered.
-    property string tintColor: "white"
-
-
-    // NormalPixmapSource - icons in normal state (non-toggled).
-    // SelectedPixmapSource - icons once button is toggled.
-    property string normalPixmapSource: ""
-    property string selectedPixmapSource: ""
-
-
-    // IsSelected property is to help set button current state manually.
-    property bool isSelected: false
-
-
-    // ButtonEntered signal is to help call overlay change its opacity
-    signal buttonEntered
-
-    function setChecked(checked) {
-        isSelected = checked
-        if (isSelected) {
-            tintedButtonImage.source = selectedPixmapSource
-        } else {
-            tintedButtonImage.source = normalPixmapSource
-        }
-    }
-
-    hoverEnabled: true
-
-    background: Rectangle {
-        id: tintedButtonBackground
-
-        radius: 30
-        color: "transparent"
-
-        Image {
-            id: tintedButtonImage
-
-            anchors.centerIn: tintedButtonBackground
-
-            height: tintedButtonBackground.height - 10
-            width: tintedButtonBackground.width - 10
-
-            source: normalPixmapSource
-            fillMode: Image.PreserveAspectFit
-            mipmap: true
-            asynchronous: true
-        }
-
-        MouseArea {
-            anchors.fill: parent
-
-            hoverEnabled: true
-
-            onReleased: {
-                isSelected = !isSelected
-                if (isSelected) {
-                    tintedButtonImage.source = "image://tintedPixmap/"
-                            + selectedPixmapSource.replace(
-                                "qrc:/images/icons/", "") + "+" + tintColor
-                } else {
-                    tintedButtonImage.source = "image://tintedPixmap/" + normalPixmapSource.replace(
-                                "qrc:/images/icons/", "") + "+" + tintColor
-                }
-                tintedButton.clicked()
-            }
-            onEntered: {
-
-
-                // Tinted.
-                if (isSelected) {
-                    tintedButtonImage.source = "image://tintedPixmap/"
-                            + selectedPixmapSource.replace(
-                                "qrc:/images/icons/", "") + "+" + tintColor
-                } else {
-                    tintedButtonImage.source = "image://tintedPixmap/" + normalPixmapSource.replace(
-                                "qrc:/images/icons/", "") + "+" + tintColor
-                }
-                tintedButton.buttonEntered()
-            }
-            onExited: {
-                if (isSelected) {
-                    tintedButtonImage.source = selectedPixmapSource
-                } else {
-                    tintedButtonImage.source = normalPixmapSource
-                }
-            }
-        }
-    }
-}
diff --git a/src/constant/JamiResources.qml b/src/constant/JamiResources.qml
new file mode 100644
index 0000000000000000000000000000000000000000..52fc026dfad68f8359da767243f4fc218ef23306
--- /dev/null
+++ b/src/constant/JamiResources.qml
@@ -0,0 +1,118 @@
+pragma Singleton
+import QtQuick 2.14
+QtObject {
+    readonly property string account_24dp_svg: "qrc:/icons/account_24dp.svg"
+    readonly property string add_people_24dp_svg: "qrc:/icons/add_people_24dp.svg"
+    readonly property string add_people_black_24dp_svg: "qrc:/icons/add_people_black_24dp.svg"
+    readonly property string arrow_drop_down_24dp_svg: "qrc:/icons/arrow_drop_down_24dp.svg"
+    readonly property string arrow_drop_up_24dp_svg: "qrc:/icons/arrow_drop_up_24dp.svg"
+    readonly property string backup_24dp_svg: "qrc:/icons/backup_24dp.svg"
+    readonly property string back_24dp_svg: "qrc:/icons/back_24dp.svg"
+    readonly property string baseline_camera_alt_24dp_svg: "qrc:/icons/baseline_camera_alt_24dp.svg"
+    readonly property string baseline_close_24dp_svg: "qrc:/icons/baseline_close_24dp.svg"
+    readonly property string baseline_desktop_windows_24dp_svg: "qrc:/icons/baseline_desktop_windows_24dp.svg"
+    readonly property string baseline_done_24dp_svg: "qrc:/icons/baseline_done_24dp.svg"
+    readonly property string baseline_error_outline_24dp_svg: "qrc:/icons/baseline_error_outline_24dp.svg"
+    readonly property string block_black_24dp_svg: "qrc:/icons/block_black_24dp.svg"
+    readonly property string chat_black_24dp_svg: "qrc:/icons/chat_black_24dp.svg"
+    readonly property string check_black_24dp_svg: "qrc:/icons/check_black_24dp.svg"
+    readonly property string check_box_24dp_svg: "qrc:/icons/check_box_24dp.svg"
+    readonly property string check_box_outline_blank_24dp_svg: "qrc:/icons/check_box_outline_blank_24dp.svg"
+    readonly property string chevron_left_black_24dp_svg: "qrc:/icons/chevron_left_black_24dp.svg"
+    readonly property string close_fullscreen_24dp_svg: "qrc:/icons/close_fullscreen_24dp.svg"
+    readonly property string close_white_24dp_svg: "qrc:/icons/close_white_24dp.svg"
+    readonly property string content_copy_24dp_svg: "qrc:/icons/content_copy_24dp.svg"
+    readonly property string cross_black_24dp_svg: "qrc:/icons/cross_black_24dp.svg"
+    readonly property string delete_24dp_svg: "qrc:/icons/delete_24dp.svg"
+    readonly property string delete_forever_24dp_svg: "qrc:/icons/delete_forever_24dp.svg"
+    readonly property string devices_24dp_svg: "qrc:/icons/devices_24dp.svg"
+    readonly property string done_white_24dp_svg: "qrc:/icons/done_white_24dp.svg"
+    readonly property string drafts_24dp_svg: "qrc:/icons/drafts_24dp.svg"
+    readonly property string emoji_black_24dp_svg: "qrc:/icons/emoji_black_24dp.svg"
+    readonly property string expand_less_24dp_svg: "qrc:/icons/expand_less_24dp.svg"
+    readonly property string expand_more_24dp_svg: "qrc:/icons/expand_more_24dp.svg"
+    readonly property string extension_24dp_svg: "qrc:/icons/extension_24dp.svg"
+    readonly property string fiber_manual_record_24dp_svg: "qrc:/icons/fiber_manual_record_24dp.svg"
+    readonly property string file_black_24dp_svg: "qrc:/icons/file_black_24dp.svg"
+    readonly property string gear_black_24dp_svg: "qrc:/icons/gear_black_24dp.svg"
+    readonly property string groups_24dp_svg: "qrc:/icons/groups_24dp.svg"
+    readonly property string group_add_24dp_svg: "qrc:/icons/group_add_24dp.svg"
+    readonly property string ic_arrow_back_24dp_svg: "qrc:/icons/ic_arrow_back_24dp.svg"
+    readonly property string ic_arrow_back_white_24dp_svg: "qrc:/icons/ic_arrow_back_white_24dp.svg"
+    readonly property string ic_baseline_search_24dp_svg: "qrc:/icons/ic_baseline_search_24dp.svg"
+    readonly property string ic_call_end_white_24dp_svg: "qrc:/icons/ic_call_end_white_24dp.svg"
+    readonly property string ic_clear_24dp_svg: "qrc:/icons/ic_clear_24dp.svg"
+    readonly property string ic_content_copy_svg: "qrc:/icons/ic_content_copy.svg"
+    readonly property string ic_hangup_participant_24dp_svg: "qrc:/icons/ic_hangup_participant_24dp.svg"
+    readonly property string ic_high_quality_24dp_svg: "qrc:/icons/ic_high_quality_24dp.svg"
+    readonly property string ic_keypad_svg: "qrc:/icons/ic_keypad.svg"
+    readonly property string ic_pause_white_100px_svg: "qrc:/icons/ic_pause_white_100px.svg"
+    readonly property string ic_send_24dp_svg: "qrc:/icons/ic_send_24dp.svg"
+    readonly property string ic_video_call_24dp_svg: "qrc:/icons/ic_video_call_24dp.svg"
+    readonly property string info_24dp_svg: "qrc:/icons/info_24dp.svg"
+    readonly property string insert_photo_24dp_svg: "qrc:/icons/insert_photo_24dp.svg"
+    readonly property string link_black_24dp_svg: "qrc:/icons/link_black_24dp.svg"
+    readonly property string media_black_24dp_svg: "qrc:/icons/media_black_24dp.svg"
+    readonly property string message_audio_black_24dp_svg: "qrc:/icons/message_audio_black_24dp.svg"
+    readonly property string message_video_black_24dp_svg: "qrc:/icons/message_video_black_24dp.svg"
+    readonly property string mic_24dp_svg: "qrc:/icons/mic_24dp.svg"
+    readonly property string mic_off_24dp_svg: "qrc:/icons/mic_off_24dp.svg"
+    readonly property string moderator_svg: "qrc:/icons/moderator.svg"
+    readonly property string more_vert_24dp_svg: "qrc:/icons/more_vert_24dp.svg"
+    readonly property string mosaic_black_24dp_svg: "qrc:/icons/mosaic_black_24dp.svg"
+    readonly property string open_in_full_24dp_svg: "qrc:/icons/open_in_full_24dp.svg"
+    readonly property string outline_info_24dp_svg: "qrc:/icons/outline_info_24dp.svg"
+    readonly property string pause_24dp_svg: "qrc:/icons/pause_24dp.svg"
+    readonly property string pause_circle_outline_24dp_svg: "qrc:/icons/pause_circle_outline_24dp.svg"
+    readonly property string person_24dp_svg: "qrc:/icons/person_24dp.svg"
+    readonly property string phone_forwarded_24dp_svg: "qrc:/icons/phone_forwarded_24dp.svg"
+    readonly property string phone_paused_24dp_svg: "qrc:/icons/phone_paused_24dp.svg"
+    readonly property string place_audiocall_24dp_svg: "qrc:/icons/place_audiocall_24dp.svg"
+    readonly property string play_circle_outline_24dp_svg: "qrc:/icons/play_circle_outline_24dp.svg"
+    readonly property string plugins_24dp_svg: "qrc:/icons/plugins_24dp.svg"
+    readonly property string plugin_settings_black_24dp_svg: "qrc:/icons/plugin_settings_black_24dp.svg"
+    readonly property string qr_code_24dp_svg: "qrc:/icons/qr_code_24dp.svg"
+    readonly property string record_black_24dp_svg: "qrc:/icons/record_black_24dp.svg"
+    readonly property string re_record_24dp_svg: "qrc:/icons/re_record_24dp.svg"
+    readonly property string round_add_24dp_svg: "qrc:/icons/round_add_24dp.svg"
+    readonly property string round_add_a_photo_24dp_svg: "qrc:/icons/round_add_a_photo_24dp.svg"
+    readonly property string round_arrow_drop_down_24dp_svg: "qrc:/icons/round_arrow_drop_down_24dp.svg"
+    readonly property string round_arrow_drop_up_24dp_svg: "qrc:/icons/round_arrow_drop_up_24dp.svg"
+    readonly property string round_arrow_right_24dp_svg: "qrc:/icons/round_arrow_right_24dp.svg"
+    readonly property string round_check_circle_24dp_svg: "qrc:/icons/round_check_circle_24dp.svg"
+    readonly property string round_close_24dp_svg: "qrc:/icons/round_close_24dp.svg"
+    readonly property string round_edit_24dp_svg: "qrc:/icons/round_edit_24dp.svg"
+    readonly property string round_error_24dp_svg: "qrc:/icons/round_error_24dp.svg"
+    readonly property string round_folder_24dp_svg: "qrc:/icons/round_folder_24dp.svg"
+    readonly property string round_remove_circle_24dp_svg: "qrc:/icons/round_remove_circle_24dp.svg"
+    readonly property string round_save_alt_24dp_svg: "qrc:/icons/round_save_alt_24dp.svg"
+    readonly property string round_settings_24dp_svg: "qrc:/icons/round_settings_24dp.svg"
+    readonly property string round_undo_24dp_svg: "qrc:/icons/round_undo_24dp.svg"
+    readonly property string router_24dp_svg: "qrc:/icons/router_24dp.svg"
+    readonly property string send_24dp_svg: "qrc:/icons/send_24dp.svg"
+    readonly property string send_black_24dp_svg: "qrc:/icons/send_black_24dp.svg"
+    readonly property string settings_24dp_svg: "qrc:/icons/settings_24dp.svg"
+    readonly property string settings_backup_restore_24dp_svg: "qrc:/icons/settings_backup_restore_24dp.svg"
+    readonly property string settings_backup_restore_black_18dp_svg: "qrc:/icons/settings_backup_restore_black_18dp.svg"
+    readonly property string share_24dp_svg: "qrc:/icons/share_24dp.svg"
+    readonly property string share_screen_black_24dp_svg: "qrc:/icons/share_screen_black_24dp.svg"
+    readonly property string share_stop_black_24dp_svg: "qrc:/icons/share_stop_black_24dp.svg"
+    readonly property string spk_black_24dp_svg: "qrc:/icons/spk_black_24dp.svg"
+    readonly property string spk_none_black_24dp_svg: "qrc:/icons/spk_none_black_24dp.svg"
+    readonly property string star_outline_24dp_svg: "qrc:/icons/star_outline_24dp.svg"
+    readonly property string stop_24dp_svg: "qrc:/icons/stop_24dp.svg"
+    readonly property string stop_24dp_red_svg: "qrc:/icons/stop_24dp_red.svg"
+    readonly property string videocam_24dp_svg: "qrc:/icons/videocam_24dp.svg"
+    readonly property string videocam_off_24dp_svg: "qrc:/icons/videocam_off_24dp.svg"
+    readonly property string default_avatar_overlay_svg: "qrc:/images/default_avatar_overlay.svg"
+    readonly property string jami_32px_xpm: "qrc:/images/jami-32px.xpm"
+    readonly property string jami_48px_png: "qrc:/images/jami-48px.png"
+    readonly property string jami_new_svg: "qrc:/images/jami-new.svg"
+    readonly property string jami_ico: "qrc:/images/jami.ico"
+    readonly property string jami_svg: "qrc:/images/jami.svg"
+    readonly property string jami_eclipse_spinner_gif: "qrc:/images/jami_eclipse_spinner.gif"
+    readonly property string jami_rolling_spinner_gif: "qrc:/images/jami_rolling_spinner.gif"
+    readonly property string logo_jami_standard_coul_white_svg: "qrc:/images/logo-jami-standard-coul-white.svg"
+    readonly property string logo_jami_standard_coul_svg: "qrc:/images/logo-jami-standard-coul.svg"
+    readonly property string quote_svg: "qrc:/images/quote.svg"
+}
\ No newline at end of file
diff --git a/src/mainapplication.cpp b/src/mainapplication.cpp
index e92a981ad27ac109ecca6082e25e9f40e517303b..7b27b8cbd49631c62bc5fb4413a47692c2e349b7 100644
--- a/src/mainapplication.cpp
+++ b/src/mainapplication.cpp
@@ -165,7 +165,7 @@ MainApplication::~MainApplication()
 bool
 MainApplication::init()
 {
-    setWindowIcon(QIcon(":images/jami.ico"));
+    setWindowIcon(QIcon(":/images/jami.ico"));
 
     // Lrc web resources
     QResource::registerResource(QCoreApplication::applicationDirPath() + QDir::separator()
@@ -414,7 +414,7 @@ MainApplication::setApplicationFont()
     QFont font;
     font.setFamily("Segoe UI");
     setFont(font);
-    QFontDatabase::addApplicationFont(":/images/FontAwesome.otf");
+    QFontDatabase::addApplicationFont(":/fonts/FontAwesome.otf");
 }
 
 void
@@ -434,7 +434,7 @@ MainApplication::initQmlLayer()
 void
 MainApplication::initSystray()
 {
-    systemTray_->setIcon(QIcon(":images/jami.svg"));
+    systemTray_->setIcon(QIcon(":/images/jami.svg"));
 
     QMenu* systrayMenu = new QMenu();
 
diff --git a/src/mainview/components/AboutPopUp.qml b/src/mainview/components/AboutPopUp.qml
index 95353319e2346e332ab07f855e98032e1086dc22..0c251ed91935a09f2385800bf76e0fee2dc94274 100644
--- a/src/mainview/components/AboutPopUp.qml
+++ b/src/mainview/components/AboutPopUp.qml
@@ -66,9 +66,9 @@ ModalPopup {
                         Layout.preferredWidth: 250
                         Layout.preferredHeight: 88
 
-                        source: JamiTheme.darkTheme?
-                                    "qrc:/images/logo-jami-standard-coul-white.svg" :
-                                    "qrc:/images/logo-jami-standard-coul.svg"
+                        source: JamiTheme.darkTheme ?
+                                    JamiResources.logo_jami_standard_coul_white_svg :
+                                    JamiResources.logo_jami_standard_coul_svg
                     }
 
                     MaterialLineEdit {
diff --git a/src/mainview/components/AccountComboBox.qml b/src/mainview/components/AccountComboBox.qml
index 5d22252b37dfcc77ca585c6900dcd7c5ec42145c..9a20ca23de3d6ddb9ce3fdc11bd7959933f54fca 100644
--- a/src/mainview/components/AccountComboBox.qml
+++ b/src/mainview/components/AccountComboBox.qml
@@ -190,8 +190,8 @@ Label {
                 color: JamiTheme.textColor
 
                 source: !root.popup.opened ?
-                            "qrc:/images/icons/expand_more-24px.svg" :
-                            "qrc:/images/icons/expand_less-24px.svg"
+                            JamiResources.expand_more_24dp_svg :
+                            JamiResources.expand_less_24dp_svg
             }
 
 
@@ -205,7 +205,7 @@ Label {
                 visible: LRCInstance.currentAccountType === Profile.Type.JAMI
                 toolTipText: JamiStrings.displayQRCode
 
-                source: "qrc:/images/icons/share-24px.svg"
+                source: JamiResources.share_24dp_svg
 
                 normalColor: JamiTheme.backgroundColor
                 imageColor: JamiTheme.textColor
@@ -221,8 +221,8 @@ Label {
 
                 anchors.verticalCenter: parent.verticalCenter
                 source: !mainView.inSettingsView ?
-                            "qrc:/images/icons/settings-24px.svg" :
-                            "qrc:/images/icons/round-close-24px.svg"
+                            JamiResources.settings_24dp_svg :
+                            JamiResources.round_close_24dp_svg
 
                 normalColor: JamiTheme.backgroundColor
                 imageColor: JamiTheme.textColor
diff --git a/src/mainview/components/CallActionBar.qml b/src/mainview/components/CallActionBar.qml
index 3134419983e7238b350dd433dbaf34023e17dc8a..10e7ed75a5f6b4d155c80d1157f1a3a47a830ef5 100644
--- a/src/mainview/components/CallActionBar.qml
+++ b/src/mainview/components/CallActionBar.qml
@@ -121,11 +121,11 @@ Control {
 
                 Component.onCompleted: {
                     shareModel.append({"Name": JamiStrings.shareScreen,
-                                       "IconSource": "qrc:/images/icons/share_screen_black_24dp.svg"})
+                                       "IconSource": JamiResources.share_screen_black_24dp_svg})
                     shareModel.append({"Name": JamiStrings.shareScreenArea,
-                                       "IconSource" :"qrc:/images/icons/share_screen_black_24dp.svg"})
+                                       "IconSource" : JamiResources.share_screen_black_24dp_svg})
                     shareModel.append({"Name": JamiStrings.shareFile,
-                                       "IconSource" :"qrc:/images/icons/insert_photo-24px.svg"})
+                                       "IconSource" : JamiResources.insert_photo_24dp_svg})
                 }
             }
             function accept(index) {
@@ -182,8 +182,8 @@ Control {
             onTriggered: CallAdapter.muteThisCallToggle()
             checkable: true
             icon.source: checked ?
-                             "qrc:/images/icons/mic_off-24px.svg" :
-                             "qrc:/images/icons/mic-24px.svg"
+                             JamiResources.mic_off_24dp_svg :
+                             JamiResources.mic_24dp_svg
             icon.color: checked ? "red" : "white"
             text: !checked ? JamiStrings.mute : JamiStrings.unmute
             property var menuAction: audioInputMenuAction
@@ -191,7 +191,7 @@ Control {
         Action {
             id: hangupAction
             onTriggered: CallAdapter.hangUpThisCall()
-            icon.source: "qrc:/images/icons/ic_call_end_white_24px.svg"
+            icon.source: JamiResources.ic_call_end_white_24dp_svg
             icon.color: "white"
             text: JamiStrings.hangup
             property bool hasBg: true
@@ -201,8 +201,8 @@ Control {
             onTriggered: CallAdapter.videoPauseThisCallToggle()
             checkable: true
             icon.source: checked ?
-                             "qrc:/images/icons/videocam_off-24px.svg" :
-                             "qrc:/images/icons/videocam-24px.svg"
+                             JamiResources.videocam_off_24dp_svg :
+                             JamiResources.videocam_24dp_svg
             icon.color: checked ? "red" : "white"
             text: !checked ? JamiStrings.pauseVideo : JamiStrings.resumeVideo
             property var menuAction: videoInputMenuAction
@@ -215,7 +215,7 @@ Control {
             // temp hack for missing back-end, just open device selection
             property bool openPopupWhenClicked: true
             checkable: !openPopupWhenClicked
-            icon.source: "qrc:/images/icons/spk_black_24dp.svg"
+            icon.source: JamiResources.spk_black_24dp_svg
             icon.color: "white"
             text: JamiStrings.selectAudioOutputDevice
             property var menuAction: audioOutputMenuAction
@@ -223,36 +223,37 @@ Control {
         Action {
             id: addPersonAction
             onTriggered: root.addToConferenceClicked()
-            icon.source: "qrc:/images/icons/add_people_black_24dp.svg"
+            icon.source: JamiResources.add_people_black_24dp_svg
             icon.color: "white"
             text: JamiStrings.addParticipants
         },
         Action {
             id: chatAction
             onTriggered: root.chatClicked()
-            icon.source: "qrc:/images/icons/chat_black_24dp.svg"
+            icon.source: JamiResources.chat_black_24dp_svg
             icon.color: "white"
             text: JamiStrings.chat
         },
         Action {
             id: resumePauseCallAction
             onTriggered: root.resumePauseCallClicked()
-            icon.source: isPaused ? "qrc:/images/icons/play_circle_outline-24px.svg" :
-                                    "qrc:/images/icons/pause_circle_outline-24px.svg"
+            icon.source: isPaused ?
+                             JamiResources.play_circle_outline_24dp_svg :
+                             JamiResources.pause_circle_outline_24dp_svg
             icon.color: "white"
             text: isPaused ? JamiStrings.resumeCall : JamiStrings.pauseCall
         },
         Action {
             id: inputPanelSIPAction
             onTriggered: root.showInputPanelClicked()
-            icon.source: "qrc:/images/icons/ic_keypad.svg"
+            icon.source: JamiResources.ic_keypad_svg
             icon.color: "white"
             text: JamiStrings.sipInputPanel
         },
         Action {
             id: callTransferAction
             onTriggered: root.transferClicked()
-            icon.source: "qrc:/images/icons/phone_forwarded-24px.svg"
+            icon.source: JamiResources.phone_forwarded_24dp_svg
             icon.color: "white"
             text: JamiStrings.transferCall
         },
@@ -265,8 +266,8 @@ Control {
                     root.shareScreenClicked()
             }
             icon.source: AvAdapter.currentRenderingDeviceType === Video.DeviceType.DISPLAY ?
-                             "qrc:/images/icons/share_stop_black_24dp.svg" :
-                             "qrc:/images/icons/share_screen_black_24dp.svg"
+                             JamiResources.share_stop_black_24dp_svg :
+                             JamiResources.share_screen_black_24dp_svg
             icon.color: AvAdapter.currentRenderingDeviceType === Video.DeviceType.DISPLAY ?
                             "red" : "white"
             text: AvAdapter.currentRenderingDeviceType === Video.DeviceType.DISPLAY ?
@@ -279,7 +280,7 @@ Control {
             id: recordAction
             onTriggered: CallAdapter.recordThisCallToggle()
             checkable: true
-            icon.source: "qrc:/images/icons/record_black_24dp.svg"
+            icon.source: JamiResources.record_black_24dp_svg
             icon.color: checked ? "red" : "white"
             text: !checked ? JamiStrings.startRec : JamiStrings.stopRec
             property bool blinksWhenChecked: true
@@ -292,7 +293,7 @@ Control {
         Action {
             id: pluginsAction
             onTriggered: root.pluginsClicked()
-            icon.source: "qrc:/images/icons/plugins-24px.svg"
+            icon.source: JamiResources.plugins_24dp_svg
             icon.color: "white"
             text: JamiStrings.viewPlugin
             enabled: PluginAdapter.callMediaHandlersListCount
@@ -415,7 +416,7 @@ Control {
 
                 contentItem: ResponsiveImage {
                     color: "white"
-                    source: "qrc:/images/icons/more_vert-24dp.svg"
+                    source: JamiResources.more_vert_24dp_svg
                     anchors.fill: parent
                     anchors.margins: 17
                 }
diff --git a/src/mainview/components/CallButtonDelegate.qml b/src/mainview/components/CallButtonDelegate.qml
index 0889055123cdd20afae395933fec3ea1963478c0..680f500e06f6efd889f4acdd21b5578e45c89f5a 100644
--- a/src/mainview/components/CallButtonDelegate.qml
+++ b/src/mainview/components/CallButtonDelegate.qml
@@ -186,8 +186,9 @@ ItemDelegate {
         }
 
         contentItem: ResponsiveImage {
-            source: isVertical ? "qrc:/images/icons/chevron_left_black_24dp.svg" :
-                                 "qrc:/images/icons/expand_less-24px.svg"
+            source: isVertical ?
+                        JamiResources.chevron_left_black_24dp_svg :
+                        JamiResources.expand_less_24dp_svg
             color: "white"
         }
 
@@ -213,8 +214,8 @@ ItemDelegate {
                 ResponsiveImage {
                     source: menuAction.popupMode === CallActionBar.ActionPopupMode.ListElement ?
                                 IconSource : (menuItem.ListView.isCurrentItem ?
-                                                  "qrc:/images/icons/check_box-24px.svg" :
-                                                  "qrc:/images/icons/check_box_outline_blank-24px.svg")
+                                                  JamiResources.check_box_24dp_svg :
+                                                  JamiResources.check_box_outline_blank_24dp_svg)
                     color: "white"
                 }
                 Text {
diff --git a/src/mainview/components/CallOverlay.qml b/src/mainview/components/CallOverlay.qml
index 796b8afece741af300b37cd54f726bdd6bad01cc..f3be6b096fca339078f2666790045110c5ca6794 100644
--- a/src/mainview/components/CallOverlay.qml
+++ b/src/mainview/components/CallOverlay.qml
@@ -155,7 +155,7 @@ Item {
 
         visible: false
 
-        source: "qrc:/images/icons/ic_pause_white_100px.svg"
+        source: JamiResources.ic_pause_white_100px_svg
     }
 
     function openContactPicker(type) {
diff --git a/src/mainview/components/CallViewContextMenu.qml b/src/mainview/components/CallViewContextMenu.qml
index 7ea1e555fcf10eb88e952aa89325d40381c7e80f..83a182d61168ed0099f8bd8fb9ced250cfe2bb66 100644
--- a/src/mainview/components/CallViewContextMenu.qml
+++ b/src/mainview/components/CallViewContextMenu.qml
@@ -49,8 +49,9 @@ ContextMenuAutoLoader {
 
             canTrigger: isSIP
             itemName: isPaused ? JamiStrings.resumeCall : JamiStrings.pauseCall
-            iconSource: isPaused ? "qrc:/images/icons/play_circle_outline-24px.svg" :
-                                   "qrc:/images/icons/pause_circle_outline-24px.svg"
+            iconSource: isPaused ?
+                            JamiResources.play_circle_outline_24dp_svg :
+                            JamiResources.pause_circle_outline_24dp_svg
             onClicked: {
                 CallAdapter.holdThisCallToggle()
             }
@@ -60,7 +61,7 @@ ContextMenuAutoLoader {
 
             canTrigger: isSIP
             itemName: JamiStrings.sipInputPanel
-            iconSource: "qrc:/images/icons/ic_keypad.svg"
+            iconSource: JamiResources.ic_keypad_svg
             onClicked: {
                 sipInputPanel.open()
             }
@@ -70,7 +71,7 @@ ContextMenuAutoLoader {
 
             canTrigger: isSIP
             itemName: JamiStrings.transferCall
-            iconSource: "qrc:/images/icons/phone_forwarded-24px.svg"
+            iconSource: JamiResources.phone_forwarded_24dp_svg
             addMenuSeparatorAfter: isSIP
             onClicked: {
                 root.transferCallButtonClicked()
@@ -80,7 +81,7 @@ ContextMenuAutoLoader {
             id: localRecord
 
             itemName: localIsRecording ? JamiStrings.stopRec : JamiStrings.startRec
-            iconSource: "qrc:/images/icons/av_icons/fiber_manual_record-24px.svg"
+            iconSource: JamiResources.fiber_manual_record_24dp_svg
             iconColor: JamiTheme.recordIconColor
             onClicked: {
                 CallAdapter.recordThisCallToggle()
@@ -93,8 +94,8 @@ ContextMenuAutoLoader {
             itemName: JamiQmlUtils.callIsFullscreen ?
                           JamiStrings.exitFullScreen : JamiStrings.fullScreen
             iconSource: JamiQmlUtils.callIsFullscreen ?
-                            "qrc:/images/icons/close_fullscreen-24px.svg" :
-                            "qrc:/images/icons/open_in_full-24px.svg"
+                            JamiResources.close_fullscreen_24dp_svg :
+                            JamiResources.open_in_full_24dp_svg
             onClicked: {
                 callStackView.toggleFullScreen()
             }
@@ -106,7 +107,7 @@ ContextMenuAutoLoader {
                         && AvAdapter.currentRenderingDeviceType === Video.DeviceType.DISPLAY
                         && !isSIP
             itemName: JamiStrings.stopSharing
-            iconSource: "qrc:/images/icons/share_stop_black_24dp.svg"
+            iconSource: JamiResources.share_stop_black_24dp_svg
             iconColor: JamiTheme.redColor
             onClicked: {
                 AvAdapter.stopSharing()
@@ -119,7 +120,7 @@ ContextMenuAutoLoader {
                         && AvAdapter.currentRenderingDeviceType !== Video.DeviceType.DISPLAY
                         && !isSIP
             itemName: JamiStrings.shareScreen
-            iconSource: "qrc:/images/icons/share_screen_black_24dp.svg"
+            iconSource: JamiResources.share_screen_black_24dp_svg
             onClicked: {
                 if (Qt.application.screens.length === 1) {
                     AvAdapter.shareEntireScreen(0)
@@ -136,7 +137,7 @@ ContextMenuAutoLoader {
                         && AvAdapter.currentRenderingDeviceType !== Video.DeviceType.DISPLAY
                         && !isSIP
             itemName: JamiStrings.shareScreenArea
-            iconSource: "qrc:/images/icons/share_screen_black_24dp.svg"
+            iconSource: JamiResources.share_screen_black_24dp_svg
             onClicked: {
                 if (Qt.platform.os !== "windows") {
                     AvAdapter.shareScreenArea(0, 0, 0, 0)
@@ -151,7 +152,7 @@ ContextMenuAutoLoader {
 
             canTrigger: !isAudioOnly && !isSIP
             itemName: JamiStrings.shareFile
-            iconSource: "qrc:/images/icons/insert_photo-24px.svg"
+            iconSource: JamiResources.insert_photo_24dp_svg
             onClicked: {
                 jamiFileDialog.open()
             }
@@ -161,7 +162,7 @@ ContextMenuAutoLoader {
 
             canTrigger: PluginAdapter.callMediaHandlersListCount
             itemName: JamiStrings.viewPlugin
-            iconSource: "qrc:/images/icons/extension_24dp.svg"
+            iconSource: JamiResources.extension_24dp_svg
             onClicked: {
                 root.pluginItemClicked()
             }
diff --git a/src/mainview/components/ContactPicker.qml b/src/mainview/components/ContactPicker.qml
index d0ca5582f66ba2eb0bf00fa4edf3634bcdb86c7b..eb3c2af928961a8869d14f987d646b0a20526fc1 100644
--- a/src/mainview/components/ContactPicker.qml
+++ b/src/mainview/components/ContactPicker.qml
@@ -52,7 +52,7 @@ Popup {
             anchors.rightMargin: 5
             imageColor: JamiTheme.textColor
 
-            source: "qrc:/images/icons/round-close-24px.svg"
+            source: JamiResources.round_close_24dp_svg
 
             onClicked: {
                 contactPickerPopup.close()
diff --git a/src/mainview/components/ContactSearchBar.qml b/src/mainview/components/ContactSearchBar.qml
index 37eb3f292118c75bd6b7d352981601c20adabda7..7eccf510aaa6ed65450913b32a68281de0f0d8d0 100644
--- a/src/mainview/components/ContactSearchBar.qml
+++ b/src/mainview/components/ContactSearchBar.qml
@@ -62,7 +62,7 @@ Rectangle {
         width: 20
         height: 20
 
-        source: "qrc:/images/icons/ic_baseline-search-24px.svg"
+        source: JamiResources.ic_baseline_search_24dp_svg
         color: JamiTheme.primaryForegroundColor
     }
 
@@ -117,7 +117,7 @@ Rectangle {
         normalColor: root.color
         imageColor: JamiTheme.primaryForegroundColor
 
-        source: "qrc:/images/icons/ic_clear_24px.svg"
+        source: JamiResources.ic_clear_24dp_svg
         toolTipText: JamiStrings.clearText
 
         onClicked: contactSearchBar.clear()
diff --git a/src/mainview/components/ConversationSmartListContextMenu.qml b/src/mainview/components/ConversationSmartListContextMenu.qml
index 1c78e0ba412c053363a64677683a95e518e9cbea..a23d486b8e6165a68189088cb481e56481a90da1 100644
--- a/src/mainview/components/ConversationSmartListContextMenu.qml
+++ b/src/mainview/components/ConversationSmartListContextMenu.qml
@@ -47,7 +47,7 @@ ContextMenuAutoLoader {
 
             canTrigger: !hasCall
             itemName: JamiStrings.startVideoCall
-            iconSource: "qrc:/images/icons/videocam-24px.svg"
+            iconSource: JamiResources.videocam_24dp_svg
             onClicked: {
                 LRCInstance.selectConversation(responsibleConvUid,
                                                responsibleAccountId)
@@ -61,7 +61,7 @@ ContextMenuAutoLoader {
 
             canTrigger: !hasCall
             itemName: JamiStrings.startAudioCall
-            iconSource: "qrc:/images/icons/place_audiocall-24px.svg"
+            iconSource: JamiResources.place_audiocall_24dp_svg
             onClicked: {
                 LRCInstance.selectConversation(responsibleConvUid,
                                                responsibleAccountId)
@@ -75,7 +75,7 @@ ContextMenuAutoLoader {
 
             canTrigger: !isSwarm && !hasCall
             itemName: JamiStrings.clearConversation
-            iconSource: "qrc:/images/icons/ic_clear_24px.svg"
+            iconSource: JamiResources.ic_clear_24dp_svg
             onClicked: {
                 MessagesAdapter.clearConversationHistory(
                             responsibleAccountId,
@@ -88,7 +88,7 @@ ContextMenuAutoLoader {
             canTrigger: !hasCall && (contactType === Profile.Type.JAMI
                                      || contactType === Profile.Type.SIP)
             itemName: JamiStrings.removeContact
-            iconSource: "qrc:/images/icons/ic_hangup_participant-24px.svg"
+            iconSource: JamiResources.ic_hangup_participant_24dp_svg
             onClicked: {
                 MessagesAdapter.removeConversation(responsibleAccountId,
                                                    responsibleConvUid)
@@ -99,7 +99,7 @@ ContextMenuAutoLoader {
 
             canTrigger: hasCall
             itemName: JamiStrings.hangup
-            iconSource: "qrc:/images/icons/ic_call_end_white_24px.svg"
+            iconSource: JamiResources.ic_call_end_white_24dp_svg
             addMenuSeparatorAfter: contactType !== Profile.Type.SIP
                                    && (contactType === Profile.Type.PENDING
                                        || !hasCall)
@@ -113,7 +113,7 @@ ContextMenuAutoLoader {
 
             canTrigger: contactType === Profile.Type.PENDING
             itemName: JamiStrings.acceptContactRequest
-            iconSource: "qrc:/images/icons/add_people-24px.svg"
+            iconSource: JamiResources.add_people_24dp_svg
             onClicked: {
                 MessagesAdapter.acceptInvitation(responsibleConvUid)
                 communicationPageMessageWebView.setSendContactRequestButtonVisible(
@@ -125,7 +125,7 @@ ContextMenuAutoLoader {
 
             canTrigger: contactType === Profile.Type.PENDING
             itemName: JamiStrings.declineContactRequest
-            iconSource: "qrc:/images/icons/round-close-24px.svg"
+            iconSource: JamiResources.round_close_24dp_svg
             onClicked: {
                 MessagesAdapter.refuseInvitation(responsibleConvUid)
             }
@@ -135,7 +135,7 @@ ContextMenuAutoLoader {
 
             canTrigger: !hasCall && contactType !== Profile.Type.SIP
             itemName: JamiStrings.blockContact
-            iconSource: "qrc:/images/icons/block_black-24dp.svg"
+            iconSource: JamiResources.block_black_24dp_svg
             addMenuSeparatorAfter: contactType !== Profile.Type.SIP
             onClicked: {
                 MessagesAdapter.blockConversation(responsibleConvUid)
@@ -146,7 +146,7 @@ ContextMenuAutoLoader {
 
             canTrigger: contactType !== Profile.Type.SIP
             itemName: JamiStrings.contactDetails
-            iconSource: "qrc:/images/icons/person-24px.svg"
+            iconSource: JamiResources.person_24dp_svg
             onClicked: {
                 userProfile.open()
             }
diff --git a/src/mainview/components/FilesToSendDelegate.qml b/src/mainview/components/FilesToSendDelegate.qml
index 52e913be3732c45caabff794be501432fe1fdacd..9b73e6cee3850a24f309afec4967aa4bd8d8f4cf 100644
--- a/src/mainview/components/FilesToSendDelegate.qml
+++ b/src/mainview/components/FilesToSendDelegate.qml
@@ -55,7 +55,7 @@ Rectangle {
 
             visible: !IsImage
 
-            source: "qrc:/images/icons/file_black-24dp.svg"
+            source: JamiResources.file_black_24dp_svg
         }
 
         Text {
@@ -132,7 +132,7 @@ Rectangle {
 
         toolTipText: JamiStrings.remove
 
-        source: "qrc:/images/icons/cross_black_24dp.svg"
+        source: JamiResources.cross_black_24dp_svg
 
         normalColor:  JamiTheme.removeFileButtonColor
         hoveredColor: JamiTheme.lightGrey_
diff --git a/src/mainview/components/InitialCallPage.qml b/src/mainview/components/InitialCallPage.qml
index 0e67602e42bb4d461e5ae879d49667cf3977c242..b4afe2792a66bad219adacb7f3d9c87180525740 100644
--- a/src/mainview/components/InitialCallPage.qml
+++ b/src/mainview/components/InitialCallPage.qml
@@ -45,13 +45,17 @@ Rectangle {
 
     ListModel {
         id: incomingControlsModel
-        ListElement { type: "refuse"; image: "qrc:/images/icons/round-close-24px.svg"}
-        ListElement { type: "mic"; image: "qrc:/images/icons/place_audiocall-24px.svg"}
-        ListElement { type: "cam"; image: "qrc:/images/icons/videocam-24px.svg"}
+        Component.onCompleted: {
+            append({"type": "refuse", "image": JamiResources.round_close_24dp_svg})
+            append({"type": "mic", "image" : JamiResources.place_audiocall_24dp_svg})
+            append({"type": "cam", "image" : JamiResources.videocam_24dp_svg})
+        }
     }
     ListModel {
         id: outgoingControlsModel
-        ListElement { type: "cancel"; image: "qrc:/images/icons/ic_call_end_white_24px.svg"}
+        Component.onCompleted: {
+            append({"type": "cancel", "image": JamiResources.ic_call_end_white_24dp_svg})
+        }
     }
 
     onAccountConvPairChanged: {
diff --git a/src/mainview/components/InvitationView.qml b/src/mainview/components/InvitationView.qml
index e928cc6290b83adcf39fa8979e0178943e150928..9926bd19392e218689c5383756ad39d8a6198c2c 100644
--- a/src/mainview/components/InvitationView.qml
+++ b/src/mainview/components/InvitationView.qml
@@ -143,7 +143,7 @@ Rectangle {
 
                 toolTipText: JamiStrings.blockContact
 
-                source: "qrc:/images/icons/block_black-24dp.svg"
+                source: JamiResources.block_black_24dp_svg
                 imageColor: JamiTheme.primaryBackgroundColor
 
                 normalColor: JamiTheme.blockOrangeTransparency
@@ -165,7 +165,7 @@ Rectangle {
 
                 toolTipText: JamiStrings.declineContactRequest
 
-                source: "qrc:/images/icons/cross_black_24dp.svg"
+                source: JamiResources.cross_black_24dp_svg
                 imageColor: JamiTheme.primaryBackgroundColor
 
                 normalColor: JamiTheme.refuseRedTransparent
@@ -187,7 +187,7 @@ Rectangle {
 
                 toolTipText: JamiStrings.acceptContactRequest
 
-                source: "qrc:/images/icons/check_black-24dp.svg"
+                source: JamiResources.check_black_24dp_svg
                 imageColor: JamiTheme.primaryBackgroundColor
 
                 normalColor: JamiTheme.acceptGreenTransparency
diff --git a/src/mainview/components/MainOverlay.qml b/src/mainview/components/MainOverlay.qml
index 31af56bb7dd6910a552707ee181f91856b04adc5..a8cee1bbe3b5f9715c8e9ee58c29afe9ba6532f1 100644
--- a/src/mainview/components/MainOverlay.qml
+++ b/src/mainview/components/MainOverlay.qml
@@ -158,7 +158,7 @@ Item {
                 imageColor: JamiTheme.whiteColor
                 imageContainerHeight: 20
                 imageContainerWidth: 20
-                source: "qrc:/images/icons/mosaic_black_24dp.svg"
+                source: JamiResources.mosaic_black_24dp_svg
 
                 normalColor: JamiTheme.mosaicButtonNormalColor
                 onButtonTextWidthChanged: {
diff --git a/src/mainview/components/MessageBar.qml b/src/mainview/components/MessageBar.qml
index 8bf09a7e912eb263baa1a401221bf65cf15dbbcd..3d36346b2efd77e5ff9ea30ddfd167ab9d449d20 100644
--- a/src/mainview/components/MessageBar.qml
+++ b/src/mainview/components/MessageBar.qml
@@ -78,7 +78,7 @@ ColumnLayout {
 
             toolTipText: JamiStrings.sendFile
 
-            source: "qrc:/images/icons/link_black-24dp.svg"
+            source: JamiResources.link_black_24dp_svg
 
             normalColor: JamiTheme.primaryBackgroundColor
             imageColor: JamiTheme.messageWebViewFooterButtonImageColor
@@ -98,7 +98,7 @@ ColumnLayout {
 
             toolTipText: JamiStrings.leaveAudioMessage
 
-            source: "qrc:/images/icons/message_audio_black-24dp.svg"
+            source: JamiResources.message_audio_black_24dp_svg
 
             normalColor: JamiTheme.primaryBackgroundColor
             imageColor: JamiTheme.messageWebViewFooterButtonImageColor
@@ -120,7 +120,7 @@ ColumnLayout {
 
             toolTipText: JamiStrings.leaveVideoMessage
 
-            source: "qrc:/images/icons/message_video_black-24dp.svg"
+            source: JamiResources.message_video_black_24dp_svg
 
             normalColor: JamiTheme.primaryBackgroundColor
             imageColor: JamiTheme.messageWebViewFooterButtonImageColor
@@ -161,7 +161,7 @@ ColumnLayout {
 
             toolTipText: JamiStrings.addEmoji
 
-            source: "qrc:/images/icons/emoji_black-24dp.svg"
+            source: JamiResources.emoji_black_24dp_svg
 
             normalColor: JamiTheme.primaryBackgroundColor
             imageColor: JamiTheme.messageWebViewFooterButtonImageColor
@@ -186,7 +186,7 @@ ColumnLayout {
 
             toolTipText: JamiStrings.send
 
-            source: "qrc:/images/icons/send_black-24dp.svg"
+            source: JamiResources.send_black_24dp_svg
 
             normalColor: JamiTheme.primaryBackgroundColor
             imageColor: JamiTheme.messageWebViewFooterButtonImageColor
diff --git a/src/mainview/components/MessageWebViewHeader.qml b/src/mainview/components/MessageWebViewHeader.qml
index 1ed6eba45477e2e7638ddb541b2ea57d500d5989..7d39aeda74450f2bd2e121b8839412f2d6a9766b 100644
--- a/src/mainview/components/MessageWebViewHeader.qml
+++ b/src/mainview/components/MessageWebViewHeader.qml
@@ -31,7 +31,7 @@ Rectangle {
 
     property string userAliasLabelText
     property string userUserNameLabelText
-    property string backToWelcomeViewButtonSource: "qrc:/images/icons/back-24px.svg"
+    property string backToWelcomeViewButtonSource: JamiResources.back_24dp_svg
     property alias sendContactRequestButtonVisible: sendContactRequestButton.visible
 
     signal backClicked
@@ -39,8 +39,9 @@ Rectangle {
     signal pluginSelector
 
     function resetBackToWelcomeViewButtonSource(reset) {
-        backToWelcomeViewButtonSource = reset ? "qrc:/images/icons/back-24px.svg"
-                                              : "qrc:/images/icons/round-close-24px.svg"
+        backToWelcomeViewButtonSource = reset ?
+                    JamiResources.back_24dp_svg :
+                    JamiResources.round_close_24dp_svg
     }
 
     function toggleMessagingHeaderButtonsVisible(visible) {
@@ -70,7 +71,7 @@ Rectangle {
             imageColor: JamiTheme.chatviewButtonColor
 
             onClicked: {
-                if (backToWelcomeViewButtonSource === "qrc:/images/icons/back-24px.svg")
+                if (backToWelcomeViewButtonSource === JamiResources.back_24dp_svg)
                     messagingHeaderRect.backClicked()
                 else
                     messagingHeaderRect.needToHideConversationInCall()
@@ -147,7 +148,7 @@ Rectangle {
                 anchors.rightMargin: 8
                 anchors.verticalCenter: buttonGroup.verticalCenter
 
-                source: "qrc:/images/icons/place_audiocall-24px.svg"
+                source: JamiResources.place_audiocall_24dp_svg
                 toolTipText: JamiStrings.placeAudioCall
 
                 normalColor: JamiTheme.chatviewBgColor
@@ -170,7 +171,7 @@ Rectangle {
                 anchors.rightMargin: 8
                 anchors.verticalCenter: buttonGroup.verticalCenter
 
-                source: "qrc:/images/icons/videocam-24px.svg"
+                source: JamiResources.videocam_24dp_svg
                 toolTipText: JamiStrings.placeVideoCall
 
                 normalColor: JamiTheme.chatviewBgColor
@@ -194,7 +195,7 @@ Rectangle {
                 anchors.rightMargin: sendContactRequestButton.visible ? 8 : 16
                 anchors.verticalCenter: buttonGroup.verticalCenter
 
-                source: "qrc:/images/icons/plugins-24px.svg"
+                source: JamiResources.plugins_24dp_svg
                 toolTipText: JamiStrings.showPlugins
 
                 normalColor: JamiTheme.chatviewBgColor
@@ -210,7 +211,7 @@ Rectangle {
                 anchors.rightMargin: 8
                 anchors.verticalCenter: buttonGroup.verticalCenter
 
-                source: "qrc:/images/icons/add_people-24px.svg"
+                source: JamiResources.add_people_24dp_svg
                 toolTipText: JamiStrings.addToConversations
 
                 normalColor: JamiTheme.chatviewBgColor
diff --git a/src/mainview/components/ParticipantCallInStatusDelegate.qml b/src/mainview/components/ParticipantCallInStatusDelegate.qml
index 965a6ae7be65155435bbb1e62fda4ee4b985ba12..8cf564f467974f41892df4dfe1d7f5b5bc5a11cf 100644
--- a/src/mainview/components/ParticipantCallInStatusDelegate.qml
+++ b/src/mainview/components/ParticipantCallInStatusDelegate.qml
@@ -130,7 +130,7 @@ SpinningAnimation {
             hoveredColor: JamiTheme.refuseRed
             normalColor: JamiTheme.refuseRedTransparent
 
-            source: "qrc:/images/icons/cross_black_24dp.svg"
+            source: JamiResources.cross_black_24dp_svg
             imageColor: JamiTheme.whiteColor
 
             toolTipText: JamiStrings.optionCancel
diff --git a/src/mainview/components/ParticipantControlLayout.qml b/src/mainview/components/ParticipantControlLayout.qml
index e41bd249db7357d4c6bd781836f379447919165d..195f9a09f0f630c937b202806f5dbe4d4e92049f 100644
--- a/src/mainview/components/ParticipantControlLayout.qml
+++ b/src/mainview/components/ParticipantControlLayout.qml
@@ -40,7 +40,7 @@ RowLayout {
         preferredSize: iconButtonPreferredSize
         Layout.preferredHeight: buttonPreferredSize
         Layout.preferredWidth: buttonPreferredSize
-        source: "qrc:/images/icons/moderator.svg"
+        source: JamiResources.moderator_svg
         onClicked: CallAdapter.setModerator(uri, showSetModerator)
         toolTipText: showSetModerator? JamiStrings.setModerator
                                      : JamiStrings.unsetModerator
@@ -53,8 +53,9 @@ RowLayout {
         preferredSize: iconButtonPreferredSize
         Layout.preferredHeight: buttonPreferredSize
         Layout.preferredWidth: buttonPreferredSize
-        source: showModeratorMute? "qrc:/images/icons/mic-24px.svg"
-                                 : "qrc:/images/icons/mic_off-24px.svg"
+        source: showModeratorMute ?
+                    JamiResources.mic_24dp_svg :
+                    JamiResources.mic_off_24dp_svg
         onClicked: CallAdapter.muteParticipant(uri, showModeratorMute)
         toolTipText: showModeratorMute? JamiStrings.muteParticipant
                                       : JamiStrings.unmuteParticipant
@@ -67,7 +68,7 @@ RowLayout {
         preferredSize: iconButtonPreferredSize
         Layout.preferredHeight: buttonPreferredSize
         Layout.preferredWidth: buttonPreferredSize
-        source: "qrc:/images/icons/open_in_full-24px.svg"
+        source: JamiResources.open_in_full_24dp_svg
         onClicked: CallAdapter.maximizeParticipant(uri)
         toolTipText: JamiStrings.maximizeParticipant
     }
@@ -79,7 +80,7 @@ RowLayout {
         preferredSize: iconButtonPreferredSize
         Layout.preferredHeight: buttonPreferredSize
         Layout.preferredWidth: buttonPreferredSize
-        source: "qrc:/images/icons/close_fullscreen-24px.svg"
+        source: JamiResources.close_fullscreen_24dp_svg
         onClicked: CallAdapter.minimizeParticipant(uri)
         toolTipText: JamiStrings.minimizeParticipant
     }
@@ -91,7 +92,7 @@ RowLayout {
         preferredSize: iconButtonPreferredSize
         Layout.preferredHeight: buttonPreferredSize
         Layout.preferredWidth: buttonPreferredSize
-        source: "qrc:/images/icons/ic_hangup_participant-24px.svg"
+        source: JamiResources.ic_hangup_participant_24dp_svg
         onClicked: CallAdapter.hangupParticipant(uri)
         toolTipText: JamiStrings.hangupParticipant
     }
diff --git a/src/mainview/components/ParticipantOverlay.qml b/src/mainview/components/ParticipantOverlay.qml
index 169b7958d2ee24b1c332ddbd5ee370ce84a85ade..71fb9c9e6e0b895e90c852edd6e57d36dd8f7872 100644
--- a/src/mainview/components/ParticipantOverlay.qml
+++ b/src/mainview/components/ParticipantOverlay.qml
@@ -126,7 +126,7 @@ Item {
 
                 visible: participantIsHost
 
-                source: "qrc:/images/icons/star_outline-24px.svg"
+                source: JamiResources.star_outline_24dp_svg
                 color: JamiTheme.whiteColor
             }
 
@@ -141,7 +141,7 @@ Item {
 
                 visible: participantIsModerator
 
-                source: "qrc:/images/icons/moderator.svg"
+                source: JamiResources.moderator_svg
                 color: JamiTheme.whiteColor
             }
 
@@ -156,7 +156,7 @@ Item {
 
                 visible: participantIsMuted
 
-                source: "qrc:/images/icons/mic_off-24px.svg"
+                source: JamiResources.mic_off_24dp_svg
                 color: JamiTheme.whiteColor
             }
         }
diff --git a/src/mainview/components/PluginHandlerItemDelegate.qml b/src/mainview/components/PluginHandlerItemDelegate.qml
index 19bdf469c2aa10172b8bec0e8dc0e867ecde158d..75991f5ff6bfe442d04271578ce3c9f1239ae186 100644
--- a/src/mainview/components/PluginHandlerItemDelegate.qml
+++ b/src/mainview/components/PluginHandlerItemDelegate.qml
@@ -121,7 +121,7 @@ ItemDelegate {
             Layout.alignment: Qt.AlingVCenter | Qt.AlignRight
             Layout.rightMargin: 8
 
-            source: "qrc:/images/icons/round-settings-24px.svg"
+            source: JamiResources.round_settings_24dp_svg
             normalColor: JamiTheme.primaryBackgroundColor
             imageColor: JamiTheme.textColor
             toolTipText: qsTr(pluginId)
diff --git a/src/mainview/components/PluginHandlerPicker.qml b/src/mainview/components/PluginHandlerPicker.qml
index f7f2ef7361f20e5d72cc801aa4cf7b20704f5873..5b2bca6698efc03ade222a2f90d4228283743dea 100644
--- a/src/mainview/components/PluginHandlerPicker.qml
+++ b/src/mainview/components/PluginHandlerPicker.qml
@@ -115,7 +115,7 @@ Popup {
                         Layout.rightMargin: 5
                         Layout.topMargin: 5
 
-                        source: "qrc:/images/icons/round-close-24px.svg"
+                        source: JamiResources.round_close_24dp_svg
                         imageColor: JamiTheme.textColor
 
                         onClicked: {
@@ -207,7 +207,7 @@ Popup {
                         Layout.topMargin: 5
 
                         imageColor: JamiTheme.textColor
-                        source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+                        source: JamiResources.ic_arrow_back_24dp_svg
                         toolTipText: qsTr("Go back to plugins list")
                         hoverEnabled: true
                         onClicked: {
@@ -235,7 +235,7 @@ Popup {
                         Layout.rightMargin: 5
                         Layout.topMargin: 5
 
-                        source: "qrc:/images/icons/round-close-24px.svg"
+                        source: JamiResources.round_close_24dp_svg
                         imageColor: JamiTheme.textColor
 
                         onClicked: {
diff --git a/src/mainview/components/RecordBox.qml b/src/mainview/components/RecordBox.qml
index 9542829f30b5fb262d7939f41160b5f2d7e4acbf..9b0dc5f508aa5bbd13f6161c11cfb46d9f8ca4e5 100644
--- a/src/mainview/components/RecordBox.qml
+++ b/src/mainview/components/RecordBox.qml
@@ -308,7 +308,7 @@ Rectangle {
 
         normalColor: isVideo ? "transparent" : JamiTheme.backgroundColor
 
-        source: "qrc:/images/icons/av_icons/fiber_manual_record-24px.svg"
+        source: JamiResources.fiber_manual_record_24dp_svg
         imageColor: JamiTheme.recordIconColor
 
         onClicked: {
@@ -328,7 +328,7 @@ Rectangle {
 
         normalColor: isVideo ? "transparent" : JamiTheme.backgroundColor
 
-        source: "qrc:/images/icons/av_icons/stop-24px-red.svg"
+        source: JamiResources.stop_24dp_red_svg
         imageColor: isVideo ? JamiTheme.whiteColor : JamiTheme.textColor
 
         onClicked: {
@@ -349,7 +349,7 @@ Rectangle {
 
         normalColor: isVideo ? "transparent" : JamiTheme.backgroundColor
 
-        source: "qrc:/images/icons/av_icons/re-record-24px.svg"
+        source: JamiResources.re_record_24dp_svg
         imageColor: isVideo ? JamiTheme.whiteColor : JamiTheme.textColor
 
         onClicked: {
@@ -370,7 +370,7 @@ Rectangle {
 
         normalColor: isVideo ? "transparent" : JamiTheme.backgroundColor
 
-        source: "qrc:/images/icons/av_icons/send-24px.svg"
+        source: JamiResources.send_24dp_svg
         imageColor: isVideo ? JamiTheme.whiteColor : JamiTheme.textColor
 
         onClicked: {
diff --git a/src/mainview/components/VideoCallPageContextMenuDeviceItem.qml b/src/mainview/components/VideoCallPageContextMenuDeviceItem.qml
index 985c0dbc23ed433734d6020b569085bb5b191464..702f1d71621f187cd21eb0d1c417d319d3ec2431 100644
--- a/src/mainview/components/VideoCallPageContextMenuDeviceItem.qml
+++ b/src/mainview/components/VideoCallPageContextMenuDeviceItem.qml
@@ -45,8 +45,8 @@ GeneralMenuItem {
     indicator: null
 
     iconSource: videoCallPageContextMenuDeviceItem.checked ?
-        "qrc:/images/icons/check_box-24px.svg" :
-        "qrc:/images/icons/check_box_outline_blank-24px.svg"
+                    JamiResources.check_box_24dp_svg :
+                    JamiResources.check_box_outline_blank_24dp_svg
 
     onClicked: {
         var deviceName = videoCallPageContextMenuDeviceItem.itemName
diff --git a/src/mainview/components/WelcomePage.qml b/src/mainview/components/WelcomePage.qml
index 8263aeceb6fae5b6c71940ecc8420db296da112d..5bdff512f5f8a6d7f8cb13d0b0b2afa3d47c3f76 100644
--- a/src/mainview/components/WelcomePage.qml
+++ b/src/mainview/components/WelcomePage.qml
@@ -55,8 +55,8 @@ Rectangle {
                 Layout.bottomMargin: 10
 
                 source: JamiTheme.darkTheme ?
-                            "qrc:/images/logo-jami-standard-coul-white.svg" :
-                            "qrc:/images/logo-jami-standard-coul.svg"
+                            JamiResources.logo_jami_standard_coul_white_svg :
+                            JamiResources.logo_jami_standard_coul_svg
             }
 
             Label {
@@ -142,7 +142,7 @@ Rectangle {
                         imagePadding: 4
                         imageColor: JamiTheme.textColor
 
-                        source: "qrc:/images/icons/content_copy-24px.svg"
+                        source: JamiResources.content_copy_24dp_svg
 
                         onClicked: {
                             UtilsAdapter.setClipboardText(
diff --git a/src/qmlregister.cpp b/src/qmlregister.cpp
index b24ca19b3d9a970a6f5dd13dc93246249a5067c6..1bb6ebfa75d131b8c1aee815d061120e3e8b8a4f 100644
--- a/src/qmlregister.cpp
+++ b/src/qmlregister.cpp
@@ -41,7 +41,6 @@
 #include "filestosendlistmodel.h"
 
 #include "qrimageprovider.h"
-#include "tintedbuttonimageprovider.h"
 #include "avatarimageprovider.h"
 #include "avatarregistry.h"
 #include "appsettingsmanager.h"
@@ -175,6 +174,8 @@ registerTypes(QQmlEngine* engine,
     QML_REGISTERSINGLETONTYPE_URL(NS_CONSTANTS, "qrc:/src/constant/JamiTheme.qml", JamiTheme);
     QML_REGISTERSINGLETONTYPE_URL(NS_MODELS, "qrc:/src/constant/JamiQmlUtils.qml", JamiQmlUtils);
     QML_REGISTERSINGLETONTYPE_URL(NS_CONSTANTS, "qrc:/src/constant/JamiStrings.qml", JamiStrings);
+    QML_REGISTERSINGLETONTYPE_URL(NS_CONSTANTS, "qrc:/src/constant/JamiResources.qml", JamiResources);
+
     QML_REGISTERSINGLETONTYPE_POBJECT(NS_CONSTANTS, screenInfo, "ScreenInfo")
     QML_REGISTERSINGLETONTYPE_POBJECT(NS_CONSTANTS, lrcInstance, "LRCInstance")
 
@@ -208,8 +209,6 @@ registerTypes(QQmlEngine* engine,
     QML_REGISTERUNCREATABLE(NS_ENUMS, NetWorkManager);
 
     engine->addImageProvider(QLatin1String("qrImage"), new QrImageProvider(lrcInstance));
-    engine->addImageProvider(QLatin1String("tintedPixmap"),
-                              new TintedButtonImageProvider(lrcInstance));
     engine->addImageProvider(QLatin1String("avatarImage"),
                               new AvatarImageProvider(lrcInstance));
 
diff --git a/src/settingsview/components/AdvancedCallSettings.qml b/src/settingsview/components/AdvancedCallSettings.qml
index 8ed53453f82ae6d4dec8d27e8bab614ec95eb425..db9c69c0b66b02d10a1415fb557359e6addef68a 100644
--- a/src/settingsview/components/AdvancedCallSettings.qml
+++ b/src/settingsview/components/AdvancedCallSettings.qml
@@ -146,7 +146,7 @@ ColumnLayout {
             Layout.minimumHeight: JamiTheme.preferredFieldHeight
 
             titleField: JamiStrings.selectCustomRingtone
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             itemWidth: root.itemWidth
             onClick: ringtonePath_Dialog.open()
         }
@@ -201,7 +201,7 @@ ColumnLayout {
                 contactName: ContactName
                 contactID: ContactID
 
-                btnImgSource: "qrc:/images/icons/round-remove_circle-24px.svg"
+                btnImgSource: JamiResources.round_remove_circle_24dp_svg
                 btnToolTip: JamiStrings.removeDefaultModerator
 
                 onClicked: moderatorListWidget.currentIndex = index
@@ -226,7 +226,7 @@ ColumnLayout {
             outlined: true
             toolTipText: JamiStrings.addDefaultModerator
 
-            source: "qrc:/images/icons/round-add-24px.svg"
+            source: JamiResources.round_add_24dp_svg
 
             text: JamiStrings.addDefaultModerator
 
diff --git a/src/settingsview/components/AdvancedJamiSecuritySettings.qml b/src/settingsview/components/AdvancedJamiSecuritySettings.qml
index 75ad2bd2eb83efa8cb129925569140275ff07db6..27ebfeb04a657ef8b86d55ed4409b5d8c1dfe957 100644
--- a/src/settingsview/components/AdvancedJamiSecuritySettings.qml
+++ b/src/settingsview/components/AdvancedJamiSecuritySettings.qml
@@ -139,7 +139,7 @@ ColumnLayout {
             Layout.minimumHeight: JamiTheme.preferredFieldHeight
 
             titleField: JamiStrings.caCertificate
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             itemWidth: root.itemWidth
             onClick: caCert_Dialog.open()
         }
@@ -150,7 +150,7 @@ ColumnLayout {
             Layout.minimumHeight: JamiTheme.preferredFieldHeight
 
             titleField: JamiStrings.userCertificate
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             itemWidth: root.itemWidth
             onClick: userCert_Dialog.open()
         }
@@ -161,7 +161,7 @@ ColumnLayout {
             Layout.minimumHeight: JamiTheme.preferredFieldHeight
 
             titleField: JamiStrings.privateKey
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             itemWidth: root.itemWidth
             onClick: privateKey_Dialog.open()
         }
diff --git a/src/settingsview/components/AdvancedSIPSecuritySettings.qml b/src/settingsview/components/AdvancedSIPSecuritySettings.qml
index bd56dc9ac54a46852f87baed19db1dfad5c5abc4..20f5202c1502a641a5451b514516215ae7f268c6 100644
--- a/src/settingsview/components/AdvancedSIPSecuritySettings.qml
+++ b/src/settingsview/components/AdvancedSIPSecuritySettings.qml
@@ -206,7 +206,7 @@ ColumnLayout {
             Layout.minimumHeight: JamiTheme.preferredFieldHeight
 
             titleField: JamiStrings.caCertificate
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             itemWidth: root.itemWidth
             onClick: caCert_Dialog_SIP.open()
         }
@@ -217,7 +217,7 @@ ColumnLayout {
             Layout.minimumHeight: JamiTheme.preferredFieldHeight
 
             titleField: JamiStrings.userCertificate
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             itemWidth: root.itemWidth
             onClick: userCert_Dialog_SIP.open()
         }
@@ -228,7 +228,7 @@ ColumnLayout {
             Layout.minimumHeight: JamiTheme.preferredFieldHeight
 
             titleField: JamiStrings.privateKey
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             itemWidth: root.itemWidth
             onClick: privateKey_Dialog_SIP.open()
         }
diff --git a/src/settingsview/components/AdvancedSettings.qml b/src/settingsview/components/AdvancedSettings.qml
index f5b6eba5b0c17ed0768a31d09ccc9ad562e52cb4..b9cb3c450941cb623a8fef3f42234e3439d10704 100644
--- a/src/settingsview/components/AdvancedSettings.qml
+++ b/src/settingsview/components/AdvancedSettings.qml
@@ -79,13 +79,9 @@ ColumnLayout {
             toolTipText: JamiStrings.tipAdvancedSettingsDisplay
 
             preferredSize: 32
-            source: {
-                if (advancedSettingsView.visible) {
-                    return "qrc:/images/icons/expand_less-24px.svg"
-                } else {
-                    return "qrc:/images/icons/expand_more-24px.svg"
-                }
-            }
+            source: advancedSettingsView.visible ?
+                        JamiResources.expand_less_24dp_svg :
+                        JamiResources.expand_more_24dp_svg
 
             onClicked: {
                 advancedSettingsView.visible = !advancedSettingsView.visible
diff --git a/src/settingsview/components/BannedContacts.qml b/src/settingsview/components/BannedContacts.qml
index 0571805dd4cb42f890b7152954ad8f146519a86f..37ff07e98ff1e2313d10268800406c9e01710444 100644
--- a/src/settingsview/components/BannedContacts.qml
+++ b/src/settingsview/components/BannedContacts.qml
@@ -99,8 +99,8 @@ ColumnLayout {
             imageColor: JamiTheme.textColor
 
             source: bannedListWidget.visible?
-                        "qrc:/images/icons/expand_less-24px.svg" :
-                        "qrc:/images/icons//expand_more-24px.svg"
+                        JamiResources.expand_less_24dp_svg :
+                        JamiResources.expand_more_24dp_svg
 
             onClicked: toggleBannedContacts()
         }
@@ -127,7 +127,7 @@ ColumnLayout {
             contactName: ContactName
             contactID: ContactID
 
-            btnImgSource: "qrc:/images/icons/round-remove_circle-24px.svg"
+            btnImgSource: JamiResources.round_remove_circle_24dp_svg
             btnToolTip: JamiStrings.reinstateContact
 
             onClicked: bannedListWidget.currentIndex = index
diff --git a/src/settingsview/components/CurrentAccountSettings.qml b/src/settingsview/components/CurrentAccountSettings.qml
index b8e6dc6eb6aaa8aa902e0f1fafb80f11f40c7824..f04d07737aa13d8c0562c3de4c4a51a7c8ebbe9b 100644
--- a/src/settingsview/components/CurrentAccountSettings.qml
+++ b/src/settingsview/components/CurrentAccountSettings.qml
@@ -233,7 +233,7 @@ Rectangle {
                         JamiStrings.changeCurrentPassword : JamiStrings.setAPassword
             text: AccountAdapter.hasPassword() ? JamiStrings.changePassword : JamiStrings.setPassword
 
-            source: "qrc:/images/icons/round-edit-24px.svg"
+            source: JamiResources.round_edit_24dp_svg
 
             onClicked: {
                 passwordClicked()
@@ -256,7 +256,7 @@ Rectangle {
             toolTipText: JamiStrings.tipBackupAccount
             text: JamiStrings.backupAccountBtn
 
-            source: "qrc:/images/icons/round-save_alt-24px.svg"
+            source: JamiResources.round_save_alt_24dp_svg
 
             onClicked: {
                 exportAccountSlot()
@@ -276,7 +276,7 @@ Rectangle {
 
             text: JamiStrings.deleteAccount
 
-            source: "qrc:/images/icons/delete_forever-24px.svg"
+            source: JamiResources.delete_forever_24dp_svg
 
             onClicked: {
                 delAccountSlot()
diff --git a/src/settingsview/components/DeviceItemDelegate.qml b/src/settingsview/components/DeviceItemDelegate.qml
index 319c8982532889cf17a29bea75ba716be4293885..0e2e959f164631ea381f9230e46f5ef8008cf80e 100644
--- a/src/settingsview/components/DeviceItemDelegate.qml
+++ b/src/settingsview/components/DeviceItemDelegate.qml
@@ -77,7 +77,7 @@ ItemDelegate {
                     color: JamiTheme.textColor
                 }
             }
-            source: "qrc:/images/icons/baseline-desktop_windows-24px.svg"
+            source: JamiResources.baseline_desktop_windows_24dp_svg
         }
 
         ColumnLayout {
@@ -130,33 +130,24 @@ ItemDelegate {
             Layout.preferredHeight: JamiTheme.preferredFieldHeight
 
             imageColor: JamiTheme.textColor
-            normalColor: highlighted? JamiTheme.selectedColor : JamiTheme.editBackgroundColor
-
-            source: {
-                if(isCurrent) {
-                    var path = editable ?
-                        "qrc:/images/icons/round-save_alt-24px.svg" :
-                        "qrc:/images/icons/round-edit-24px.svg"
-                    return path
-                } else {
-                    return "qrc:/images/icons/round-remove_circle-24px.svg"
-                }
-            }
-
-            toolTipText: {
-                if(isCurrent) {
-                    if (editable) {
-                        return JamiStrings.saveNewDeviceName
-                    } else {
-                        return JamiStrings.editDeviceName
-                    }
-                } else {
-                    return JamiStrings.unlinkDevice
-                }
-            }
+            normalColor: highlighted ?
+                             JamiTheme.selectedColor :
+                             JamiTheme.editBackgroundColor
+
+            source: isCurrent ?
+                        (editable ?
+                             JamiResources.round_save_alt_24dp_svg :
+                             JamiResources.round_edit_24dp_svg) :
+                        JamiResources.round_remove_circle_24dp_svg
+
+            toolTipText: isCurrent ?
+                             (editable ?
+                                  JamiStrings.saveNewDeviceName :
+                                  JamiStrings.editDeviceName) :
+                             JamiStrings.unlinkDevice
 
             onClicked: {
-                if(isCurrent) {
+                if (isCurrent) {
                     toggleEditable()
                 } else {
                     btnRemoveDeviceClicked()
diff --git a/src/settingsview/components/LinkDeviceDialog.qml b/src/settingsview/components/LinkDeviceDialog.qml
index 288d50aac54b6ed1302358fcdf7e03049fb8c014..db1059920d869573bd9736d14d3642cc4f716db5 100644
--- a/src/settingsview/components/LinkDeviceDialog.qml
+++ b/src/settingsview/components/LinkDeviceDialog.qml
@@ -242,7 +242,7 @@ BaseDialog {
                             AnimatedImage {
                                 id: spinnerMovie
                                 anchors.fill: parent
-                                source: "qrc:/images/jami_eclipse_spinner.gif"
+                                source: JamiResources.jami_eclipse_spinner_gif
                                 playing: exportingSpinner.visible
                                 paused: false
                                 fillMode: Image.PreserveAspectFit
diff --git a/src/settingsview/components/LinkedDevices.qml b/src/settingsview/components/LinkedDevices.qml
index e22f2761511a4fb5369c2459a3e8cadf18a41fe0..ebc0468cb32b5e17305dfa505b79a5f5d9e92ae2 100644
--- a/src/settingsview/components/LinkedDevices.qml
+++ b/src/settingsview/components/LinkedDevices.qml
@@ -167,7 +167,7 @@ ColumnLayout {
         outlined: true
         toolTipText: JamiStrings.tipLinkNewDevice
 
-        source: "qrc:/images/icons/round-add-24px.svg"
+        source: JamiResources.round_add_24dp_svg
 
         text: JamiStrings.linkAnotherDevice
 
diff --git a/src/settingsview/components/MediaCodecDelegate.qml b/src/settingsview/components/MediaCodecDelegate.qml
index 278386d1a53ea4e7538015488f078c441f527a3f..e202cefc18d5696a95380ee930e59b24bb22a880 100644
--- a/src/settingsview/components/MediaCodecDelegate.qml
+++ b/src/settingsview/components/MediaCodecDelegate.qml
@@ -70,8 +70,8 @@ ItemDelegate {
                 width: checkBoxWidth
                 height: checkBoxWidth
                 source: checkBoxIsEnabled.checked ?
-                    "qrc:/images/icons/check_box-24px.svg" :
-                    "qrc:/images/icons/check_box_outline_blank-24px.svg"
+                            JamiResources.check_box_24dp_svg :
+                            JamiResources.check_box_outline_blank_24dp_svg
             }
 
             nextCheckState: function() {
diff --git a/src/settingsview/components/MediaSettings.qml b/src/settingsview/components/MediaSettings.qml
index 1463c0a322ef51aa91177b67b7c25a9aa0bf9ecb..aac8f38d28aec6614f5d8b96ffbd8fd7c4967632 100644
--- a/src/settingsview/components/MediaSettings.qml
+++ b/src/settingsview/components/MediaSettings.qml
@@ -97,13 +97,13 @@ ColumnLayout {
         }
 
         PushButton {
-            source: "qrc:/images/icons/arrow_drop_down-24px.svg"
+            source: JamiResources.arrow_drop_down_24dp_svg
             imageColor: JamiTheme.textColor
             onClicked: decreaseCodecPriority()
         }
 
         PushButton {
-            source: "qrc:/images/icons/arrow_drop_up-24px.svg"
+            source: JamiResources.arrow_drop_up_24dp_svg
             imageColor: JamiTheme.textColor
             onClicked: increaseCodecPriority()
         }
diff --git a/src/settingsview/components/NameRegistrationDialog.qml b/src/settingsview/components/NameRegistrationDialog.qml
index 4f7a6b5e073de9eefa1e1cf0f0794e43f35fd6d0..208a522d6d8e9aaeb94cecf5cb3edb44bd29c52c 100644
--- a/src/settingsview/components/NameRegistrationDialog.qml
+++ b/src/settingsview/components/NameRegistrationDialog.qml
@@ -222,7 +222,7 @@ BaseDialog {
                             AnimatedImage {
                                 id: spinnerMovie
                                 anchors.fill: parent
-                                source: "qrc:/images/jami_eclipse_spinner.gif"
+                                source: JamiResources.jami_eclipse_spinner_gif
                                 playing: spinnerLabel.visible
                                 paused: false
                                 fillMode: Image.PreserveAspectFit
diff --git a/src/settingsview/components/PluginItemDelegate.qml b/src/settingsview/components/PluginItemDelegate.qml
index 977e694d4f59523be242b5cee0c7c4550c77eb93..5ae56e8f94476d480384dceba0e87e7b91caba8c 100644
--- a/src/settingsview/components/PluginItemDelegate.qml
+++ b/src/settingsview/components/PluginItemDelegate.qml
@@ -140,7 +140,7 @@ ItemDelegate {
                 Layout.topMargin: 8
                 Layout.rightMargin: 8
 
-                source: "qrc:/images/icons/round-settings-24px.svg"
+                source: JamiResources.round_settings_24dp_svg
                 normalColor: JamiTheme.primaryBackgroundColor
                 imageColor: JamiTheme.textColor
                 toolTipText: JamiStrings.showHidePrefs
diff --git a/src/settingsview/components/PluginListPreferencesView.qml b/src/settingsview/components/PluginListPreferencesView.qml
index 3fffe87509913a90dbd260cc433f66b19385519b..f7e2a8b582a1d738095fd8a57d345d5f5d2b410a 100644
--- a/src/settingsview/components/PluginListPreferencesView.qml
+++ b/src/settingsview/components/PluginListPreferencesView.qml
@@ -380,7 +380,7 @@ Rectangle {
                 pressedColor: JamiTheme.buttonTintedBlackPressed
                 outlined: true
 
-                source: "qrc:/images/icons/settings_backup_restore-24px.svg"
+                source: JamiResources.settings_backup_restore_24dp_svg
 
                 text: JamiStrings.reset
 
@@ -398,7 +398,7 @@ Rectangle {
                 pressedColor: JamiTheme.buttonTintedBlackPressed
                 outlined: true
 
-                source: "qrc:/images/icons/delete-24px.svg"
+                source: JamiResources.delete_24dp_svg
 
                 text: qsTr("Uninstall")
 
diff --git a/src/settingsview/components/PluginListSettingsView.qml b/src/settingsview/components/PluginListSettingsView.qml
index 07b31c63305237f445d7ce99f4885f832bd686b9..f1bbc03e2fb09470122eba3b4f2740042995ce71 100644
--- a/src/settingsview/components/PluginListSettingsView.qml
+++ b/src/settingsview/components/PluginListSettingsView.qml
@@ -108,7 +108,7 @@ Rectangle {
             outlined: true
             toolTipText: JamiStrings.addNewPlugin
 
-            source: "qrc:/images/icons/round-add-24px.svg"
+            source: JamiResources.round_add_24dp_svg
 
             text: JamiStrings.installPlugin
 
diff --git a/src/settingsview/components/RecordingSettings.qml b/src/settingsview/components/RecordingSettings.qml
index d3d999c0188069bab439bdfac28f6bbcb6be8c87..f233a0686611e65ac53375ccfe789e1f12c11139 100644
--- a/src/settingsview/components/RecordingSettings.qml
+++ b/src/settingsview/components/RecordingSettings.qml
@@ -183,7 +183,7 @@ ColumnLayout {
 
             toolTipText: JamiStrings.tipRecordFolder
             text: recordPath
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             color: JamiTheme.buttonTintedGrey
             hoveredColor: JamiTheme.buttonTintedGreyHovered
             pressedColor: JamiTheme.buttonTintedGreyPressed
diff --git a/src/settingsview/components/SettingsHeader.qml b/src/settingsview/components/SettingsHeader.qml
index f7b6b60fd425323d731a5b55847415814aef0340..b5336b59da9414a811293fc7b2534eb9ca8384cd 100644
--- a/src/settingsview/components/SettingsHeader.qml
+++ b/src/settingsview/components/SettingsHeader.qml
@@ -40,19 +40,15 @@ RowLayout {
         Layout.preferredHeight: JamiTheme.preferredFieldHeight
 
         radius: JamiTheme.preferredFieldHeight
-        source: "qrc:/images/icons/ic_arrow_back_24px.svg"
-
+        source: JamiResources.ic_arrow_back_24dp_svg
         normalColor: JamiTheme.backgroundColor
         imageColor: JamiTheme.textColor
-
         toolTipText: JamiStrings.back
         hoverEnabled: true
 
         visible: mainView.sidePanelOnly
 
-        onClicked: {
-            backArrowClicked()
-        }
+        onClicked: backArrowClicked()
     }
 
     Label {
diff --git a/src/settingsview/components/SettingsMenu.qml b/src/settingsview/components/SettingsMenu.qml
index af8384e8fa850816dc838dfc68fefa061428c4e0..70d92008e566a59bc75b3b8f4259b2950c0d543c 100644
--- a/src/settingsview/components/SettingsMenu.qml
+++ b/src/settingsview/components/SettingsMenu.qml
@@ -34,13 +34,13 @@ Rectangle {
 
     Component.onCompleted: {
         listModel.append({ 'type': SettingsView.Account, 'name': qsTr("Account"),
-                         'iconSource': "qrc:/images/icons/account_black-24dp.svg"})
+                         'iconSource': JamiResources.account_24dp_svg})
         listModel.append({ 'type': SettingsView.General, 'name': qsTr("General"),
-                         'iconSource': "qrc:/images/icons/gear_black-24dp.svg"})
+                         'iconSource': JamiResources.gear_black_24dp_svg})
         listModel.append({ 'type': SettingsView.Media, 'name': qsTr("Audio/Video"),
-                         'iconSource': "qrc:/images/icons/media_black-24dp.svg"})
+                         'iconSource': JamiResources.media_black_24dp_svg})
         listModel.append({ 'type': SettingsView.Plugin, 'name': qsTr("Plugin"),
-                         'iconSource': "qrc:/images/icons/plugin_settings_black-24dp.svg"})
+                         'iconSource': JamiResources.plugin_settings_black_24dp_svg})
     }
 
     anchors.fill: parent
diff --git a/src/settingsview/components/SystemSettings.qml b/src/settingsview/components/SystemSettings.qml
index 4737cdea22e4e75dcabf7dc0f80483bfe8d9eb14..cb2f0e7754829a12cde01e178cb12c7825ee8542 100644
--- a/src/settingsview/components/SystemSettings.qml
+++ b/src/settingsview/components/SystemSettings.qml
@@ -152,7 +152,7 @@ ColumnLayout {
 
             toolTipText: JamiStrings.tipChooseDownloadFolder
             text: downloadPath
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             color: JamiTheme.buttonTintedGrey
             hoveredColor: JamiTheme.buttonTintedGreyHovered
             pressedColor: JamiTheme.buttonTintedGreyPressed
diff --git a/src/systemtray.cpp b/src/systemtray.cpp
index 644c7c69989763d3a979f6e4a4a3194500bdbfa0..1123781ece97c98c8e2711928b6c1e2e3cace71d 100644
--- a/src/systemtray.cpp
+++ b/src/systemtray.cpp
@@ -141,9 +141,9 @@ void
 SystemTray::setCount(int count)
 {
     if (count == 0) {
-        setIcon(QIcon(":images/jami.svg"));
+        setIcon(QIcon(":/images/jami.svg"));
     } else {
-        setIcon(QIcon(":images/jami-new.svg"));
+        setIcon(QIcon(":/images/jami-new.svg"));
     }
 }
 
diff --git a/src/tintedbuttonimageprovider.h b/src/tintedbuttonimageprovider.h
deleted file mode 100644
index 073b7b081787bcd7417ebcd2895fb630edd77e51..0000000000000000000000000000000000000000
--- a/src/tintedbuttonimageprovider.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2020 by Savoir-faire Linux
- * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quickimageproviderbase.h"
-#include "lrcinstance.h"
-#include "utils.h"
-
-#include <QPair>
-#include <QString>
-
-class TintedButtonImageProvider : public QuickImageProviderBase
-{
-public:
-    TintedButtonImageProvider(LRCInstance* instance = nullptr)
-        : QuickImageProviderBase(QQuickImageProvider::Pixmap,
-                                  QQmlImageProviderBase::ForceAsynchronousImageLoading,
-                                  instance)
-    {}
-
-    QPixmap requestPixmap(const QString& id, QSize* size, const QSize& requestedSize) override
-    {
-        Q_UNUSED(size);
-
-        QColor tintedColor;
-
-        auto list = id.split('+', Qt::SkipEmptyParts);
-
-        if (list.size() == 2) {
-            QPixmap pixmapToSend(":/images/icons/" + list[0]);
-            if (!requestedSize.isEmpty()) {
-                pixmapToSend = pixmapToSend.scaled(requestedSize, Qt::KeepAspectRatio);
-            } else {
-                pixmapToSend = pixmapToSend.scaled(QSize(30, 30), Qt::KeepAspectRatio);
-            }
-            tintedColor.setNamedColor(list[1]);
-
-            return Utils::generateTintedPixmap(pixmapToSend, tintedColor);
-        }
-
-        return QPixmap();
-    }
-};
diff --git a/src/utils.cpp b/src/utils.cpp
index d042f3030efbceda3efa8391fe6798432a61a708..ef00633e99388d8e5efd4991a3610316e9d2b91d 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -493,7 +493,7 @@ QString
 Utils::getProjectCredits()
 {
     QString credits;
-    QFile projectCreditsFile(":/projectcredits.html");
+    QFile projectCreditsFile(":/misc/projectcredits.html");
     if (!projectCreditsFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
         qDebug().noquote() << " Project Credits failed to load";
         return {};
diff --git a/src/wizardview/components/CollapsiblePasswordWidget.qml b/src/wizardview/components/CollapsiblePasswordWidget.qml
deleted file mode 100644
index c9bf8f645805eef5e6aa620f2697fea02ceefbdd..0000000000000000000000000000000000000000
--- a/src/wizardview/components/CollapsiblePasswordWidget.qml
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2020 by Savoir-faire Linux
- * Author: Yang Wang <yang.wang@savoirfairelinux.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <https://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.14
-import QtQuick.Layouts 1.14
-import QtQuick.Controls 2.14
-
-import net.jami.Constants 1.0
-
-import "../../commoncomponents"
-
-// An independent widget that keeps the password's textfields, including password field and confirm password field
-GridLayout {
-    id: root
-
-    property alias text_passwordEditAlias: passwordEdit.text
-    property alias text_confirmPasswordEditAlias: confirmPasswordEdit.text
-    property alias state_passwordStatusLabelAlias: passwordStatusLabel.passwordStatusState
-
-    property bool visibleCollapsble: false
-
-    function clearAllTextFields() {
-        passwordEdit.clear()
-        confirmPasswordEdit.clear()
-    }
-
-    visible: visibleCollapsble
-    Layout.fillWidth: true
-    rowSpacing: 6
-    columnSpacing: 6
-
-    rows: 2
-    columns: 2
-
-    Layout.leftMargin: 32
-
-    MaterialLineEdit {
-        id: passwordEdit
-
-        visible: visibleCollapsble
-
-        Layout.row: 0
-        Layout.column: 0
-
-        fieldLayoutWidth: 261
-
-        Layout.alignment: Qt.AlignHCenter
-
-        selectByMouse: true
-        echoMode: TextInput.Password
-        placeholderText: qsTr("Password")
-        font.pointSize: 10
-        font.kerning: true
-    }
-
-    Item {
-        Layout.row: 0
-        Layout.column: 1
-
-        Layout.maximumWidth: 32
-        Layout.preferredWidth: 32
-        Layout.minimumWidth: 32
-
-        Layout.maximumHeight: 30
-        Layout.preferredHeight: 30
-        Layout.minimumHeight: 30
-    }
-
-    MaterialLineEdit {
-        id: confirmPasswordEdit
-
-        visible: visibleCollapsble
-
-        Layout.row: 1
-        Layout.column: 0
-
-        fieldLayoutWidth: 261
-
-        Layout.alignment: Qt.AlignHCenter
-
-        selectByMouse: true
-        echoMode: TextInput.Password
-        placeholderText: qsTr("Confirm Password")
-        font.pointSize: 10
-        font.kerning: true
-    }
-
-    Label {
-        id: passwordStatusLabel
-
-        visible: visibleCollapsble
-
-        Layout.row: 1
-        Layout.column: 1
-
-        Layout.maximumWidth: 32
-        Layout.preferredWidth: 32
-        Layout.minimumWidth: 32
-
-        Layout.maximumHeight: 30
-        Layout.preferredHeight: 30
-        Layout.minimumHeight: 30
-
-        Layout.alignment: Qt.AlignRight
-
-        property string passwordStatusState: "Hide"
-
-        background: {
-            switch (passwordStatusState) {
-            case "Hide":
-                return Qt.createQmlObject("import QtQuick 2.14;
-import \"qrc:/src/constant/\";
-Rectangle {
-anchors.fill: parent;
-color: \"transparent\"; }", passwordStatusLabel)
-            case "Fail":
-                return Qt.createQmlObject("import QtQuick 2.14;
-import \"qrc:/src/constant/\";
-Rectangle {
-anchors.fill: parent;
-Image{
-anchors.fill: parent;
-source: \"image://tintedPixmap/\"+ (\"qrc:/images/icons/baseline-close-24px.svg\").replace(\"qrc:/images/icons/\",\"\") + \"+\" + JamiTheme.red_;
-mipmap: true;}
-}", passwordStatusLabel)
-            case "Success":
-                return Qt.createQmlObject("import QtQuick 2.14;
-import \"qrc:/src/constant/\";
-Rectangle {
-anchors.fill: parent;
-Image {
-anchors.fill: parent;
-source: \"image://tintedPixmap/\"+ (\"qrc:/images/icons/baseline-done-24px.svg\").replace(\"qrc:/images/icons/\",\"\") + \"+\" + JamiTheme.presenceGreen_;
-mipmap: true;}
-}", passwordStatusLabel)
-            }
-        }
-    }
-}
diff --git a/src/wizardview/components/ConnectToAccountManagerPage.qml b/src/wizardview/components/ConnectToAccountManagerPage.qml
index ae2610aed5162f9e07bf7906670a28e0236e12ff..378821f862c1e4549831f58eaa5f1e31dbaa8fa9 100644
--- a/src/wizardview/components/ConnectToAccountManagerPage.qml
+++ b/src/wizardview/components/ConnectToAccountManagerPage.qml
@@ -210,7 +210,7 @@ Rectangle {
         normalColor: root.color
         imageColor: JamiTheme.primaryForegroundColor
 
-        source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+        source: JamiResources.ic_arrow_back_24dp_svg
         toolTipText: JamiStrings.backToWelcome
 
         onClicked: leavePage()
diff --git a/src/wizardview/components/CreateAccountPage.qml b/src/wizardview/components/CreateAccountPage.qml
index e3151663c7400f7ae6112f771b04f4bd75157566..0329736b4512d67b0c15a725fecca21f8f11caac 100644
--- a/src/wizardview/components/CreateAccountPage.qml
+++ b/src/wizardview/components/CreateAccountPage.qml
@@ -368,7 +368,7 @@ Rectangle {
         normalColor: root.color
         imageColor: JamiTheme.primaryForegroundColor
 
-        source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+        source: JamiResources.ic_arrow_back_24dp_svg
         toolTipText: JamiStrings.back
 
         onClicked: {
diff --git a/src/wizardview/components/CreateSIPAccountPage.qml b/src/wizardview/components/CreateSIPAccountPage.qml
index a6b8d389cccfb3f1cc1a90eccc7005fe0ca71617..bb3ed416a126b7e63e0c7216fe816fd4f7a02c1b 100644
--- a/src/wizardview/components/CreateSIPAccountPage.qml
+++ b/src/wizardview/components/CreateSIPAccountPage.qml
@@ -175,7 +175,7 @@ Rectangle {
         normalColor: root.color
         imageColor: JamiTheme.primaryForegroundColor
 
-        source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+        source: JamiResources.ic_arrow_back_24dp_svg
         toolTipText: JamiStrings.backToWelcome
 
         onClicked: leavePage()
diff --git a/src/wizardview/components/ImportFromBackupPage.qml b/src/wizardview/components/ImportFromBackupPage.qml
index f1078d521f3fbbcfdccd381561123653b414d756..a7e5f67e3a5f590afb0ae80d3c54f3fcddb734e4 100644
--- a/src/wizardview/components/ImportFromBackupPage.qml
+++ b/src/wizardview/components/ImportFromBackupPage.qml
@@ -99,7 +99,7 @@ Rectangle {
 
             text: fileImportBtnText
             toolTipText: JamiStrings.importAccountArchive
-            source: "qrc:/images/icons/round-folder-24px.svg"
+            source: JamiResources.round_folder_24dp_svg
             color: JamiTheme.buttonTintedGrey
             hoveredColor: JamiTheme.buttonTintedGreyHovered
             pressedColor: JamiTheme.buttonTintedGreyPressed
@@ -200,7 +200,7 @@ Rectangle {
         normalColor: root.color
         imageColor: JamiTheme.primaryForegroundColor
 
-        source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+        source: JamiResources.ic_arrow_back_24dp_svg
         toolTipText: qsTr("Back to welcome page")
 
         onClicked: leavePage()
diff --git a/src/wizardview/components/ImportFromDevicePage.qml b/src/wizardview/components/ImportFromDevicePage.qml
index 3f15c661759873220c96961d807ad208ac6486f8..2c26e271d37c48316d9a04cfe832eb4c0ce4fd31 100644
--- a/src/wizardview/components/ImportFromDevicePage.qml
+++ b/src/wizardview/components/ImportFromDevicePage.qml
@@ -176,7 +176,7 @@ Rectangle {
         normalColor: root.color
         imageColor: JamiTheme.primaryForegroundColor
 
-        source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+        source: JamiResources.ic_arrow_back_24dp_svg
         toolTipText: qsTr("Back to welcome page")
 
         onClicked: leavePage()
diff --git a/src/wizardview/components/WelcomePage.qml b/src/wizardview/components/WelcomePage.qml
index 482d94d4befd4c6ac8019b91c5c4c27668acb4b1..7338c77d4b4266421ab3da9b4b34d9d4c4836fb2 100644
--- a/src/wizardview/components/WelcomePage.qml
+++ b/src/wizardview/components/WelcomePage.qml
@@ -70,8 +70,8 @@ Rectangle {
             Layout.preferredHeight: 110
 
             source: JamiTheme.darkTheme ?
-                        "qrc:/images/logo-jami-standard-coul-white.svg" :
-                        "qrc:/images/logo-jami-standard-coul.svg"
+                        JamiResources.logo_jami_standard_coul_white_svg :
+                        JamiResources.logo_jami_standard_coul_svg
         }
 
         MaterialButton {
@@ -84,7 +84,7 @@ Rectangle {
             text: JamiStrings.createNewJA
             fontCapitalization: Font.AllUppercase
             toolTipText: qsTr("Create new Jami account")
-            source: "qrc:/images/default_avatar_overlay.svg"
+            source: JamiResources.default_avatar_overlay_svg
             color: JamiTheme.buttonTintedBlue
             hoveredColor: JamiTheme.buttonTintedBlueHovered
             pressedColor: JamiTheme.buttonTintedBluePressed
@@ -104,7 +104,7 @@ Rectangle {
             text: JamiStrings.createRV
             fontCapitalization: Font.AllUppercase
             toolTipText: JamiStrings.createNewRV
-            source: "qrc:/images/icons/groups-24px.svg"
+            source: JamiResources.groups_24dp_svg
             color: JamiTheme.buttonTintedBlue
             hoveredColor: JamiTheme.buttonTintedBlueHovered
             pressedColor: JamiTheme.buttonTintedBluePressed
@@ -124,7 +124,7 @@ Rectangle {
             text: JamiStrings.linkFromAnotherDevice
             fontCapitalization: Font.AllUppercase
             toolTipText: qsTr("Import account from other device")
-            source: "qrc:/images/icons/devices-24px.svg"
+            source: JamiResources.devices_24dp_svg
             color: JamiTheme.buttonTintedBlue
             hoveredColor: JamiTheme.buttonTintedBlueHovered
             pressedColor: JamiTheme.buttonTintedBluePressed
@@ -144,7 +144,7 @@ Rectangle {
             text: JamiStrings.connectFromBackup
             fontCapitalization: Font.AllUppercase
             toolTipText: qsTr("Import account from backup file")
-            source: "qrc:/images/icons/backup-24px.svg"
+            source: JamiResources.backup_24dp_svg
             color: JamiTheme.buttonTintedBlue
             hoveredColor: JamiTheme.buttonTintedBlueHovered
             pressedColor: JamiTheme.buttonTintedBluePressed
@@ -194,7 +194,7 @@ Rectangle {
             text: JamiStrings.connectJAMSServer
             fontCapitalization: Font.AllUppercase
             toolTipText: JamiStrings.createFromJAMS
-            source: "qrc:/images/icons/router-24px.svg"
+            source: JamiResources.router_24dp_svg
             color: JamiTheme.buttonTintedBlue
             hoveredColor: JamiTheme.buttonTintedBlueHovered
             pressedColor: JamiTheme.buttonTintedBluePressed
@@ -217,7 +217,7 @@ Rectangle {
             text: JamiStrings.addSIPAccount
             fontCapitalization: Font.AllUppercase
             toolTipText: qsTr("Create new SIP account")
-            source: "qrc:/images/default_avatar_overlay.svg"
+            source: JamiResources.default_avatar_overlay_svg
             color: JamiTheme.buttonTintedBlue
             hoveredColor: JamiTheme.buttonTintedBlueHovered
             pressedColor: JamiTheme.buttonTintedBluePressed
@@ -253,7 +253,7 @@ Rectangle {
         normalColor: root.color
         imageColor: JamiTheme.primaryForegroundColor
 
-        source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+        source: JamiResources.ic_arrow_back_24dp_svg
         toolTipText: JamiStrings.back
 
         onClicked: leavePage()