diff --git a/CMakeLists.txt b/CMakeLists.txt
index ae9604a1372ac285c10c7a8392fa64304da802e3..a3e88ea5ce9a820890e1612082c2520272c68aed 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,12 +39,12 @@ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
     qt_add_executable(Vivy
         MANUAL_FINALIZATION
         ${PROJECT_SOURCES}
-        utils/rsc/VivyRessources.qrc
+        rsc/VivyRessources.qrc
     )
 else()
     add_executable(Vivy
         ${PROJECT_SOURCES}
-        utils/rsc/VivyRessources.qrc
+        rsc/VivyRessources.qrc
     )
 endif()
 
diff --git a/utils/rsc/.gitignore b/rsc/.gitignore
similarity index 100%
rename from utils/rsc/.gitignore
rename to rsc/.gitignore
diff --git a/utils/rsc/VivyRessources.qrc b/rsc/VivyRessources.qrc
similarity index 99%
rename from utils/rsc/VivyRessources.qrc
rename to rsc/VivyRessources.qrc
index 0f6f69913c557afae767cb9ddda9c2726912ce01..dcfe44e1bdf40c813527a1927603d2cb320b5c3c 100644
--- a/utils/rsc/VivyRessources.qrc
+++ b/rsc/VivyRessources.qrc
@@ -1,9 +1,12 @@
+<!-- vim: ft=xml
+-->
 <!DOCTYPE RCC><RCC version="1.0">
 <qresource>
     <file>icons/vivy.png</file>
 
     <!-- Fonts, FiraCode is OFL-1.1, NotoSans is APACHE-2.0 -->
     <file>fonts/FiraCode-Regular.ttf</file>
+    <file>fonts/FiraCode-Bold.ttf</file>
     <file>fonts/NotoSans-Bold.ttf</file>
     <file>fonts/NotoSans-Italic.ttf</file>
     <file>fonts/NotoSans-Regular.ttf</file>
diff --git a/rsc/fonts/FiraCode-Bold.ttf b/rsc/fonts/FiraCode-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..39265a19da744d4a4f9dc2a3c32f184745829a93
Binary files /dev/null and b/rsc/fonts/FiraCode-Bold.ttf differ
diff --git a/utils/rsc/fonts/FiraCode-Regular.ttf b/rsc/fonts/FiraCode-Regular.ttf
similarity index 100%
rename from utils/rsc/fonts/FiraCode-Regular.ttf
rename to rsc/fonts/FiraCode-Regular.ttf
diff --git a/utils/rsc/fonts/NotoSans-Bold.ttf b/rsc/fonts/NotoSans-Bold.ttf
similarity index 100%
rename from utils/rsc/fonts/NotoSans-Bold.ttf
rename to rsc/fonts/NotoSans-Bold.ttf
diff --git a/utils/rsc/fonts/NotoSans-BoldItalic.ttf b/rsc/fonts/NotoSans-BoldItalic.ttf
similarity index 100%
rename from utils/rsc/fonts/NotoSans-BoldItalic.ttf
rename to rsc/fonts/NotoSans-BoldItalic.ttf
diff --git a/utils/rsc/fonts/NotoSans-Italic.ttf b/rsc/fonts/NotoSans-Italic.ttf
similarity index 100%
rename from utils/rsc/fonts/NotoSans-Italic.ttf
rename to rsc/fonts/NotoSans-Italic.ttf
diff --git a/utils/rsc/fonts/NotoSans-Regular.ttf b/rsc/fonts/NotoSans-Regular.ttf
similarity index 100%
rename from utils/rsc/fonts/NotoSans-Regular.ttf
rename to rsc/fonts/NotoSans-Regular.ttf
diff --git a/utils/rsc/icons/breeze-dark/document-new.svg b/rsc/icons/breeze-dark/document-new.svg
similarity index 100%
rename from utils/rsc/icons/breeze-dark/document-new.svg
rename to rsc/icons/breeze-dark/document-new.svg
diff --git a/utils/rsc/icons/breeze-dark/document-open.svg b/rsc/icons/breeze-dark/document-open.svg
similarity index 100%
rename from utils/rsc/icons/breeze-dark/document-open.svg
rename to rsc/icons/breeze-dark/document-open.svg
diff --git a/utils/rsc/icons/breeze-dark/document-save-as.svg b/rsc/icons/breeze-dark/document-save-as.svg
similarity index 100%
rename from utils/rsc/icons/breeze-dark/document-save-as.svg
rename to rsc/icons/breeze-dark/document-save-as.svg
diff --git a/utils/rsc/icons/breeze-dark/document-save.svg b/rsc/icons/breeze-dark/document-save.svg
similarity index 100%
rename from utils/rsc/icons/breeze-dark/document-save.svg
rename to rsc/icons/breeze-dark/document-save.svg
diff --git a/utils/rsc/icons/breeze-dark/folder.svg b/rsc/icons/breeze-dark/folder.svg
similarity index 100%
rename from utils/rsc/icons/breeze-dark/folder.svg
rename to rsc/icons/breeze-dark/folder.svg
diff --git a/utils/rsc/icons/breeze-dark/help-about.svg b/rsc/icons/breeze-dark/help-about.svg
similarity index 100%
rename from utils/rsc/icons/breeze-dark/help-about.svg
rename to rsc/icons/breeze-dark/help-about.svg
diff --git a/utils/rsc/icons/breeze-dark/text-x-generic.svg b/rsc/icons/breeze-dark/text-x-generic.svg
similarity index 100%
rename from utils/rsc/icons/breeze-dark/text-x-generic.svg
rename to rsc/icons/breeze-dark/text-x-generic.svg
diff --git a/utils/rsc/icons/breeze-light/document-new.svg b/rsc/icons/breeze-light/document-new.svg
similarity index 100%
rename from utils/rsc/icons/breeze-light/document-new.svg
rename to rsc/icons/breeze-light/document-new.svg
diff --git a/utils/rsc/icons/breeze-light/document-open.svg b/rsc/icons/breeze-light/document-open.svg
similarity index 100%
rename from utils/rsc/icons/breeze-light/document-open.svg
rename to rsc/icons/breeze-light/document-open.svg
diff --git a/utils/rsc/icons/breeze-light/document-save-as.svg b/rsc/icons/breeze-light/document-save-as.svg
similarity index 100%
rename from utils/rsc/icons/breeze-light/document-save-as.svg
rename to rsc/icons/breeze-light/document-save-as.svg
diff --git a/utils/rsc/icons/breeze-light/document-save.svg b/rsc/icons/breeze-light/document-save.svg
similarity index 100%
rename from utils/rsc/icons/breeze-light/document-save.svg
rename to rsc/icons/breeze-light/document-save.svg
diff --git a/utils/rsc/icons/breeze-light/folder.svg b/rsc/icons/breeze-light/folder.svg
similarity index 100%
rename from utils/rsc/icons/breeze-light/folder.svg
rename to rsc/icons/breeze-light/folder.svg
diff --git a/utils/rsc/icons/breeze-light/help-about.svg b/rsc/icons/breeze-light/help-about.svg
similarity index 100%
rename from utils/rsc/icons/breeze-light/help-about.svg
rename to rsc/icons/breeze-light/help-about.svg
diff --git a/utils/rsc/icons/breeze-light/text-x-generic.svg b/rsc/icons/breeze-light/text-x-generic.svg
similarity index 100%
rename from utils/rsc/icons/breeze-light/text-x-generic.svg
rename to rsc/icons/breeze-light/text-x-generic.svg
diff --git a/utils/rsc/icons/vivy.png b/rsc/icons/vivy.png
similarity index 100%
rename from utils/rsc/icons/vivy.png
rename to rsc/icons/vivy.png
diff --git a/utils/rsc/licence/APACHE-2.0 b/rsc/licence/APACHE-2.0
similarity index 100%
rename from utils/rsc/licence/APACHE-2.0
rename to rsc/licence/APACHE-2.0
diff --git a/utils/rsc/licence/CCAI-4.0 b/rsc/licence/CCAI-4.0
similarity index 100%
rename from utils/rsc/licence/CCAI-4.0
rename to rsc/licence/CCAI-4.0
diff --git a/utils/rsc/licence/LGPL-V2.0 b/rsc/licence/LGPL-V2.0
similarity index 100%
rename from utils/rsc/licence/LGPL-V2.0
rename to rsc/licence/LGPL-V2.0
diff --git a/utils/rsc/licence/LGPL-V2.1 b/rsc/licence/LGPL-V2.1
similarity index 100%
rename from utils/rsc/licence/LGPL-V2.1
rename to rsc/licence/LGPL-V2.1
diff --git a/utils/rsc/licence/LGPL-V3 b/rsc/licence/LGPL-V3
similarity index 100%
rename from utils/rsc/licence/LGPL-V3
rename to rsc/licence/LGPL-V3
diff --git a/utils/rsc/licence/MIT b/rsc/licence/MIT
similarity index 100%
rename from utils/rsc/licence/MIT
rename to rsc/licence/MIT
diff --git a/utils/rsc/licence/OFL-1.1 b/rsc/licence/OFL-1.1
similarity index 100%
rename from utils/rsc/licence/OFL-1.1
rename to rsc/licence/OFL-1.1
diff --git a/utils/rsc/qdarkstyle_dark.qss b/rsc/qdarkstyle_dark.qss
similarity index 100%
rename from utils/rsc/qdarkstyle_dark.qss
rename to rsc/qdarkstyle_dark.qss
diff --git a/utils/rsc/qdarkstyle_light.qss b/rsc/qdarkstyle_light.qss
similarity index 100%
rename from utils/rsc/qdarkstyle_light.qss
rename to rsc/qdarkstyle_light.qss
diff --git a/utils/rsc/rc_dark/arrow_down.png b/rsc/rc_dark/arrow_down.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_down.png
rename to rsc/rc_dark/arrow_down.png
diff --git a/utils/rsc/rc_dark/arrow_down@2x.png b/rsc/rc_dark/arrow_down@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_down@2x.png
rename to rsc/rc_dark/arrow_down@2x.png
diff --git a/utils/rsc/rc_dark/arrow_down_disabled.png b/rsc/rc_dark/arrow_down_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_down_disabled.png
rename to rsc/rc_dark/arrow_down_disabled.png
diff --git a/utils/rsc/rc_dark/arrow_down_disabled@2x.png b/rsc/rc_dark/arrow_down_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_down_disabled@2x.png
rename to rsc/rc_dark/arrow_down_disabled@2x.png
diff --git a/utils/rsc/rc_dark/arrow_down_focus.png b/rsc/rc_dark/arrow_down_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_down_focus.png
rename to rsc/rc_dark/arrow_down_focus.png
diff --git a/utils/rsc/rc_dark/arrow_down_focus@2x.png b/rsc/rc_dark/arrow_down_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_down_focus@2x.png
rename to rsc/rc_dark/arrow_down_focus@2x.png
diff --git a/utils/rsc/rc_dark/arrow_down_pressed.png b/rsc/rc_dark/arrow_down_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_down_pressed.png
rename to rsc/rc_dark/arrow_down_pressed.png
diff --git a/utils/rsc/rc_dark/arrow_down_pressed@2x.png b/rsc/rc_dark/arrow_down_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_down_pressed@2x.png
rename to rsc/rc_dark/arrow_down_pressed@2x.png
diff --git a/utils/rsc/rc_dark/arrow_left.png b/rsc/rc_dark/arrow_left.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_left.png
rename to rsc/rc_dark/arrow_left.png
diff --git a/utils/rsc/rc_dark/arrow_left@2x.png b/rsc/rc_dark/arrow_left@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_left@2x.png
rename to rsc/rc_dark/arrow_left@2x.png
diff --git a/utils/rsc/rc_dark/arrow_left_disabled.png b/rsc/rc_dark/arrow_left_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_left_disabled.png
rename to rsc/rc_dark/arrow_left_disabled.png
diff --git a/utils/rsc/rc_dark/arrow_left_disabled@2x.png b/rsc/rc_dark/arrow_left_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_left_disabled@2x.png
rename to rsc/rc_dark/arrow_left_disabled@2x.png
diff --git a/utils/rsc/rc_dark/arrow_left_focus.png b/rsc/rc_dark/arrow_left_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_left_focus.png
rename to rsc/rc_dark/arrow_left_focus.png
diff --git a/utils/rsc/rc_dark/arrow_left_focus@2x.png b/rsc/rc_dark/arrow_left_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_left_focus@2x.png
rename to rsc/rc_dark/arrow_left_focus@2x.png
diff --git a/utils/rsc/rc_dark/arrow_left_pressed.png b/rsc/rc_dark/arrow_left_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_left_pressed.png
rename to rsc/rc_dark/arrow_left_pressed.png
diff --git a/utils/rsc/rc_dark/arrow_left_pressed@2x.png b/rsc/rc_dark/arrow_left_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_left_pressed@2x.png
rename to rsc/rc_dark/arrow_left_pressed@2x.png
diff --git a/utils/rsc/rc_dark/arrow_right.png b/rsc/rc_dark/arrow_right.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_right.png
rename to rsc/rc_dark/arrow_right.png
diff --git a/utils/rsc/rc_dark/arrow_right@2x.png b/rsc/rc_dark/arrow_right@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_right@2x.png
rename to rsc/rc_dark/arrow_right@2x.png
diff --git a/utils/rsc/rc_dark/arrow_right_disabled.png b/rsc/rc_dark/arrow_right_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_right_disabled.png
rename to rsc/rc_dark/arrow_right_disabled.png
diff --git a/utils/rsc/rc_dark/arrow_right_disabled@2x.png b/rsc/rc_dark/arrow_right_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_right_disabled@2x.png
rename to rsc/rc_dark/arrow_right_disabled@2x.png
diff --git a/utils/rsc/rc_dark/arrow_right_focus.png b/rsc/rc_dark/arrow_right_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_right_focus.png
rename to rsc/rc_dark/arrow_right_focus.png
diff --git a/utils/rsc/rc_dark/arrow_right_focus@2x.png b/rsc/rc_dark/arrow_right_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_right_focus@2x.png
rename to rsc/rc_dark/arrow_right_focus@2x.png
diff --git a/utils/rsc/rc_dark/arrow_right_pressed.png b/rsc/rc_dark/arrow_right_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_right_pressed.png
rename to rsc/rc_dark/arrow_right_pressed.png
diff --git a/utils/rsc/rc_dark/arrow_right_pressed@2x.png b/rsc/rc_dark/arrow_right_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_right_pressed@2x.png
rename to rsc/rc_dark/arrow_right_pressed@2x.png
diff --git a/utils/rsc/rc_dark/arrow_up.png b/rsc/rc_dark/arrow_up.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_up.png
rename to rsc/rc_dark/arrow_up.png
diff --git a/utils/rsc/rc_dark/arrow_up@2x.png b/rsc/rc_dark/arrow_up@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_up@2x.png
rename to rsc/rc_dark/arrow_up@2x.png
diff --git a/utils/rsc/rc_dark/arrow_up_disabled.png b/rsc/rc_dark/arrow_up_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_up_disabled.png
rename to rsc/rc_dark/arrow_up_disabled.png
diff --git a/utils/rsc/rc_dark/arrow_up_disabled@2x.png b/rsc/rc_dark/arrow_up_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_up_disabled@2x.png
rename to rsc/rc_dark/arrow_up_disabled@2x.png
diff --git a/utils/rsc/rc_dark/arrow_up_focus.png b/rsc/rc_dark/arrow_up_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_up_focus.png
rename to rsc/rc_dark/arrow_up_focus.png
diff --git a/utils/rsc/rc_dark/arrow_up_focus@2x.png b/rsc/rc_dark/arrow_up_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_up_focus@2x.png
rename to rsc/rc_dark/arrow_up_focus@2x.png
diff --git a/utils/rsc/rc_dark/arrow_up_pressed.png b/rsc/rc_dark/arrow_up_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_up_pressed.png
rename to rsc/rc_dark/arrow_up_pressed.png
diff --git a/utils/rsc/rc_dark/arrow_up_pressed@2x.png b/rsc/rc_dark/arrow_up_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/arrow_up_pressed@2x.png
rename to rsc/rc_dark/arrow_up_pressed@2x.png
diff --git a/utils/rsc/rc_dark/base_icon.png b/rsc/rc_dark/base_icon.png
similarity index 100%
rename from utils/rsc/rc_dark/base_icon.png
rename to rsc/rc_dark/base_icon.png
diff --git a/utils/rsc/rc_dark/base_icon@2x.png b/rsc/rc_dark/base_icon@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/base_icon@2x.png
rename to rsc/rc_dark/base_icon@2x.png
diff --git a/utils/rsc/rc_dark/base_icon_disabled.png b/rsc/rc_dark/base_icon_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/base_icon_disabled.png
rename to rsc/rc_dark/base_icon_disabled.png
diff --git a/utils/rsc/rc_dark/base_icon_disabled@2x.png b/rsc/rc_dark/base_icon_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/base_icon_disabled@2x.png
rename to rsc/rc_dark/base_icon_disabled@2x.png
diff --git a/utils/rsc/rc_dark/base_icon_focus.png b/rsc/rc_dark/base_icon_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/base_icon_focus.png
rename to rsc/rc_dark/base_icon_focus.png
diff --git a/utils/rsc/rc_dark/base_icon_focus@2x.png b/rsc/rc_dark/base_icon_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/base_icon_focus@2x.png
rename to rsc/rc_dark/base_icon_focus@2x.png
diff --git a/utils/rsc/rc_dark/base_icon_pressed.png b/rsc/rc_dark/base_icon_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/base_icon_pressed.png
rename to rsc/rc_dark/base_icon_pressed.png
diff --git a/utils/rsc/rc_dark/base_icon_pressed@2x.png b/rsc/rc_dark/base_icon_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/base_icon_pressed@2x.png
rename to rsc/rc_dark/base_icon_pressed@2x.png
diff --git a/utils/rsc/rc_dark/branch_closed.png b/rsc/rc_dark/branch_closed.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_closed.png
rename to rsc/rc_dark/branch_closed.png
diff --git a/utils/rsc/rc_dark/branch_closed@2x.png b/rsc/rc_dark/branch_closed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_closed@2x.png
rename to rsc/rc_dark/branch_closed@2x.png
diff --git a/utils/rsc/rc_dark/branch_closed_disabled.png b/rsc/rc_dark/branch_closed_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_closed_disabled.png
rename to rsc/rc_dark/branch_closed_disabled.png
diff --git a/utils/rsc/rc_dark/branch_closed_disabled@2x.png b/rsc/rc_dark/branch_closed_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_closed_disabled@2x.png
rename to rsc/rc_dark/branch_closed_disabled@2x.png
diff --git a/utils/rsc/rc_dark/branch_closed_focus.png b/rsc/rc_dark/branch_closed_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_closed_focus.png
rename to rsc/rc_dark/branch_closed_focus.png
diff --git a/utils/rsc/rc_dark/branch_closed_focus@2x.png b/rsc/rc_dark/branch_closed_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_closed_focus@2x.png
rename to rsc/rc_dark/branch_closed_focus@2x.png
diff --git a/utils/rsc/rc_dark/branch_closed_pressed.png b/rsc/rc_dark/branch_closed_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_closed_pressed.png
rename to rsc/rc_dark/branch_closed_pressed.png
diff --git a/utils/rsc/rc_dark/branch_closed_pressed@2x.png b/rsc/rc_dark/branch_closed_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_closed_pressed@2x.png
rename to rsc/rc_dark/branch_closed_pressed@2x.png
diff --git a/utils/rsc/rc_dark/branch_end.png b/rsc/rc_dark/branch_end.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_end.png
rename to rsc/rc_dark/branch_end.png
diff --git a/utils/rsc/rc_dark/branch_end@2x.png b/rsc/rc_dark/branch_end@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_end@2x.png
rename to rsc/rc_dark/branch_end@2x.png
diff --git a/utils/rsc/rc_dark/branch_end_disabled.png b/rsc/rc_dark/branch_end_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_end_disabled.png
rename to rsc/rc_dark/branch_end_disabled.png
diff --git a/utils/rsc/rc_dark/branch_end_disabled@2x.png b/rsc/rc_dark/branch_end_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_end_disabled@2x.png
rename to rsc/rc_dark/branch_end_disabled@2x.png
diff --git a/utils/rsc/rc_dark/branch_end_focus.png b/rsc/rc_dark/branch_end_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_end_focus.png
rename to rsc/rc_dark/branch_end_focus.png
diff --git a/utils/rsc/rc_dark/branch_end_focus@2x.png b/rsc/rc_dark/branch_end_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_end_focus@2x.png
rename to rsc/rc_dark/branch_end_focus@2x.png
diff --git a/utils/rsc/rc_dark/branch_end_pressed.png b/rsc/rc_dark/branch_end_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_end_pressed.png
rename to rsc/rc_dark/branch_end_pressed.png
diff --git a/utils/rsc/rc_dark/branch_end_pressed@2x.png b/rsc/rc_dark/branch_end_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_end_pressed@2x.png
rename to rsc/rc_dark/branch_end_pressed@2x.png
diff --git a/utils/rsc/rc_dark/branch_line.png b/rsc/rc_dark/branch_line.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_line.png
rename to rsc/rc_dark/branch_line.png
diff --git a/utils/rsc/rc_dark/branch_line@2x.png b/rsc/rc_dark/branch_line@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_line@2x.png
rename to rsc/rc_dark/branch_line@2x.png
diff --git a/utils/rsc/rc_dark/branch_line_disabled.png b/rsc/rc_dark/branch_line_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_line_disabled.png
rename to rsc/rc_dark/branch_line_disabled.png
diff --git a/utils/rsc/rc_dark/branch_line_disabled@2x.png b/rsc/rc_dark/branch_line_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_line_disabled@2x.png
rename to rsc/rc_dark/branch_line_disabled@2x.png
diff --git a/utils/rsc/rc_dark/branch_line_focus.png b/rsc/rc_dark/branch_line_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_line_focus.png
rename to rsc/rc_dark/branch_line_focus.png
diff --git a/utils/rsc/rc_dark/branch_line_focus@2x.png b/rsc/rc_dark/branch_line_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_line_focus@2x.png
rename to rsc/rc_dark/branch_line_focus@2x.png
diff --git a/utils/rsc/rc_dark/branch_line_pressed.png b/rsc/rc_dark/branch_line_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_line_pressed.png
rename to rsc/rc_dark/branch_line_pressed.png
diff --git a/utils/rsc/rc_dark/branch_line_pressed@2x.png b/rsc/rc_dark/branch_line_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_line_pressed@2x.png
rename to rsc/rc_dark/branch_line_pressed@2x.png
diff --git a/utils/rsc/rc_dark/branch_more.png b/rsc/rc_dark/branch_more.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_more.png
rename to rsc/rc_dark/branch_more.png
diff --git a/utils/rsc/rc_dark/branch_more@2x.png b/rsc/rc_dark/branch_more@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_more@2x.png
rename to rsc/rc_dark/branch_more@2x.png
diff --git a/utils/rsc/rc_dark/branch_more_disabled.png b/rsc/rc_dark/branch_more_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_more_disabled.png
rename to rsc/rc_dark/branch_more_disabled.png
diff --git a/utils/rsc/rc_dark/branch_more_disabled@2x.png b/rsc/rc_dark/branch_more_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_more_disabled@2x.png
rename to rsc/rc_dark/branch_more_disabled@2x.png
diff --git a/utils/rsc/rc_dark/branch_more_focus.png b/rsc/rc_dark/branch_more_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_more_focus.png
rename to rsc/rc_dark/branch_more_focus.png
diff --git a/utils/rsc/rc_dark/branch_more_focus@2x.png b/rsc/rc_dark/branch_more_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_more_focus@2x.png
rename to rsc/rc_dark/branch_more_focus@2x.png
diff --git a/utils/rsc/rc_dark/branch_more_pressed.png b/rsc/rc_dark/branch_more_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_more_pressed.png
rename to rsc/rc_dark/branch_more_pressed.png
diff --git a/utils/rsc/rc_dark/branch_more_pressed@2x.png b/rsc/rc_dark/branch_more_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_more_pressed@2x.png
rename to rsc/rc_dark/branch_more_pressed@2x.png
diff --git a/utils/rsc/rc_dark/branch_open.png b/rsc/rc_dark/branch_open.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_open.png
rename to rsc/rc_dark/branch_open.png
diff --git a/utils/rsc/rc_dark/branch_open@2x.png b/rsc/rc_dark/branch_open@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_open@2x.png
rename to rsc/rc_dark/branch_open@2x.png
diff --git a/utils/rsc/rc_dark/branch_open_disabled.png b/rsc/rc_dark/branch_open_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_open_disabled.png
rename to rsc/rc_dark/branch_open_disabled.png
diff --git a/utils/rsc/rc_dark/branch_open_disabled@2x.png b/rsc/rc_dark/branch_open_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_open_disabled@2x.png
rename to rsc/rc_dark/branch_open_disabled@2x.png
diff --git a/utils/rsc/rc_dark/branch_open_focus.png b/rsc/rc_dark/branch_open_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_open_focus.png
rename to rsc/rc_dark/branch_open_focus.png
diff --git a/utils/rsc/rc_dark/branch_open_focus@2x.png b/rsc/rc_dark/branch_open_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_open_focus@2x.png
rename to rsc/rc_dark/branch_open_focus@2x.png
diff --git a/utils/rsc/rc_dark/branch_open_pressed.png b/rsc/rc_dark/branch_open_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_open_pressed.png
rename to rsc/rc_dark/branch_open_pressed.png
diff --git a/utils/rsc/rc_dark/branch_open_pressed@2x.png b/rsc/rc_dark/branch_open_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/branch_open_pressed@2x.png
rename to rsc/rc_dark/branch_open_pressed@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_checked.png b/rsc/rc_dark/checkbox_checked.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_checked.png
rename to rsc/rc_dark/checkbox_checked.png
diff --git a/utils/rsc/rc_dark/checkbox_checked@2x.png b/rsc/rc_dark/checkbox_checked@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_checked@2x.png
rename to rsc/rc_dark/checkbox_checked@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_checked_disabled.png b/rsc/rc_dark/checkbox_checked_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_checked_disabled.png
rename to rsc/rc_dark/checkbox_checked_disabled.png
diff --git a/utils/rsc/rc_dark/checkbox_checked_disabled@2x.png b/rsc/rc_dark/checkbox_checked_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_checked_disabled@2x.png
rename to rsc/rc_dark/checkbox_checked_disabled@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_checked_focus.png b/rsc/rc_dark/checkbox_checked_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_checked_focus.png
rename to rsc/rc_dark/checkbox_checked_focus.png
diff --git a/utils/rsc/rc_dark/checkbox_checked_focus@2x.png b/rsc/rc_dark/checkbox_checked_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_checked_focus@2x.png
rename to rsc/rc_dark/checkbox_checked_focus@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_checked_pressed.png b/rsc/rc_dark/checkbox_checked_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_checked_pressed.png
rename to rsc/rc_dark/checkbox_checked_pressed.png
diff --git a/utils/rsc/rc_dark/checkbox_checked_pressed@2x.png b/rsc/rc_dark/checkbox_checked_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_checked_pressed@2x.png
rename to rsc/rc_dark/checkbox_checked_pressed@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate.png b/rsc/rc_dark/checkbox_indeterminate.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_indeterminate.png
rename to rsc/rc_dark/checkbox_indeterminate.png
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate@2x.png b/rsc/rc_dark/checkbox_indeterminate@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_indeterminate@2x.png
rename to rsc/rc_dark/checkbox_indeterminate@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_disabled.png b/rsc/rc_dark/checkbox_indeterminate_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_indeterminate_disabled.png
rename to rsc/rc_dark/checkbox_indeterminate_disabled.png
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png b/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png
rename to rsc/rc_dark/checkbox_indeterminate_disabled@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_focus.png b/rsc/rc_dark/checkbox_indeterminate_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_indeterminate_focus.png
rename to rsc/rc_dark/checkbox_indeterminate_focus.png
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_focus@2x.png b/rsc/rc_dark/checkbox_indeterminate_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_indeterminate_focus@2x.png
rename to rsc/rc_dark/checkbox_indeterminate_focus@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_pressed.png b/rsc/rc_dark/checkbox_indeterminate_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_indeterminate_pressed.png
rename to rsc/rc_dark/checkbox_indeterminate_pressed.png
diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png b/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png
rename to rsc/rc_dark/checkbox_indeterminate_pressed@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_unchecked.png b/rsc/rc_dark/checkbox_unchecked.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_unchecked.png
rename to rsc/rc_dark/checkbox_unchecked.png
diff --git a/utils/rsc/rc_dark/checkbox_unchecked@2x.png b/rsc/rc_dark/checkbox_unchecked@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_unchecked@2x.png
rename to rsc/rc_dark/checkbox_unchecked@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_disabled.png b/rsc/rc_dark/checkbox_unchecked_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_unchecked_disabled.png
rename to rsc/rc_dark/checkbox_unchecked_disabled.png
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_disabled@2x.png b/rsc/rc_dark/checkbox_unchecked_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_unchecked_disabled@2x.png
rename to rsc/rc_dark/checkbox_unchecked_disabled@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_focus.png b/rsc/rc_dark/checkbox_unchecked_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_unchecked_focus.png
rename to rsc/rc_dark/checkbox_unchecked_focus.png
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_focus@2x.png b/rsc/rc_dark/checkbox_unchecked_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_unchecked_focus@2x.png
rename to rsc/rc_dark/checkbox_unchecked_focus@2x.png
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_pressed.png b/rsc/rc_dark/checkbox_unchecked_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_unchecked_pressed.png
rename to rsc/rc_dark/checkbox_unchecked_pressed.png
diff --git a/utils/rsc/rc_dark/checkbox_unchecked_pressed@2x.png b/rsc/rc_dark/checkbox_unchecked_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/checkbox_unchecked_pressed@2x.png
rename to rsc/rc_dark/checkbox_unchecked_pressed@2x.png
diff --git a/utils/rsc/rc_dark/line_horizontal.png b/rsc/rc_dark/line_horizontal.png
similarity index 100%
rename from utils/rsc/rc_dark/line_horizontal.png
rename to rsc/rc_dark/line_horizontal.png
diff --git a/utils/rsc/rc_dark/line_horizontal@2x.png b/rsc/rc_dark/line_horizontal@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/line_horizontal@2x.png
rename to rsc/rc_dark/line_horizontal@2x.png
diff --git a/utils/rsc/rc_dark/line_horizontal_disabled.png b/rsc/rc_dark/line_horizontal_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/line_horizontal_disabled.png
rename to rsc/rc_dark/line_horizontal_disabled.png
diff --git a/utils/rsc/rc_dark/line_horizontal_disabled@2x.png b/rsc/rc_dark/line_horizontal_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/line_horizontal_disabled@2x.png
rename to rsc/rc_dark/line_horizontal_disabled@2x.png
diff --git a/utils/rsc/rc_dark/line_horizontal_focus.png b/rsc/rc_dark/line_horizontal_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/line_horizontal_focus.png
rename to rsc/rc_dark/line_horizontal_focus.png
diff --git a/utils/rsc/rc_dark/line_horizontal_focus@2x.png b/rsc/rc_dark/line_horizontal_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/line_horizontal_focus@2x.png
rename to rsc/rc_dark/line_horizontal_focus@2x.png
diff --git a/utils/rsc/rc_dark/line_horizontal_pressed.png b/rsc/rc_dark/line_horizontal_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/line_horizontal_pressed.png
rename to rsc/rc_dark/line_horizontal_pressed.png
diff --git a/utils/rsc/rc_dark/line_horizontal_pressed@2x.png b/rsc/rc_dark/line_horizontal_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/line_horizontal_pressed@2x.png
rename to rsc/rc_dark/line_horizontal_pressed@2x.png
diff --git a/utils/rsc/rc_dark/line_vertical.png b/rsc/rc_dark/line_vertical.png
similarity index 100%
rename from utils/rsc/rc_dark/line_vertical.png
rename to rsc/rc_dark/line_vertical.png
diff --git a/utils/rsc/rc_dark/line_vertical@2x.png b/rsc/rc_dark/line_vertical@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/line_vertical@2x.png
rename to rsc/rc_dark/line_vertical@2x.png
diff --git a/utils/rsc/rc_dark/line_vertical_disabled.png b/rsc/rc_dark/line_vertical_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/line_vertical_disabled.png
rename to rsc/rc_dark/line_vertical_disabled.png
diff --git a/utils/rsc/rc_dark/line_vertical_disabled@2x.png b/rsc/rc_dark/line_vertical_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/line_vertical_disabled@2x.png
rename to rsc/rc_dark/line_vertical_disabled@2x.png
diff --git a/utils/rsc/rc_dark/line_vertical_focus.png b/rsc/rc_dark/line_vertical_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/line_vertical_focus.png
rename to rsc/rc_dark/line_vertical_focus.png
diff --git a/utils/rsc/rc_dark/line_vertical_focus@2x.png b/rsc/rc_dark/line_vertical_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/line_vertical_focus@2x.png
rename to rsc/rc_dark/line_vertical_focus@2x.png
diff --git a/utils/rsc/rc_dark/line_vertical_pressed.png b/rsc/rc_dark/line_vertical_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/line_vertical_pressed.png
rename to rsc/rc_dark/line_vertical_pressed.png
diff --git a/utils/rsc/rc_dark/line_vertical_pressed@2x.png b/rsc/rc_dark/line_vertical_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/line_vertical_pressed@2x.png
rename to rsc/rc_dark/line_vertical_pressed@2x.png
diff --git a/utils/rsc/rc_dark/radio_checked.png b/rsc/rc_dark/radio_checked.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_checked.png
rename to rsc/rc_dark/radio_checked.png
diff --git a/utils/rsc/rc_dark/radio_checked@2x.png b/rsc/rc_dark/radio_checked@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_checked@2x.png
rename to rsc/rc_dark/radio_checked@2x.png
diff --git a/utils/rsc/rc_dark/radio_checked_disabled.png b/rsc/rc_dark/radio_checked_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_checked_disabled.png
rename to rsc/rc_dark/radio_checked_disabled.png
diff --git a/utils/rsc/rc_dark/radio_checked_disabled@2x.png b/rsc/rc_dark/radio_checked_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_checked_disabled@2x.png
rename to rsc/rc_dark/radio_checked_disabled@2x.png
diff --git a/utils/rsc/rc_dark/radio_checked_focus.png b/rsc/rc_dark/radio_checked_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_checked_focus.png
rename to rsc/rc_dark/radio_checked_focus.png
diff --git a/utils/rsc/rc_dark/radio_checked_focus@2x.png b/rsc/rc_dark/radio_checked_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_checked_focus@2x.png
rename to rsc/rc_dark/radio_checked_focus@2x.png
diff --git a/utils/rsc/rc_dark/radio_checked_pressed.png b/rsc/rc_dark/radio_checked_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_checked_pressed.png
rename to rsc/rc_dark/radio_checked_pressed.png
diff --git a/utils/rsc/rc_dark/radio_checked_pressed@2x.png b/rsc/rc_dark/radio_checked_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_checked_pressed@2x.png
rename to rsc/rc_dark/radio_checked_pressed@2x.png
diff --git a/utils/rsc/rc_dark/radio_unchecked.png b/rsc/rc_dark/radio_unchecked.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_unchecked.png
rename to rsc/rc_dark/radio_unchecked.png
diff --git a/utils/rsc/rc_dark/radio_unchecked@2x.png b/rsc/rc_dark/radio_unchecked@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_unchecked@2x.png
rename to rsc/rc_dark/radio_unchecked@2x.png
diff --git a/utils/rsc/rc_dark/radio_unchecked_disabled.png b/rsc/rc_dark/radio_unchecked_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_unchecked_disabled.png
rename to rsc/rc_dark/radio_unchecked_disabled.png
diff --git a/utils/rsc/rc_dark/radio_unchecked_disabled@2x.png b/rsc/rc_dark/radio_unchecked_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_unchecked_disabled@2x.png
rename to rsc/rc_dark/radio_unchecked_disabled@2x.png
diff --git a/utils/rsc/rc_dark/radio_unchecked_focus.png b/rsc/rc_dark/radio_unchecked_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_unchecked_focus.png
rename to rsc/rc_dark/radio_unchecked_focus.png
diff --git a/utils/rsc/rc_dark/radio_unchecked_focus@2x.png b/rsc/rc_dark/radio_unchecked_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_unchecked_focus@2x.png
rename to rsc/rc_dark/radio_unchecked_focus@2x.png
diff --git a/utils/rsc/rc_dark/radio_unchecked_pressed.png b/rsc/rc_dark/radio_unchecked_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_unchecked_pressed.png
rename to rsc/rc_dark/radio_unchecked_pressed.png
diff --git a/utils/rsc/rc_dark/radio_unchecked_pressed@2x.png b/rsc/rc_dark/radio_unchecked_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/radio_unchecked_pressed@2x.png
rename to rsc/rc_dark/radio_unchecked_pressed@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal.png b/rsc/rc_dark/toolbar_move_horizontal.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_horizontal.png
rename to rsc/rc_dark/toolbar_move_horizontal.png
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal@2x.png b/rsc/rc_dark/toolbar_move_horizontal@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_horizontal@2x.png
rename to rsc/rc_dark/toolbar_move_horizontal@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_disabled.png b/rsc/rc_dark/toolbar_move_horizontal_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_horizontal_disabled.png
rename to rsc/rc_dark/toolbar_move_horizontal_disabled.png
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png b/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png
rename to rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_focus.png b/rsc/rc_dark/toolbar_move_horizontal_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_horizontal_focus.png
rename to rsc/rc_dark/toolbar_move_horizontal_focus.png
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png b/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png
rename to rsc/rc_dark/toolbar_move_horizontal_focus@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_pressed.png b/rsc/rc_dark/toolbar_move_horizontal_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_horizontal_pressed.png
rename to rsc/rc_dark/toolbar_move_horizontal_pressed.png
diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png b/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png
rename to rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical.png b/rsc/rc_dark/toolbar_move_vertical.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_vertical.png
rename to rsc/rc_dark/toolbar_move_vertical.png
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical@2x.png b/rsc/rc_dark/toolbar_move_vertical@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_vertical@2x.png
rename to rsc/rc_dark/toolbar_move_vertical@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_disabled.png b/rsc/rc_dark/toolbar_move_vertical_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_vertical_disabled.png
rename to rsc/rc_dark/toolbar_move_vertical_disabled.png
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png b/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png
rename to rsc/rc_dark/toolbar_move_vertical_disabled@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_focus.png b/rsc/rc_dark/toolbar_move_vertical_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_vertical_focus.png
rename to rsc/rc_dark/toolbar_move_vertical_focus.png
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_focus@2x.png b/rsc/rc_dark/toolbar_move_vertical_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_vertical_focus@2x.png
rename to rsc/rc_dark/toolbar_move_vertical_focus@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_pressed.png b/rsc/rc_dark/toolbar_move_vertical_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_vertical_pressed.png
rename to rsc/rc_dark/toolbar_move_vertical_pressed.png
diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png b/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png
rename to rsc/rc_dark/toolbar_move_vertical_pressed@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal.png b/rsc/rc_dark/toolbar_separator_horizontal.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_horizontal.png
rename to rsc/rc_dark/toolbar_separator_horizontal.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal@2x.png b/rsc/rc_dark/toolbar_separator_horizontal@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_horizontal@2x.png
rename to rsc/rc_dark/toolbar_separator_horizontal@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled.png b/rsc/rc_dark/toolbar_separator_horizontal_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_horizontal_disabled.png
rename to rsc/rc_dark/toolbar_separator_horizontal_disabled.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png b/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png
rename to rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_focus.png b/rsc/rc_dark/toolbar_separator_horizontal_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_horizontal_focus.png
rename to rsc/rc_dark/toolbar_separator_horizontal_focus.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png b/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png
rename to rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed.png b/rsc/rc_dark/toolbar_separator_horizontal_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_horizontal_pressed.png
rename to rsc/rc_dark/toolbar_separator_horizontal_pressed.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png b/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png
rename to rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical.png b/rsc/rc_dark/toolbar_separator_vertical.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_vertical.png
rename to rsc/rc_dark/toolbar_separator_vertical.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical@2x.png b/rsc/rc_dark/toolbar_separator_vertical@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_vertical@2x.png
rename to rsc/rc_dark/toolbar_separator_vertical@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_disabled.png b/rsc/rc_dark/toolbar_separator_vertical_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_vertical_disabled.png
rename to rsc/rc_dark/toolbar_separator_vertical_disabled.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png b/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png
rename to rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_focus.png b/rsc/rc_dark/toolbar_separator_vertical_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_vertical_focus.png
rename to rsc/rc_dark/toolbar_separator_vertical_focus.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png b/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png
rename to rsc/rc_dark/toolbar_separator_vertical_focus@2x.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_pressed.png b/rsc/rc_dark/toolbar_separator_vertical_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_vertical_pressed.png
rename to rsc/rc_dark/toolbar_separator_vertical_pressed.png
diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png b/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png
rename to rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png
diff --git a/utils/rsc/rc_dark/transparent.png b/rsc/rc_dark/transparent.png
similarity index 100%
rename from utils/rsc/rc_dark/transparent.png
rename to rsc/rc_dark/transparent.png
diff --git a/utils/rsc/rc_dark/transparent@2x.png b/rsc/rc_dark/transparent@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/transparent@2x.png
rename to rsc/rc_dark/transparent@2x.png
diff --git a/utils/rsc/rc_dark/transparent_disabled.png b/rsc/rc_dark/transparent_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/transparent_disabled.png
rename to rsc/rc_dark/transparent_disabled.png
diff --git a/utils/rsc/rc_dark/transparent_disabled@2x.png b/rsc/rc_dark/transparent_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/transparent_disabled@2x.png
rename to rsc/rc_dark/transparent_disabled@2x.png
diff --git a/utils/rsc/rc_dark/transparent_focus.png b/rsc/rc_dark/transparent_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/transparent_focus.png
rename to rsc/rc_dark/transparent_focus.png
diff --git a/utils/rsc/rc_dark/transparent_focus@2x.png b/rsc/rc_dark/transparent_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/transparent_focus@2x.png
rename to rsc/rc_dark/transparent_focus@2x.png
diff --git a/utils/rsc/rc_dark/transparent_pressed.png b/rsc/rc_dark/transparent_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/transparent_pressed.png
rename to rsc/rc_dark/transparent_pressed.png
diff --git a/utils/rsc/rc_dark/transparent_pressed@2x.png b/rsc/rc_dark/transparent_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/transparent_pressed@2x.png
rename to rsc/rc_dark/transparent_pressed@2x.png
diff --git a/utils/rsc/rc_dark/window_close.png b/rsc/rc_dark/window_close.png
similarity index 100%
rename from utils/rsc/rc_dark/window_close.png
rename to rsc/rc_dark/window_close.png
diff --git a/utils/rsc/rc_dark/window_close@2x.png b/rsc/rc_dark/window_close@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_close@2x.png
rename to rsc/rc_dark/window_close@2x.png
diff --git a/utils/rsc/rc_dark/window_close_disabled.png b/rsc/rc_dark/window_close_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/window_close_disabled.png
rename to rsc/rc_dark/window_close_disabled.png
diff --git a/utils/rsc/rc_dark/window_close_disabled@2x.png b/rsc/rc_dark/window_close_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_close_disabled@2x.png
rename to rsc/rc_dark/window_close_disabled@2x.png
diff --git a/utils/rsc/rc_dark/window_close_focus.png b/rsc/rc_dark/window_close_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/window_close_focus.png
rename to rsc/rc_dark/window_close_focus.png
diff --git a/utils/rsc/rc_dark/window_close_focus@2x.png b/rsc/rc_dark/window_close_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_close_focus@2x.png
rename to rsc/rc_dark/window_close_focus@2x.png
diff --git a/utils/rsc/rc_dark/window_close_pressed.png b/rsc/rc_dark/window_close_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/window_close_pressed.png
rename to rsc/rc_dark/window_close_pressed.png
diff --git a/utils/rsc/rc_dark/window_close_pressed@2x.png b/rsc/rc_dark/window_close_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_close_pressed@2x.png
rename to rsc/rc_dark/window_close_pressed@2x.png
diff --git a/utils/rsc/rc_dark/window_grip.png b/rsc/rc_dark/window_grip.png
similarity index 100%
rename from utils/rsc/rc_dark/window_grip.png
rename to rsc/rc_dark/window_grip.png
diff --git a/utils/rsc/rc_dark/window_grip@2x.png b/rsc/rc_dark/window_grip@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_grip@2x.png
rename to rsc/rc_dark/window_grip@2x.png
diff --git a/utils/rsc/rc_dark/window_grip_disabled.png b/rsc/rc_dark/window_grip_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/window_grip_disabled.png
rename to rsc/rc_dark/window_grip_disabled.png
diff --git a/utils/rsc/rc_dark/window_grip_disabled@2x.png b/rsc/rc_dark/window_grip_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_grip_disabled@2x.png
rename to rsc/rc_dark/window_grip_disabled@2x.png
diff --git a/utils/rsc/rc_dark/window_grip_focus.png b/rsc/rc_dark/window_grip_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/window_grip_focus.png
rename to rsc/rc_dark/window_grip_focus.png
diff --git a/utils/rsc/rc_dark/window_grip_focus@2x.png b/rsc/rc_dark/window_grip_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_grip_focus@2x.png
rename to rsc/rc_dark/window_grip_focus@2x.png
diff --git a/utils/rsc/rc_dark/window_grip_pressed.png b/rsc/rc_dark/window_grip_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/window_grip_pressed.png
rename to rsc/rc_dark/window_grip_pressed.png
diff --git a/utils/rsc/rc_dark/window_grip_pressed@2x.png b/rsc/rc_dark/window_grip_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_grip_pressed@2x.png
rename to rsc/rc_dark/window_grip_pressed@2x.png
diff --git a/utils/rsc/rc_dark/window_minimize.png b/rsc/rc_dark/window_minimize.png
similarity index 100%
rename from utils/rsc/rc_dark/window_minimize.png
rename to rsc/rc_dark/window_minimize.png
diff --git a/utils/rsc/rc_dark/window_minimize@2x.png b/rsc/rc_dark/window_minimize@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_minimize@2x.png
rename to rsc/rc_dark/window_minimize@2x.png
diff --git a/utils/rsc/rc_dark/window_minimize_disabled.png b/rsc/rc_dark/window_minimize_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/window_minimize_disabled.png
rename to rsc/rc_dark/window_minimize_disabled.png
diff --git a/utils/rsc/rc_dark/window_minimize_disabled@2x.png b/rsc/rc_dark/window_minimize_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_minimize_disabled@2x.png
rename to rsc/rc_dark/window_minimize_disabled@2x.png
diff --git a/utils/rsc/rc_dark/window_minimize_focus.png b/rsc/rc_dark/window_minimize_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/window_minimize_focus.png
rename to rsc/rc_dark/window_minimize_focus.png
diff --git a/utils/rsc/rc_dark/window_minimize_focus@2x.png b/rsc/rc_dark/window_minimize_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_minimize_focus@2x.png
rename to rsc/rc_dark/window_minimize_focus@2x.png
diff --git a/utils/rsc/rc_dark/window_minimize_pressed.png b/rsc/rc_dark/window_minimize_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/window_minimize_pressed.png
rename to rsc/rc_dark/window_minimize_pressed.png
diff --git a/utils/rsc/rc_dark/window_minimize_pressed@2x.png b/rsc/rc_dark/window_minimize_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_minimize_pressed@2x.png
rename to rsc/rc_dark/window_minimize_pressed@2x.png
diff --git a/utils/rsc/rc_dark/window_undock.png b/rsc/rc_dark/window_undock.png
similarity index 100%
rename from utils/rsc/rc_dark/window_undock.png
rename to rsc/rc_dark/window_undock.png
diff --git a/utils/rsc/rc_dark/window_undock@2x.png b/rsc/rc_dark/window_undock@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_undock@2x.png
rename to rsc/rc_dark/window_undock@2x.png
diff --git a/utils/rsc/rc_dark/window_undock_disabled.png b/rsc/rc_dark/window_undock_disabled.png
similarity index 100%
rename from utils/rsc/rc_dark/window_undock_disabled.png
rename to rsc/rc_dark/window_undock_disabled.png
diff --git a/utils/rsc/rc_dark/window_undock_disabled@2x.png b/rsc/rc_dark/window_undock_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_undock_disabled@2x.png
rename to rsc/rc_dark/window_undock_disabled@2x.png
diff --git a/utils/rsc/rc_dark/window_undock_focus.png b/rsc/rc_dark/window_undock_focus.png
similarity index 100%
rename from utils/rsc/rc_dark/window_undock_focus.png
rename to rsc/rc_dark/window_undock_focus.png
diff --git a/utils/rsc/rc_dark/window_undock_focus@2x.png b/rsc/rc_dark/window_undock_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_undock_focus@2x.png
rename to rsc/rc_dark/window_undock_focus@2x.png
diff --git a/utils/rsc/rc_dark/window_undock_pressed.png b/rsc/rc_dark/window_undock_pressed.png
similarity index 100%
rename from utils/rsc/rc_dark/window_undock_pressed.png
rename to rsc/rc_dark/window_undock_pressed.png
diff --git a/utils/rsc/rc_dark/window_undock_pressed@2x.png b/rsc/rc_dark/window_undock_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_dark/window_undock_pressed@2x.png
rename to rsc/rc_dark/window_undock_pressed@2x.png
diff --git a/utils/rsc/rc_light/.keep b/rsc/rc_light/.keep
similarity index 100%
rename from utils/rsc/rc_light/.keep
rename to rsc/rc_light/.keep
diff --git a/utils/rsc/rc_light/arrow_down.png b/rsc/rc_light/arrow_down.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_down.png
rename to rsc/rc_light/arrow_down.png
diff --git a/utils/rsc/rc_light/arrow_down@2x.png b/rsc/rc_light/arrow_down@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_down@2x.png
rename to rsc/rc_light/arrow_down@2x.png
diff --git a/utils/rsc/rc_light/arrow_down_disabled.png b/rsc/rc_light/arrow_down_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_down_disabled.png
rename to rsc/rc_light/arrow_down_disabled.png
diff --git a/utils/rsc/rc_light/arrow_down_disabled@2x.png b/rsc/rc_light/arrow_down_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_down_disabled@2x.png
rename to rsc/rc_light/arrow_down_disabled@2x.png
diff --git a/utils/rsc/rc_light/arrow_down_focus.png b/rsc/rc_light/arrow_down_focus.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_down_focus.png
rename to rsc/rc_light/arrow_down_focus.png
diff --git a/utils/rsc/rc_light/arrow_down_focus@2x.png b/rsc/rc_light/arrow_down_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_down_focus@2x.png
rename to rsc/rc_light/arrow_down_focus@2x.png
diff --git a/utils/rsc/rc_light/arrow_down_pressed.png b/rsc/rc_light/arrow_down_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_down_pressed.png
rename to rsc/rc_light/arrow_down_pressed.png
diff --git a/utils/rsc/rc_light/arrow_down_pressed@2x.png b/rsc/rc_light/arrow_down_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_down_pressed@2x.png
rename to rsc/rc_light/arrow_down_pressed@2x.png
diff --git a/utils/rsc/rc_light/arrow_left.png b/rsc/rc_light/arrow_left.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_left.png
rename to rsc/rc_light/arrow_left.png
diff --git a/utils/rsc/rc_light/arrow_left@2x.png b/rsc/rc_light/arrow_left@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_left@2x.png
rename to rsc/rc_light/arrow_left@2x.png
diff --git a/utils/rsc/rc_light/arrow_left_disabled.png b/rsc/rc_light/arrow_left_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_left_disabled.png
rename to rsc/rc_light/arrow_left_disabled.png
diff --git a/utils/rsc/rc_light/arrow_left_disabled@2x.png b/rsc/rc_light/arrow_left_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_left_disabled@2x.png
rename to rsc/rc_light/arrow_left_disabled@2x.png
diff --git a/utils/rsc/rc_light/arrow_left_focus.png b/rsc/rc_light/arrow_left_focus.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_left_focus.png
rename to rsc/rc_light/arrow_left_focus.png
diff --git a/utils/rsc/rc_light/arrow_left_focus@2x.png b/rsc/rc_light/arrow_left_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_left_focus@2x.png
rename to rsc/rc_light/arrow_left_focus@2x.png
diff --git a/utils/rsc/rc_light/arrow_left_pressed.png b/rsc/rc_light/arrow_left_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_left_pressed.png
rename to rsc/rc_light/arrow_left_pressed.png
diff --git a/utils/rsc/rc_light/arrow_left_pressed@2x.png b/rsc/rc_light/arrow_left_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_left_pressed@2x.png
rename to rsc/rc_light/arrow_left_pressed@2x.png
diff --git a/utils/rsc/rc_light/arrow_right.png b/rsc/rc_light/arrow_right.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_right.png
rename to rsc/rc_light/arrow_right.png
diff --git a/utils/rsc/rc_light/arrow_right@2x.png b/rsc/rc_light/arrow_right@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_right@2x.png
rename to rsc/rc_light/arrow_right@2x.png
diff --git a/utils/rsc/rc_light/arrow_right_disabled.png b/rsc/rc_light/arrow_right_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_right_disabled.png
rename to rsc/rc_light/arrow_right_disabled.png
diff --git a/utils/rsc/rc_light/arrow_right_disabled@2x.png b/rsc/rc_light/arrow_right_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_right_disabled@2x.png
rename to rsc/rc_light/arrow_right_disabled@2x.png
diff --git a/utils/rsc/rc_light/arrow_right_focus.png b/rsc/rc_light/arrow_right_focus.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_right_focus.png
rename to rsc/rc_light/arrow_right_focus.png
diff --git a/utils/rsc/rc_light/arrow_right_focus@2x.png b/rsc/rc_light/arrow_right_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_right_focus@2x.png
rename to rsc/rc_light/arrow_right_focus@2x.png
diff --git a/utils/rsc/rc_light/arrow_right_pressed.png b/rsc/rc_light/arrow_right_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_right_pressed.png
rename to rsc/rc_light/arrow_right_pressed.png
diff --git a/utils/rsc/rc_light/arrow_right_pressed@2x.png b/rsc/rc_light/arrow_right_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_right_pressed@2x.png
rename to rsc/rc_light/arrow_right_pressed@2x.png
diff --git a/utils/rsc/rc_light/arrow_up.png b/rsc/rc_light/arrow_up.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_up.png
rename to rsc/rc_light/arrow_up.png
diff --git a/utils/rsc/rc_light/arrow_up@2x.png b/rsc/rc_light/arrow_up@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_up@2x.png
rename to rsc/rc_light/arrow_up@2x.png
diff --git a/utils/rsc/rc_light/arrow_up_disabled.png b/rsc/rc_light/arrow_up_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_up_disabled.png
rename to rsc/rc_light/arrow_up_disabled.png
diff --git a/utils/rsc/rc_light/arrow_up_disabled@2x.png b/rsc/rc_light/arrow_up_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_up_disabled@2x.png
rename to rsc/rc_light/arrow_up_disabled@2x.png
diff --git a/utils/rsc/rc_light/arrow_up_focus.png b/rsc/rc_light/arrow_up_focus.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_up_focus.png
rename to rsc/rc_light/arrow_up_focus.png
diff --git a/utils/rsc/rc_light/arrow_up_focus@2x.png b/rsc/rc_light/arrow_up_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_up_focus@2x.png
rename to rsc/rc_light/arrow_up_focus@2x.png
diff --git a/utils/rsc/rc_light/arrow_up_pressed.png b/rsc/rc_light/arrow_up_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_up_pressed.png
rename to rsc/rc_light/arrow_up_pressed.png
diff --git a/utils/rsc/rc_light/arrow_up_pressed@2x.png b/rsc/rc_light/arrow_up_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/arrow_up_pressed@2x.png
rename to rsc/rc_light/arrow_up_pressed@2x.png
diff --git a/utils/rsc/rc_light/base_icon.png b/rsc/rc_light/base_icon.png
similarity index 100%
rename from utils/rsc/rc_light/base_icon.png
rename to rsc/rc_light/base_icon.png
diff --git a/utils/rsc/rc_light/base_icon@2x.png b/rsc/rc_light/base_icon@2x.png
similarity index 100%
rename from utils/rsc/rc_light/base_icon@2x.png
rename to rsc/rc_light/base_icon@2x.png
diff --git a/utils/rsc/rc_light/base_icon_disabled.png b/rsc/rc_light/base_icon_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/base_icon_disabled.png
rename to rsc/rc_light/base_icon_disabled.png
diff --git a/utils/rsc/rc_light/base_icon_disabled@2x.png b/rsc/rc_light/base_icon_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/base_icon_disabled@2x.png
rename to rsc/rc_light/base_icon_disabled@2x.png
diff --git a/utils/rsc/rc_light/base_icon_focus.png b/rsc/rc_light/base_icon_focus.png
similarity index 100%
rename from utils/rsc/rc_light/base_icon_focus.png
rename to rsc/rc_light/base_icon_focus.png
diff --git a/utils/rsc/rc_light/base_icon_focus@2x.png b/rsc/rc_light/base_icon_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/base_icon_focus@2x.png
rename to rsc/rc_light/base_icon_focus@2x.png
diff --git a/utils/rsc/rc_light/base_icon_pressed.png b/rsc/rc_light/base_icon_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/base_icon_pressed.png
rename to rsc/rc_light/base_icon_pressed.png
diff --git a/utils/rsc/rc_light/base_icon_pressed@2x.png b/rsc/rc_light/base_icon_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/base_icon_pressed@2x.png
rename to rsc/rc_light/base_icon_pressed@2x.png
diff --git a/utils/rsc/rc_light/branch_closed.png b/rsc/rc_light/branch_closed.png
similarity index 100%
rename from utils/rsc/rc_light/branch_closed.png
rename to rsc/rc_light/branch_closed.png
diff --git a/utils/rsc/rc_light/branch_closed@2x.png b/rsc/rc_light/branch_closed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_closed@2x.png
rename to rsc/rc_light/branch_closed@2x.png
diff --git a/utils/rsc/rc_light/branch_closed_disabled.png b/rsc/rc_light/branch_closed_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/branch_closed_disabled.png
rename to rsc/rc_light/branch_closed_disabled.png
diff --git a/utils/rsc/rc_light/branch_closed_disabled@2x.png b/rsc/rc_light/branch_closed_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_closed_disabled@2x.png
rename to rsc/rc_light/branch_closed_disabled@2x.png
diff --git a/utils/rsc/rc_light/branch_closed_focus.png b/rsc/rc_light/branch_closed_focus.png
similarity index 100%
rename from utils/rsc/rc_light/branch_closed_focus.png
rename to rsc/rc_light/branch_closed_focus.png
diff --git a/utils/rsc/rc_light/branch_closed_focus@2x.png b/rsc/rc_light/branch_closed_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_closed_focus@2x.png
rename to rsc/rc_light/branch_closed_focus@2x.png
diff --git a/utils/rsc/rc_light/branch_closed_pressed.png b/rsc/rc_light/branch_closed_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/branch_closed_pressed.png
rename to rsc/rc_light/branch_closed_pressed.png
diff --git a/utils/rsc/rc_light/branch_closed_pressed@2x.png b/rsc/rc_light/branch_closed_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_closed_pressed@2x.png
rename to rsc/rc_light/branch_closed_pressed@2x.png
diff --git a/utils/rsc/rc_light/branch_end.png b/rsc/rc_light/branch_end.png
similarity index 100%
rename from utils/rsc/rc_light/branch_end.png
rename to rsc/rc_light/branch_end.png
diff --git a/utils/rsc/rc_light/branch_end@2x.png b/rsc/rc_light/branch_end@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_end@2x.png
rename to rsc/rc_light/branch_end@2x.png
diff --git a/utils/rsc/rc_light/branch_end_disabled.png b/rsc/rc_light/branch_end_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/branch_end_disabled.png
rename to rsc/rc_light/branch_end_disabled.png
diff --git a/utils/rsc/rc_light/branch_end_disabled@2x.png b/rsc/rc_light/branch_end_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_end_disabled@2x.png
rename to rsc/rc_light/branch_end_disabled@2x.png
diff --git a/utils/rsc/rc_light/branch_end_focus.png b/rsc/rc_light/branch_end_focus.png
similarity index 100%
rename from utils/rsc/rc_light/branch_end_focus.png
rename to rsc/rc_light/branch_end_focus.png
diff --git a/utils/rsc/rc_light/branch_end_focus@2x.png b/rsc/rc_light/branch_end_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_end_focus@2x.png
rename to rsc/rc_light/branch_end_focus@2x.png
diff --git a/utils/rsc/rc_light/branch_end_pressed.png b/rsc/rc_light/branch_end_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/branch_end_pressed.png
rename to rsc/rc_light/branch_end_pressed.png
diff --git a/utils/rsc/rc_light/branch_end_pressed@2x.png b/rsc/rc_light/branch_end_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_end_pressed@2x.png
rename to rsc/rc_light/branch_end_pressed@2x.png
diff --git a/utils/rsc/rc_light/branch_line.png b/rsc/rc_light/branch_line.png
similarity index 100%
rename from utils/rsc/rc_light/branch_line.png
rename to rsc/rc_light/branch_line.png
diff --git a/utils/rsc/rc_light/branch_line@2x.png b/rsc/rc_light/branch_line@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_line@2x.png
rename to rsc/rc_light/branch_line@2x.png
diff --git a/utils/rsc/rc_light/branch_line_disabled.png b/rsc/rc_light/branch_line_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/branch_line_disabled.png
rename to rsc/rc_light/branch_line_disabled.png
diff --git a/utils/rsc/rc_light/branch_line_disabled@2x.png b/rsc/rc_light/branch_line_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_line_disabled@2x.png
rename to rsc/rc_light/branch_line_disabled@2x.png
diff --git a/utils/rsc/rc_light/branch_line_focus.png b/rsc/rc_light/branch_line_focus.png
similarity index 100%
rename from utils/rsc/rc_light/branch_line_focus.png
rename to rsc/rc_light/branch_line_focus.png
diff --git a/utils/rsc/rc_light/branch_line_focus@2x.png b/rsc/rc_light/branch_line_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_line_focus@2x.png
rename to rsc/rc_light/branch_line_focus@2x.png
diff --git a/utils/rsc/rc_light/branch_line_pressed.png b/rsc/rc_light/branch_line_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/branch_line_pressed.png
rename to rsc/rc_light/branch_line_pressed.png
diff --git a/utils/rsc/rc_light/branch_line_pressed@2x.png b/rsc/rc_light/branch_line_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_line_pressed@2x.png
rename to rsc/rc_light/branch_line_pressed@2x.png
diff --git a/utils/rsc/rc_light/branch_more.png b/rsc/rc_light/branch_more.png
similarity index 100%
rename from utils/rsc/rc_light/branch_more.png
rename to rsc/rc_light/branch_more.png
diff --git a/utils/rsc/rc_light/branch_more@2x.png b/rsc/rc_light/branch_more@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_more@2x.png
rename to rsc/rc_light/branch_more@2x.png
diff --git a/utils/rsc/rc_light/branch_more_disabled.png b/rsc/rc_light/branch_more_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/branch_more_disabled.png
rename to rsc/rc_light/branch_more_disabled.png
diff --git a/utils/rsc/rc_light/branch_more_disabled@2x.png b/rsc/rc_light/branch_more_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_more_disabled@2x.png
rename to rsc/rc_light/branch_more_disabled@2x.png
diff --git a/utils/rsc/rc_light/branch_more_focus.png b/rsc/rc_light/branch_more_focus.png
similarity index 100%
rename from utils/rsc/rc_light/branch_more_focus.png
rename to rsc/rc_light/branch_more_focus.png
diff --git a/utils/rsc/rc_light/branch_more_focus@2x.png b/rsc/rc_light/branch_more_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_more_focus@2x.png
rename to rsc/rc_light/branch_more_focus@2x.png
diff --git a/utils/rsc/rc_light/branch_more_pressed.png b/rsc/rc_light/branch_more_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/branch_more_pressed.png
rename to rsc/rc_light/branch_more_pressed.png
diff --git a/utils/rsc/rc_light/branch_more_pressed@2x.png b/rsc/rc_light/branch_more_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_more_pressed@2x.png
rename to rsc/rc_light/branch_more_pressed@2x.png
diff --git a/utils/rsc/rc_light/branch_open.png b/rsc/rc_light/branch_open.png
similarity index 100%
rename from utils/rsc/rc_light/branch_open.png
rename to rsc/rc_light/branch_open.png
diff --git a/utils/rsc/rc_light/branch_open@2x.png b/rsc/rc_light/branch_open@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_open@2x.png
rename to rsc/rc_light/branch_open@2x.png
diff --git a/utils/rsc/rc_light/branch_open_disabled.png b/rsc/rc_light/branch_open_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/branch_open_disabled.png
rename to rsc/rc_light/branch_open_disabled.png
diff --git a/utils/rsc/rc_light/branch_open_disabled@2x.png b/rsc/rc_light/branch_open_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_open_disabled@2x.png
rename to rsc/rc_light/branch_open_disabled@2x.png
diff --git a/utils/rsc/rc_light/branch_open_focus.png b/rsc/rc_light/branch_open_focus.png
similarity index 100%
rename from utils/rsc/rc_light/branch_open_focus.png
rename to rsc/rc_light/branch_open_focus.png
diff --git a/utils/rsc/rc_light/branch_open_focus@2x.png b/rsc/rc_light/branch_open_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_open_focus@2x.png
rename to rsc/rc_light/branch_open_focus@2x.png
diff --git a/utils/rsc/rc_light/branch_open_pressed.png b/rsc/rc_light/branch_open_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/branch_open_pressed.png
rename to rsc/rc_light/branch_open_pressed.png
diff --git a/utils/rsc/rc_light/branch_open_pressed@2x.png b/rsc/rc_light/branch_open_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/branch_open_pressed@2x.png
rename to rsc/rc_light/branch_open_pressed@2x.png
diff --git a/utils/rsc/rc_light/checkbox_checked.png b/rsc/rc_light/checkbox_checked.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_checked.png
rename to rsc/rc_light/checkbox_checked.png
diff --git a/utils/rsc/rc_light/checkbox_checked@2x.png b/rsc/rc_light/checkbox_checked@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_checked@2x.png
rename to rsc/rc_light/checkbox_checked@2x.png
diff --git a/utils/rsc/rc_light/checkbox_checked_disabled.png b/rsc/rc_light/checkbox_checked_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_checked_disabled.png
rename to rsc/rc_light/checkbox_checked_disabled.png
diff --git a/utils/rsc/rc_light/checkbox_checked_disabled@2x.png b/rsc/rc_light/checkbox_checked_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_checked_disabled@2x.png
rename to rsc/rc_light/checkbox_checked_disabled@2x.png
diff --git a/utils/rsc/rc_light/checkbox_checked_focus.png b/rsc/rc_light/checkbox_checked_focus.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_checked_focus.png
rename to rsc/rc_light/checkbox_checked_focus.png
diff --git a/utils/rsc/rc_light/checkbox_checked_focus@2x.png b/rsc/rc_light/checkbox_checked_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_checked_focus@2x.png
rename to rsc/rc_light/checkbox_checked_focus@2x.png
diff --git a/utils/rsc/rc_light/checkbox_checked_pressed.png b/rsc/rc_light/checkbox_checked_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_checked_pressed.png
rename to rsc/rc_light/checkbox_checked_pressed.png
diff --git a/utils/rsc/rc_light/checkbox_checked_pressed@2x.png b/rsc/rc_light/checkbox_checked_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_checked_pressed@2x.png
rename to rsc/rc_light/checkbox_checked_pressed@2x.png
diff --git a/utils/rsc/rc_light/checkbox_indeterminate.png b/rsc/rc_light/checkbox_indeterminate.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_indeterminate.png
rename to rsc/rc_light/checkbox_indeterminate.png
diff --git a/utils/rsc/rc_light/checkbox_indeterminate@2x.png b/rsc/rc_light/checkbox_indeterminate@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_indeterminate@2x.png
rename to rsc/rc_light/checkbox_indeterminate@2x.png
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_disabled.png b/rsc/rc_light/checkbox_indeterminate_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_indeterminate_disabled.png
rename to rsc/rc_light/checkbox_indeterminate_disabled.png
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_disabled@2x.png b/rsc/rc_light/checkbox_indeterminate_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_indeterminate_disabled@2x.png
rename to rsc/rc_light/checkbox_indeterminate_disabled@2x.png
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_focus.png b/rsc/rc_light/checkbox_indeterminate_focus.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_indeterminate_focus.png
rename to rsc/rc_light/checkbox_indeterminate_focus.png
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_focus@2x.png b/rsc/rc_light/checkbox_indeterminate_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_indeterminate_focus@2x.png
rename to rsc/rc_light/checkbox_indeterminate_focus@2x.png
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_pressed.png b/rsc/rc_light/checkbox_indeterminate_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_indeterminate_pressed.png
rename to rsc/rc_light/checkbox_indeterminate_pressed.png
diff --git a/utils/rsc/rc_light/checkbox_indeterminate_pressed@2x.png b/rsc/rc_light/checkbox_indeterminate_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_indeterminate_pressed@2x.png
rename to rsc/rc_light/checkbox_indeterminate_pressed@2x.png
diff --git a/utils/rsc/rc_light/checkbox_unchecked.png b/rsc/rc_light/checkbox_unchecked.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_unchecked.png
rename to rsc/rc_light/checkbox_unchecked.png
diff --git a/utils/rsc/rc_light/checkbox_unchecked@2x.png b/rsc/rc_light/checkbox_unchecked@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_unchecked@2x.png
rename to rsc/rc_light/checkbox_unchecked@2x.png
diff --git a/utils/rsc/rc_light/checkbox_unchecked_disabled.png b/rsc/rc_light/checkbox_unchecked_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_unchecked_disabled.png
rename to rsc/rc_light/checkbox_unchecked_disabled.png
diff --git a/utils/rsc/rc_light/checkbox_unchecked_disabled@2x.png b/rsc/rc_light/checkbox_unchecked_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_unchecked_disabled@2x.png
rename to rsc/rc_light/checkbox_unchecked_disabled@2x.png
diff --git a/utils/rsc/rc_light/checkbox_unchecked_focus.png b/rsc/rc_light/checkbox_unchecked_focus.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_unchecked_focus.png
rename to rsc/rc_light/checkbox_unchecked_focus.png
diff --git a/utils/rsc/rc_light/checkbox_unchecked_focus@2x.png b/rsc/rc_light/checkbox_unchecked_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_unchecked_focus@2x.png
rename to rsc/rc_light/checkbox_unchecked_focus@2x.png
diff --git a/utils/rsc/rc_light/checkbox_unchecked_pressed.png b/rsc/rc_light/checkbox_unchecked_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_unchecked_pressed.png
rename to rsc/rc_light/checkbox_unchecked_pressed.png
diff --git a/utils/rsc/rc_light/checkbox_unchecked_pressed@2x.png b/rsc/rc_light/checkbox_unchecked_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/checkbox_unchecked_pressed@2x.png
rename to rsc/rc_light/checkbox_unchecked_pressed@2x.png
diff --git a/utils/rsc/rc_light/line_horizontal.png b/rsc/rc_light/line_horizontal.png
similarity index 100%
rename from utils/rsc/rc_light/line_horizontal.png
rename to rsc/rc_light/line_horizontal.png
diff --git a/utils/rsc/rc_light/line_horizontal@2x.png b/rsc/rc_light/line_horizontal@2x.png
similarity index 100%
rename from utils/rsc/rc_light/line_horizontal@2x.png
rename to rsc/rc_light/line_horizontal@2x.png
diff --git a/utils/rsc/rc_light/line_horizontal_disabled.png b/rsc/rc_light/line_horizontal_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/line_horizontal_disabled.png
rename to rsc/rc_light/line_horizontal_disabled.png
diff --git a/utils/rsc/rc_light/line_horizontal_disabled@2x.png b/rsc/rc_light/line_horizontal_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/line_horizontal_disabled@2x.png
rename to rsc/rc_light/line_horizontal_disabled@2x.png
diff --git a/utils/rsc/rc_light/line_horizontal_focus.png b/rsc/rc_light/line_horizontal_focus.png
similarity index 100%
rename from utils/rsc/rc_light/line_horizontal_focus.png
rename to rsc/rc_light/line_horizontal_focus.png
diff --git a/utils/rsc/rc_light/line_horizontal_focus@2x.png b/rsc/rc_light/line_horizontal_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/line_horizontal_focus@2x.png
rename to rsc/rc_light/line_horizontal_focus@2x.png
diff --git a/utils/rsc/rc_light/line_horizontal_pressed.png b/rsc/rc_light/line_horizontal_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/line_horizontal_pressed.png
rename to rsc/rc_light/line_horizontal_pressed.png
diff --git a/utils/rsc/rc_light/line_horizontal_pressed@2x.png b/rsc/rc_light/line_horizontal_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/line_horizontal_pressed@2x.png
rename to rsc/rc_light/line_horizontal_pressed@2x.png
diff --git a/utils/rsc/rc_light/line_vertical.png b/rsc/rc_light/line_vertical.png
similarity index 100%
rename from utils/rsc/rc_light/line_vertical.png
rename to rsc/rc_light/line_vertical.png
diff --git a/utils/rsc/rc_light/line_vertical@2x.png b/rsc/rc_light/line_vertical@2x.png
similarity index 100%
rename from utils/rsc/rc_light/line_vertical@2x.png
rename to rsc/rc_light/line_vertical@2x.png
diff --git a/utils/rsc/rc_light/line_vertical_disabled.png b/rsc/rc_light/line_vertical_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/line_vertical_disabled.png
rename to rsc/rc_light/line_vertical_disabled.png
diff --git a/utils/rsc/rc_light/line_vertical_disabled@2x.png b/rsc/rc_light/line_vertical_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/line_vertical_disabled@2x.png
rename to rsc/rc_light/line_vertical_disabled@2x.png
diff --git a/utils/rsc/rc_light/line_vertical_focus.png b/rsc/rc_light/line_vertical_focus.png
similarity index 100%
rename from utils/rsc/rc_light/line_vertical_focus.png
rename to rsc/rc_light/line_vertical_focus.png
diff --git a/utils/rsc/rc_light/line_vertical_focus@2x.png b/rsc/rc_light/line_vertical_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/line_vertical_focus@2x.png
rename to rsc/rc_light/line_vertical_focus@2x.png
diff --git a/utils/rsc/rc_light/line_vertical_pressed.png b/rsc/rc_light/line_vertical_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/line_vertical_pressed.png
rename to rsc/rc_light/line_vertical_pressed.png
diff --git a/utils/rsc/rc_light/line_vertical_pressed@2x.png b/rsc/rc_light/line_vertical_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/line_vertical_pressed@2x.png
rename to rsc/rc_light/line_vertical_pressed@2x.png
diff --git a/utils/rsc/rc_light/radio_checked.png b/rsc/rc_light/radio_checked.png
similarity index 100%
rename from utils/rsc/rc_light/radio_checked.png
rename to rsc/rc_light/radio_checked.png
diff --git a/utils/rsc/rc_light/radio_checked@2x.png b/rsc/rc_light/radio_checked@2x.png
similarity index 100%
rename from utils/rsc/rc_light/radio_checked@2x.png
rename to rsc/rc_light/radio_checked@2x.png
diff --git a/utils/rsc/rc_light/radio_checked_disabled.png b/rsc/rc_light/radio_checked_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/radio_checked_disabled.png
rename to rsc/rc_light/radio_checked_disabled.png
diff --git a/utils/rsc/rc_light/radio_checked_disabled@2x.png b/rsc/rc_light/radio_checked_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/radio_checked_disabled@2x.png
rename to rsc/rc_light/radio_checked_disabled@2x.png
diff --git a/utils/rsc/rc_light/radio_checked_focus.png b/rsc/rc_light/radio_checked_focus.png
similarity index 100%
rename from utils/rsc/rc_light/radio_checked_focus.png
rename to rsc/rc_light/radio_checked_focus.png
diff --git a/utils/rsc/rc_light/radio_checked_focus@2x.png b/rsc/rc_light/radio_checked_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/radio_checked_focus@2x.png
rename to rsc/rc_light/radio_checked_focus@2x.png
diff --git a/utils/rsc/rc_light/radio_checked_pressed.png b/rsc/rc_light/radio_checked_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/radio_checked_pressed.png
rename to rsc/rc_light/radio_checked_pressed.png
diff --git a/utils/rsc/rc_light/radio_checked_pressed@2x.png b/rsc/rc_light/radio_checked_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/radio_checked_pressed@2x.png
rename to rsc/rc_light/radio_checked_pressed@2x.png
diff --git a/utils/rsc/rc_light/radio_unchecked.png b/rsc/rc_light/radio_unchecked.png
similarity index 100%
rename from utils/rsc/rc_light/radio_unchecked.png
rename to rsc/rc_light/radio_unchecked.png
diff --git a/utils/rsc/rc_light/radio_unchecked@2x.png b/rsc/rc_light/radio_unchecked@2x.png
similarity index 100%
rename from utils/rsc/rc_light/radio_unchecked@2x.png
rename to rsc/rc_light/radio_unchecked@2x.png
diff --git a/utils/rsc/rc_light/radio_unchecked_disabled.png b/rsc/rc_light/radio_unchecked_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/radio_unchecked_disabled.png
rename to rsc/rc_light/radio_unchecked_disabled.png
diff --git a/utils/rsc/rc_light/radio_unchecked_disabled@2x.png b/rsc/rc_light/radio_unchecked_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/radio_unchecked_disabled@2x.png
rename to rsc/rc_light/radio_unchecked_disabled@2x.png
diff --git a/utils/rsc/rc_light/radio_unchecked_focus.png b/rsc/rc_light/radio_unchecked_focus.png
similarity index 100%
rename from utils/rsc/rc_light/radio_unchecked_focus.png
rename to rsc/rc_light/radio_unchecked_focus.png
diff --git a/utils/rsc/rc_light/radio_unchecked_focus@2x.png b/rsc/rc_light/radio_unchecked_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/radio_unchecked_focus@2x.png
rename to rsc/rc_light/radio_unchecked_focus@2x.png
diff --git a/utils/rsc/rc_light/radio_unchecked_pressed.png b/rsc/rc_light/radio_unchecked_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/radio_unchecked_pressed.png
rename to rsc/rc_light/radio_unchecked_pressed.png
diff --git a/utils/rsc/rc_light/radio_unchecked_pressed@2x.png b/rsc/rc_light/radio_unchecked_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/radio_unchecked_pressed@2x.png
rename to rsc/rc_light/radio_unchecked_pressed@2x.png
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal.png b/rsc/rc_light/toolbar_move_horizontal.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_horizontal.png
rename to rsc/rc_light/toolbar_move_horizontal.png
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal@2x.png b/rsc/rc_light/toolbar_move_horizontal@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_horizontal@2x.png
rename to rsc/rc_light/toolbar_move_horizontal@2x.png
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_disabled.png b/rsc/rc_light/toolbar_move_horizontal_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_horizontal_disabled.png
rename to rsc/rc_light/toolbar_move_horizontal_disabled.png
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png b/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png
rename to rsc/rc_light/toolbar_move_horizontal_disabled@2x.png
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_focus.png b/rsc/rc_light/toolbar_move_horizontal_focus.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_horizontal_focus.png
rename to rsc/rc_light/toolbar_move_horizontal_focus.png
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_focus@2x.png b/rsc/rc_light/toolbar_move_horizontal_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_horizontal_focus@2x.png
rename to rsc/rc_light/toolbar_move_horizontal_focus@2x.png
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_pressed.png b/rsc/rc_light/toolbar_move_horizontal_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_horizontal_pressed.png
rename to rsc/rc_light/toolbar_move_horizontal_pressed.png
diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png b/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png
rename to rsc/rc_light/toolbar_move_horizontal_pressed@2x.png
diff --git a/utils/rsc/rc_light/toolbar_move_vertical.png b/rsc/rc_light/toolbar_move_vertical.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_vertical.png
rename to rsc/rc_light/toolbar_move_vertical.png
diff --git a/utils/rsc/rc_light/toolbar_move_vertical@2x.png b/rsc/rc_light/toolbar_move_vertical@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_vertical@2x.png
rename to rsc/rc_light/toolbar_move_vertical@2x.png
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_disabled.png b/rsc/rc_light/toolbar_move_vertical_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_vertical_disabled.png
rename to rsc/rc_light/toolbar_move_vertical_disabled.png
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_disabled@2x.png b/rsc/rc_light/toolbar_move_vertical_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_vertical_disabled@2x.png
rename to rsc/rc_light/toolbar_move_vertical_disabled@2x.png
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_focus.png b/rsc/rc_light/toolbar_move_vertical_focus.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_vertical_focus.png
rename to rsc/rc_light/toolbar_move_vertical_focus.png
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_focus@2x.png b/rsc/rc_light/toolbar_move_vertical_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_vertical_focus@2x.png
rename to rsc/rc_light/toolbar_move_vertical_focus@2x.png
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_pressed.png b/rsc/rc_light/toolbar_move_vertical_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_vertical_pressed.png
rename to rsc/rc_light/toolbar_move_vertical_pressed.png
diff --git a/utils/rsc/rc_light/toolbar_move_vertical_pressed@2x.png b/rsc/rc_light/toolbar_move_vertical_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_move_vertical_pressed@2x.png
rename to rsc/rc_light/toolbar_move_vertical_pressed@2x.png
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal.png b/rsc/rc_light/toolbar_separator_horizontal.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_horizontal.png
rename to rsc/rc_light/toolbar_separator_horizontal.png
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal@2x.png b/rsc/rc_light/toolbar_separator_horizontal@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_horizontal@2x.png
rename to rsc/rc_light/toolbar_separator_horizontal@2x.png
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_disabled.png b/rsc/rc_light/toolbar_separator_horizontal_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_horizontal_disabled.png
rename to rsc/rc_light/toolbar_separator_horizontal_disabled.png
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png b/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png
rename to rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_focus.png b/rsc/rc_light/toolbar_separator_horizontal_focus.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_horizontal_focus.png
rename to rsc/rc_light/toolbar_separator_horizontal_focus.png
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png b/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png
rename to rsc/rc_light/toolbar_separator_horizontal_focus@2x.png
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_pressed.png b/rsc/rc_light/toolbar_separator_horizontal_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_horizontal_pressed.png
rename to rsc/rc_light/toolbar_separator_horizontal_pressed.png
diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png b/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png
rename to rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical.png b/rsc/rc_light/toolbar_separator_vertical.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_vertical.png
rename to rsc/rc_light/toolbar_separator_vertical.png
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical@2x.png b/rsc/rc_light/toolbar_separator_vertical@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_vertical@2x.png
rename to rsc/rc_light/toolbar_separator_vertical@2x.png
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_disabled.png b/rsc/rc_light/toolbar_separator_vertical_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_vertical_disabled.png
rename to rsc/rc_light/toolbar_separator_vertical_disabled.png
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png b/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png
rename to rsc/rc_light/toolbar_separator_vertical_disabled@2x.png
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_focus.png b/rsc/rc_light/toolbar_separator_vertical_focus.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_vertical_focus.png
rename to rsc/rc_light/toolbar_separator_vertical_focus.png
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_focus@2x.png b/rsc/rc_light/toolbar_separator_vertical_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_vertical_focus@2x.png
rename to rsc/rc_light/toolbar_separator_vertical_focus@2x.png
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_pressed.png b/rsc/rc_light/toolbar_separator_vertical_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_vertical_pressed.png
rename to rsc/rc_light/toolbar_separator_vertical_pressed.png
diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png b/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png
rename to rsc/rc_light/toolbar_separator_vertical_pressed@2x.png
diff --git a/utils/rsc/rc_light/transparent.png b/rsc/rc_light/transparent.png
similarity index 100%
rename from utils/rsc/rc_light/transparent.png
rename to rsc/rc_light/transparent.png
diff --git a/utils/rsc/rc_light/transparent@2x.png b/rsc/rc_light/transparent@2x.png
similarity index 100%
rename from utils/rsc/rc_light/transparent@2x.png
rename to rsc/rc_light/transparent@2x.png
diff --git a/utils/rsc/rc_light/transparent_disabled.png b/rsc/rc_light/transparent_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/transparent_disabled.png
rename to rsc/rc_light/transparent_disabled.png
diff --git a/utils/rsc/rc_light/transparent_disabled@2x.png b/rsc/rc_light/transparent_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/transparent_disabled@2x.png
rename to rsc/rc_light/transparent_disabled@2x.png
diff --git a/utils/rsc/rc_light/transparent_focus.png b/rsc/rc_light/transparent_focus.png
similarity index 100%
rename from utils/rsc/rc_light/transparent_focus.png
rename to rsc/rc_light/transparent_focus.png
diff --git a/utils/rsc/rc_light/transparent_focus@2x.png b/rsc/rc_light/transparent_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/transparent_focus@2x.png
rename to rsc/rc_light/transparent_focus@2x.png
diff --git a/utils/rsc/rc_light/transparent_pressed.png b/rsc/rc_light/transparent_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/transparent_pressed.png
rename to rsc/rc_light/transparent_pressed.png
diff --git a/utils/rsc/rc_light/transparent_pressed@2x.png b/rsc/rc_light/transparent_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/transparent_pressed@2x.png
rename to rsc/rc_light/transparent_pressed@2x.png
diff --git a/utils/rsc/rc_light/window_close.png b/rsc/rc_light/window_close.png
similarity index 100%
rename from utils/rsc/rc_light/window_close.png
rename to rsc/rc_light/window_close.png
diff --git a/utils/rsc/rc_light/window_close@2x.png b/rsc/rc_light/window_close@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_close@2x.png
rename to rsc/rc_light/window_close@2x.png
diff --git a/utils/rsc/rc_light/window_close_disabled.png b/rsc/rc_light/window_close_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/window_close_disabled.png
rename to rsc/rc_light/window_close_disabled.png
diff --git a/utils/rsc/rc_light/window_close_disabled@2x.png b/rsc/rc_light/window_close_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_close_disabled@2x.png
rename to rsc/rc_light/window_close_disabled@2x.png
diff --git a/utils/rsc/rc_light/window_close_focus.png b/rsc/rc_light/window_close_focus.png
similarity index 100%
rename from utils/rsc/rc_light/window_close_focus.png
rename to rsc/rc_light/window_close_focus.png
diff --git a/utils/rsc/rc_light/window_close_focus@2x.png b/rsc/rc_light/window_close_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_close_focus@2x.png
rename to rsc/rc_light/window_close_focus@2x.png
diff --git a/utils/rsc/rc_light/window_close_pressed.png b/rsc/rc_light/window_close_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/window_close_pressed.png
rename to rsc/rc_light/window_close_pressed.png
diff --git a/utils/rsc/rc_light/window_close_pressed@2x.png b/rsc/rc_light/window_close_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_close_pressed@2x.png
rename to rsc/rc_light/window_close_pressed@2x.png
diff --git a/utils/rsc/rc_light/window_grip.png b/rsc/rc_light/window_grip.png
similarity index 100%
rename from utils/rsc/rc_light/window_grip.png
rename to rsc/rc_light/window_grip.png
diff --git a/utils/rsc/rc_light/window_grip@2x.png b/rsc/rc_light/window_grip@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_grip@2x.png
rename to rsc/rc_light/window_grip@2x.png
diff --git a/utils/rsc/rc_light/window_grip_disabled.png b/rsc/rc_light/window_grip_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/window_grip_disabled.png
rename to rsc/rc_light/window_grip_disabled.png
diff --git a/utils/rsc/rc_light/window_grip_disabled@2x.png b/rsc/rc_light/window_grip_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_grip_disabled@2x.png
rename to rsc/rc_light/window_grip_disabled@2x.png
diff --git a/utils/rsc/rc_light/window_grip_focus.png b/rsc/rc_light/window_grip_focus.png
similarity index 100%
rename from utils/rsc/rc_light/window_grip_focus.png
rename to rsc/rc_light/window_grip_focus.png
diff --git a/utils/rsc/rc_light/window_grip_focus@2x.png b/rsc/rc_light/window_grip_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_grip_focus@2x.png
rename to rsc/rc_light/window_grip_focus@2x.png
diff --git a/utils/rsc/rc_light/window_grip_pressed.png b/rsc/rc_light/window_grip_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/window_grip_pressed.png
rename to rsc/rc_light/window_grip_pressed.png
diff --git a/utils/rsc/rc_light/window_grip_pressed@2x.png b/rsc/rc_light/window_grip_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_grip_pressed@2x.png
rename to rsc/rc_light/window_grip_pressed@2x.png
diff --git a/utils/rsc/rc_light/window_minimize.png b/rsc/rc_light/window_minimize.png
similarity index 100%
rename from utils/rsc/rc_light/window_minimize.png
rename to rsc/rc_light/window_minimize.png
diff --git a/utils/rsc/rc_light/window_minimize@2x.png b/rsc/rc_light/window_minimize@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_minimize@2x.png
rename to rsc/rc_light/window_minimize@2x.png
diff --git a/utils/rsc/rc_light/window_minimize_disabled.png b/rsc/rc_light/window_minimize_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/window_minimize_disabled.png
rename to rsc/rc_light/window_minimize_disabled.png
diff --git a/utils/rsc/rc_light/window_minimize_disabled@2x.png b/rsc/rc_light/window_minimize_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_minimize_disabled@2x.png
rename to rsc/rc_light/window_minimize_disabled@2x.png
diff --git a/utils/rsc/rc_light/window_minimize_focus.png b/rsc/rc_light/window_minimize_focus.png
similarity index 100%
rename from utils/rsc/rc_light/window_minimize_focus.png
rename to rsc/rc_light/window_minimize_focus.png
diff --git a/utils/rsc/rc_light/window_minimize_focus@2x.png b/rsc/rc_light/window_minimize_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_minimize_focus@2x.png
rename to rsc/rc_light/window_minimize_focus@2x.png
diff --git a/utils/rsc/rc_light/window_minimize_pressed.png b/rsc/rc_light/window_minimize_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/window_minimize_pressed.png
rename to rsc/rc_light/window_minimize_pressed.png
diff --git a/utils/rsc/rc_light/window_minimize_pressed@2x.png b/rsc/rc_light/window_minimize_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_minimize_pressed@2x.png
rename to rsc/rc_light/window_minimize_pressed@2x.png
diff --git a/utils/rsc/rc_light/window_undock.png b/rsc/rc_light/window_undock.png
similarity index 100%
rename from utils/rsc/rc_light/window_undock.png
rename to rsc/rc_light/window_undock.png
diff --git a/utils/rsc/rc_light/window_undock@2x.png b/rsc/rc_light/window_undock@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_undock@2x.png
rename to rsc/rc_light/window_undock@2x.png
diff --git a/utils/rsc/rc_light/window_undock_disabled.png b/rsc/rc_light/window_undock_disabled.png
similarity index 100%
rename from utils/rsc/rc_light/window_undock_disabled.png
rename to rsc/rc_light/window_undock_disabled.png
diff --git a/utils/rsc/rc_light/window_undock_disabled@2x.png b/rsc/rc_light/window_undock_disabled@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_undock_disabled@2x.png
rename to rsc/rc_light/window_undock_disabled@2x.png
diff --git a/utils/rsc/rc_light/window_undock_focus.png b/rsc/rc_light/window_undock_focus.png
similarity index 100%
rename from utils/rsc/rc_light/window_undock_focus.png
rename to rsc/rc_light/window_undock_focus.png
diff --git a/utils/rsc/rc_light/window_undock_focus@2x.png b/rsc/rc_light/window_undock_focus@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_undock_focus@2x.png
rename to rsc/rc_light/window_undock_focus@2x.png
diff --git a/utils/rsc/rc_light/window_undock_pressed.png b/rsc/rc_light/window_undock_pressed.png
similarity index 100%
rename from utils/rsc/rc_light/window_undock_pressed.png
rename to rsc/rc_light/window_undock_pressed.png
diff --git a/utils/rsc/rc_light/window_undock_pressed@2x.png b/rsc/rc_light/window_undock_pressed@2x.png
similarity index 100%
rename from utils/rsc/rc_light/window_undock_pressed@2x.png
rename to rsc/rc_light/window_undock_pressed@2x.png
diff --git a/src/Lib/Audio.cc b/src/Lib/Audio.cc
index d748fb533c4cb19e85741402bdfbb2686a816934..8c492175f4849f7381af719a860cca4d73f1e706 100644
--- a/src/Lib/Audio.cc
+++ b/src/Lib/Audio.cc
@@ -188,7 +188,7 @@ AudioContext::Stream::decodeData()
 
         // Decode one frame
         int response = avcodec_send_packet(codecContext.get(), &packet);
-        if (response < 0) [[unlikely]] {
+        if (response < 0) {
             throw std::runtime_error(
                 QStringLiteral("error n°%1 while sending a packet to the decoder")
                     .arg(response)
@@ -200,9 +200,9 @@ AudioContext::Stream::decodeData()
 
         while (response >= 0) {
             response = avcodec_receive_frame(codecContext.get(), dataFrame.get());
-            if (response == AVERROR(EAGAIN) || response == AVERROR_EOF) [[unlikely]] {
+            if (response == AVERROR(EAGAIN) || response == AVERROR_EOF) {
                 break;
-            } else if (response < 0) [[unlikely]] {
+            } else if (response < 0) {
                 throw std::runtime_error(
                     QStringLiteral("error n°%1 while receiving a from from the decoder")
                         .arg(response)
@@ -218,19 +218,21 @@ AudioContext::Stream::decodeData()
             }
 
             // Resample frame
-            if (const int frame_count_int =
-                    swr_convert(dataSwrContext.get(), reinterpret_cast<uint8_t **>(&buffer),
-                                dataFrame->nb_samples, (const uint8_t **)dataFrame->data,
-                                dataFrame->nb_samples);
-                frame_count_int < 0) [[unlikely]] {
+            if (const int frame_count_int = swr_convert(
+                    dataSwrContext.get(), reinterpret_cast<uint8_t **>(&buffer),
+                    dataFrame->nb_samples,
+                    const_cast<const uint8_t **>(reinterpret_cast<uint8_t **>(dataFrame->data)),
+                    dataFrame->nb_samples);
+                frame_count_int < 0) {
                 throw std::runtime_error("error on frame count, is negative but should not be");
             }
 
             // Append resampled frames to data
-            else [[likely]] {
+            else {
                 const size_t frame_count = static_cast<size_t>(frame_count_int);
                 dataPtr                  = reinterpret_cast<double *>(
-                    realloc(dataPtr, (dataSize + (size_t)dataFrame->nb_samples) * sizeof(double)));
+                    realloc(dataPtr, (dataSize + static_cast<size_t>(dataFrame->nb_samples)) *
+                                         sizeof(double)));
                 memcpy(dataPtr + dataSize, buffer, frame_count * sizeof(double));
                 dataSize += frame_count;
             }
diff --git a/src/Lib/Document/VivyDocument.cc b/src/Lib/Document/VivyDocument.cc
index be9bc9fbbf57c6cf2c35d33a9e315ca40fd429ba..2baee52bb193ae1559aea0c12460988f46eeaaba 100644
--- a/src/Lib/Document/VivyDocument.cc
+++ b/src/Lib/Document/VivyDocument.cc
@@ -86,19 +86,18 @@ VivyDocument::detectDocumentType(const QFileInfo &file, Capabilities *ableType)
     Vivy::Utils::DocumentType docType;
     bool rc = Vivy::Utils::detectDocumentType(file, &docType);
 
-    switch (docType) {
-    case Vivy::Utils::DocumentType::Video:
+    if (docType == Utils::DocumentType::Video)
         *ableType = Capabilities::VideoAble;
-        break;
-    case Vivy::Utils::DocumentType::Audio:
+
+    else if (docType == Utils::DocumentType::Audio)
         *ableType = Capabilities::AudioAble;
-        break;
-    case Vivy::Utils::DocumentType::ASS:
+
+    else if (docType == Utils::DocumentType::ASS)
         *ableType = Capabilities::AssAble;
-        break;
-    default:
+
+    // Invalid document type
+    else
         return false;
-    }
 
     return rc;
 }
diff --git a/src/Lib/Utils.cc b/src/Lib/Utils.cc
index 2e1a1b5fa800e146cee8033a432fd7a68ec65a51..063e4009723671f1667d319a333f78b3cd90056c 100644
--- a/src/Lib/Utils.cc
+++ b/src/Lib/Utils.cc
@@ -82,3 +82,48 @@ Utils::Time::toString() const noexcept
     return QString::number(hour) + ":" + QString::number(minute) + ":" + QString::number(second) +
            "." + QString::number(centisecond);
 }
+
+const QString &
+Utils::getAudioFileSuffixFilter() noexcept
+{
+    static bool isInitialized = false;
+    static QString ret        = QStringLiteral("Audio sub-documents (*.");
+
+    if (isInitialized)
+        return ret;
+
+    ret.append(audioFileSuffix.join(" *."));
+    ret.append(')');
+    isInitialized = true;
+    return ret;
+}
+
+const QString &
+Utils::getVideoFileSuffixFilter() noexcept
+{
+    static bool isInitialized = false;
+    static QString ret        = QStringLiteral("Video sub-documents (*.");
+
+    if (isInitialized)
+        return ret;
+
+    ret.append(videoFileSuffix.join(" *."));
+    ret.append(')');
+    isInitialized = true;
+    return ret;
+}
+
+const QString &
+Utils::getAssFileSuffixFilter() noexcept
+{
+    static bool isInitialized = false;
+    static QString ret        = QStringLiteral("ASS sub-documents (*.");
+
+    if (isInitialized)
+        return ret;
+
+    ret.append(assFileSuffix.join(" *."));
+    ret.append(')');
+    isInitialized = true;
+    return ret;
+}
diff --git a/src/Lib/Utils.hh b/src/Lib/Utils.hh
index ef38724c7c54862d236bb0fb7db4c36389f00483..925347d93d331862fbbc3abfc8796a3d8aef8ac6 100644
--- a/src/Lib/Utils.hh
+++ b/src/Lib/Utils.hh
@@ -22,6 +22,9 @@
     classname &operator=(const classname &) = delete; /* Copy assign */                            \
     classname &operator=(classname &&) = delete;      /* Move assign */
 
+// QStringLiteral but for regexes
+#define QRegExpLiteral(str) QRegExp(QStringLiteral(str))
+
 namespace Vivy
 {
 // Concept for classes that can be viewd inside a property view
@@ -43,6 +46,10 @@ static const QStringList videoFileSuffix = { "mkv", "mp4", "mov", "avi", "av1",
 static const QStringList assFileSuffix   = { "ass" };
 static const QStringList vivyFileSuffix  = { "vivy" };
 
+const QString &getAudioFileSuffixFilter() noexcept;
+const QString &getVideoFileSuffixFilter() noexcept;
+const QString &getAssFileSuffixFilter() noexcept;
+
 enum class DocumentType : quint64 {
     /* Basic types */
     Vivy = (1 << 1),
diff --git a/src/UI/AboutWindow.cc b/src/UI/AboutWindow.cc
index 42ba502a816994dab1408f52c83d6e5638944622..af1c3df3e758c43a17640d4bf1af0e36f8b665d6 100644
--- a/src/UI/AboutWindow.cc
+++ b/src/UI/AboutWindow.cc
@@ -37,56 +37,49 @@ static const char *libContent =
     "  </ul>"
     "</body>";
 
-// Simple QLabel with some presets
-class SimpleLabel final : public QLabel {
-public:
-    explicit SimpleLabel(QWidget *parent, const char *text)
-        : QLabel(parent)
-    {
-        setTextFormat(Qt::RichText);
-        setTextInteractionFlags(Qt::NoTextInteraction | Qt::LinksAccessibleByMouse |
-                                Qt::LinksAccessibleByKeyboard);
-        setText(text);
-        setAlignment(Qt::AlignJustify | Qt::AlignTop);
-    }
-};
-
-// Simple QLabel for licences
-class LicenceLabel final : public QTextEdit {
-public:
-    explicit LicenceLabel(QWidget *parent, const QString &url, const Qt::TextFormat format)
-        : QTextEdit(parent)
-    {
-        QFile content(url);
-        if (!content.open(QIODevice::ReadOnly | QIODevice::Text))
-            throw std::runtime_error("Failed to open file that should be accessible");
-
-        setTextInteractionFlags(Qt::NoTextInteraction);
-        setAlignment(Qt::AlignJustify | Qt::AlignTop);
-        setAcceptRichText(true);
-        setReadOnly(true);
-        setAutoFormatting(QTextEdit::AutoAll);
-
-        setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-        setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
-        setFont(vivyApp->getApplicationFont(VivyApplication::Font::Monospace));
-        setFrameStyle(QFrame::NoFrame);
-
-        switch (format) {
-        case Qt::PlainText:
-        case Qt::RichText:
-            setText(content.readAll());
-            break;
-
-        case Qt::MarkdownText:
-            setMarkdown(content.readAll());
-            break;
-
-        case Qt::AutoText:
-            qCritical() << "Invalid text format for LicenceLabel" << format;
-        }
+AboutWindow::SimpleLabel::SimpleLabel(QWidget *parent, const char *text)
+    : QLabel(parent)
+{
+    setTextFormat(Qt::RichText);
+    setTextInteractionFlags(Qt::NoTextInteraction | Qt::LinksAccessibleByMouse |
+                            Qt::LinksAccessibleByKeyboard);
+    setText(text);
+    setAlignment(Qt::AlignJustify | Qt::AlignTop);
+}
+
+AboutWindow::LicenceLabel::LicenceLabel(QWidget *parent, const QString &url,
+                                        const Qt::TextFormat format)
+    : QTextEdit(parent)
+{
+    QFile content(url);
+    if (!content.open(QIODevice::ReadOnly | QIODevice::Text))
+        throw std::runtime_error("Failed to open file that should be accessible");
+
+    setTextInteractionFlags(Qt::NoTextInteraction);
+    setAlignment(Qt::AlignJustify | Qt::AlignTop);
+    setAcceptRichText(true);
+    setReadOnly(true);
+    setAutoFormatting(QTextEdit::AutoAll);
+
+    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+    setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+    setFont(vivyApp->getApplicationFont(VivyApplication::Font::Monospace));
+    setFrameStyle(QFrame::NoFrame);
+
+    switch (format) {
+    case Qt::PlainText:
+    case Qt::RichText:
+        setText(content.readAll());
+        break;
+
+    case Qt::MarkdownText:
+        setMarkdown(content.readAll());
+        break;
+
+    case Qt::AutoText:
+        qCritical() << "Invalid text format for LicenceLabel" << format;
     }
-};
+}
 
 // Construct the AboutWindow
 AboutWindow::AboutWindow(QWidget *parent) noexcept
diff --git a/src/UI/AboutWindow.hh b/src/UI/AboutWindow.hh
index 7e498a771e104ae7e7d292110bf21380a8ec2129..acbd437c0a2b3513f3f1bdcdf356771d8dc8c705 100644
--- a/src/UI/AboutWindow.hh
+++ b/src/UI/AboutWindow.hh
@@ -7,6 +7,7 @@
 #include <QMainWindow>
 #include <QTabWidget>
 #include <QLabel>
+#include <QTextEdit>
 
 namespace Vivy
 {
@@ -15,6 +16,18 @@ class AboutWindow final : public QMainWindow {
 
     QTabWidget *panels;
 
+    // Simple QLabel with some presets
+    class SimpleLabel final : public QLabel {
+    public:
+        explicit SimpleLabel(QWidget *parent, const char *text);
+    };
+
+    // Simple QLabel for licences
+    class LicenceLabel final : public QTextEdit {
+    public:
+        explicit LicenceLabel(QWidget *parent, const QString &url, const Qt::TextFormat format);
+    };
+
 public:
     explicit AboutWindow(QWidget *parent) noexcept;
     ~AboutWindow() noexcept = default;
diff --git a/src/UI/AbstractDocumentView.cc b/src/UI/AbstractDocumentView.cc
index 153948d60fca0546681b3ca445823b50b883a355..51ece8ec6952c8fcd8fa0fcdef8cf5109c7af82c 100644
--- a/src/UI/AbstractDocumentView.cc
+++ b/src/UI/AbstractDocumentView.cc
@@ -71,6 +71,7 @@ void
 AbstractDocumentView::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dock,
                                     Qt::Orientation orientation) noexcept
 {
+    // dock->setTitleBarWidget(new QWidget(dock)); // <- to disable the header bar
     QMainWindow::addDockWidget(area, dock, orientation);
     QAction *act = dock->toggleViewAction();
     if (!viewsActions.contains(act))
diff --git a/src/UI/AbstractDocumentView.hh b/src/UI/AbstractDocumentView.hh
index 43dc02e99877050426f3f9a227f4b57ce3e84692..29d22aedd82fa099e04d75dd0e6e36bc7c765fca 100644
--- a/src/UI/AbstractDocumentView.hh
+++ b/src/UI/AbstractDocumentView.hh
@@ -22,7 +22,7 @@ class AbstractDocumentView : public QMainWindow {
 public:
     enum class Type : quint64 {
         Vivy   = Utils::toUnderlying(Utils::DocumentType::Vivy),
-        Script = Utils::toUnderlying(Utils::DocumentType::VivyScript),
+        Script = Utils::toUnderlying(Utils::DocumentType::VivyScript)
     };
 
 public:
diff --git a/src/UI/DocumentViews/AssLinesView.cc b/src/UI/DocumentViews/AssLinesView.cc
index a203ce5a1b433c042a9f5f6d904972dccab4f53a..9134238f1f64d578ba6636f883fda227b1504cc4 100644
--- a/src/UI/DocumentViews/AssLinesView.cc
+++ b/src/UI/DocumentViews/AssLinesView.cc
@@ -19,13 +19,20 @@ AssLinesView::AssLinesView(QAbstractItemModel *model, QWidget *parent) noexcept
     horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
     horizontalHeader()->setStretchLastSection(true);
     horizontalHeader()->hide();
+    verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
     verticalHeader()->setVisible(true);
+
     setSelectionMode(QAbstractItemView::ExtendedSelection);
     setSelectionBehavior(QAbstractItemView::SelectRows);
     setShowGrid(false);
 
-    const QString style = QStringLiteral("font-family: \"FiraCode\"; font-size: 8pt;");
+    const QString style    = QStringLiteral("* { font-family: \"FiraCode\"; font-size: 8pt; }");
+    const QString hdrStyle = QStringLiteral("::section {"
+                                            "  font-family: \"FiraCode\";"
+                                            "  font-size:   8pt;"
+                                            "}");
     setStyleSheet(style);
+    verticalHeader()->setStyleSheet(hdrStyle);
     setModel(model);
 }
 
diff --git a/src/UI/DocumentViews/TimingScene.cc b/src/UI/DocumentViews/TimingScene.cc
index 3c916fd0868d3364b69b0822c233357dd9667f94..e9db17e38c240717c21e814c98139e7585a80f16 100644
--- a/src/UI/DocumentViews/TimingScene.cc
+++ b/src/UI/DocumentViews/TimingScene.cc
@@ -32,36 +32,44 @@ TimingScene::TimingScene(QImage img_, quint64 soundLength_, QWidget *parent) noe
 void
 TimingScene::mousePressEvent(QGraphicsSceneMouseEvent *event) noexcept
 {
-    QPointF pos = event->scenePos();
-    fprintf(stderr, "%f,%f\n", pos.x(), pos.y());
+    QPointF pos        = event->scenePos();
+    QGraphicsItem *got = itemAt(pos, QTransform());
+    Ass::LinePtr p     = currentLine.lock();
 
-    QGraphicsItem *got;
-    if ((got = itemAt(pos, QTransform())) == nullptr || got == backgroundImg) {
-        if (auto p = currentLine.lock()) {
-            quint64 time = timeFromPos(pos.x());
-            switch (timingMode) {
-            case TimingMode::Line:
-                switch (event->button()) {
-                case Qt::LeftButton:
-                    p->setStart(time);
-                    break;
+    if (p && (got == nullptr || got == backgroundImg)) [[likely]] {
+        // Handle the different cases
+        if (timingMode == TimingMode::Line)
+            handleMousePressEventLine(event, p);
+        else if (timingMode == TimingMode::Syl)
+            handleMousePressEventSyl(event, p);
+        else if (timingMode == TimingMode::Char)
+            handleMousePressEventChar(event, p);
+    }
 
-                case Qt::RightButton:
-                    p->setEnd(time);
-                    break;
+    QGraphicsScene::mousePressEvent(event);
+}
 
-                default:
-                    break;
-                }
-                break;
+void
+TimingScene::handleMousePressEventLine(QGraphicsSceneMouseEvent *event, Ass::LinePtr p) noexcept
+{
+    QPointF pos  = event->scenePos();
+    quint64 time = timeFromPos(pos.x());
 
-            default:
-                break;
-            }
-        }
+    if (const auto &btn = event->button(); btn == Qt::LeftButton) {
+        p->setStart(time);
+    } else if (btn == Qt::RightButton) {
+        p->setEnd(time);
     }
+}
 
-    QGraphicsScene::mousePressEvent(event);
+void
+TimingScene::handleMousePressEventSyl(QGraphicsSceneMouseEvent *, Ass::LinePtr) noexcept
+{
+}
+
+void
+TimingScene::handleMousePressEventChar(QGraphicsSceneMouseEvent *, Ass::LinePtr) noexcept
+{
 }
 
 quint64
diff --git a/src/UI/DocumentViews/TimingScene.hh b/src/UI/DocumentViews/TimingScene.hh
index fba8958f33ab0587d326ccac30847254ef5d7255..02f20e90904772202d507760dbb6a119ab40ff00 100644
--- a/src/UI/DocumentViews/TimingScene.hh
+++ b/src/UI/DocumentViews/TimingScene.hh
@@ -18,7 +18,7 @@ class TimingScene final : public QGraphicsScene {
     Q_OBJECT
 
 public:
-    enum class TimingMode { Line = 0x0, Syl = 0x1, Char = 0x2 };
+    enum class TimingMode { Line = 0, Syl = (1 << 1), Char = (1 << 2) };
     Q_DECLARE_FLAGS(TimingModes, TimingMode)
 
 public:
@@ -27,7 +27,6 @@ public:
 
     explicit TimingScene(QWidget *parent = nullptr) noexcept;
     explicit TimingScene(QImage, quint64, QWidget * = nullptr) noexcept;
-    ~TimingScene() noexcept = default;
 
 private:
     QGraphicsPixmapItem *backgroundImg{ nullptr };
@@ -42,6 +41,9 @@ public:
 
 private:
     quint64 timeFromPos(qreal x);
+    void handleMousePressEventLine(QGraphicsSceneMouseEvent *, Ass::LinePtr) noexcept;
+    void handleMousePressEventSyl(QGraphicsSceneMouseEvent *, Ass::LinePtr) noexcept;
+    void handleMousePressEventChar(QGraphicsSceneMouseEvent *, Ass::LinePtr) noexcept;
 
 public slots:
 };
diff --git a/src/UI/DocumentViews/TimingView.cc b/src/UI/DocumentViews/TimingView.cc
index ef12fef40af4cd8a1534d9da2d6a9d4c049263fb..a140ac56ef5e24214a63269cbeba76668e532d12 100644
--- a/src/UI/DocumentViews/TimingView.cc
+++ b/src/UI/DocumentViews/TimingView.cc
@@ -20,7 +20,7 @@ TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcep
 {
     scene = new TimingScene(img, soundLength, this);
     setFixedHeight(img.height());
-    setMaximumHeight(img.height() + horizontalScrollBar()->height());
+    setMaximumHeight(img.height());
     setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
     setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
@@ -34,7 +34,7 @@ TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcep
 void
 TimingView::wheelEvent(QWheelEvent *event) noexcept
 {
-    horizontalScrollBar()->setValue(horizontalScrollBar()->value() +
+    horizontalScrollBar()->setValue(horizontalScrollBar()->value() -
                                     event->angleDelta().y() * wheelAngleToScrollRatio);
 }
 
diff --git a/src/UI/MainWindow.cc b/src/UI/MainWindow.cc
index 89ae4396c621fd450ad4de52bf1291a5667e5aec..950eeb5767ffc14fef24320d9daabc2e923ff10e 100644
--- a/src/UI/MainWindow.cc
+++ b/src/UI/MainWindow.cc
@@ -86,9 +86,12 @@ MainWindow::MainWindow() noexcept
     documents->setElideMode(Qt::ElideRight);
     documents->setUsesScrollButtons(true);
     documents->setDocumentMode(true);
+    documents->setTabBarAutoHide(true);
     connect(documents, &QTabWidget::tabCloseRequested, this, &MainWindow::closeDocument);
     connect(documents, &QTabWidget::tabBarDoubleClicked, this, &MainWindow::openProperties);
     setCentralWidget(documents);
+    centralWidget()->setContentsMargins(0, 0, 0, 0);
+    setContentsMargins(0, 0, 0, 0);
 
     // Enable/disable actions depending on the context
     saveFileAct->setEnabled(false);
@@ -118,23 +121,22 @@ MainWindow::MainWindow() noexcept
         }
     };
 
-    connect(documents, &QTabWidget::currentChanged, this,
-            [this](int) noexcept -> void { documentViewActionsChanged(); });
-    connect(documents, &QTabWidget::currentChanged, saveFileAct,
-            std::bind_front(enableSaveOnDocument, saveFileAct));
-    connect(documents, &QTabWidget::currentChanged, saveFileAsAct,
-            std::bind_front(enableSaveOnDocument, saveFileAsAct));
-
-    connect(documents, &QTabWidget::currentChanged, loadSubDocumentAudioAct,
-            std::bind_front(enableLoadSubOnDocument, loadSubDocumentAudioAct));
-    connect(documents, &QTabWidget::currentChanged, loadSubDocumentVideoAct,
-            std::bind_front(enableLoadSubOnDocument, loadSubDocumentVideoAct));
-    connect(documents, &QTabWidget::currentChanged, loadSubDocumentAssAct,
-            std::bind_front(enableLoadSubOnDocument, loadSubDocumentAssAct));
-
-    // Add a new empty document that will will be replaced if nothing is added
-    // to it.
-    newDocument();
+    {
+#define CONNECT_ENABLE(act, func)                                                                  \
+    connect(documents, &QTabWidget::currentChanged, act, std::bind_front(func, act));
+
+        connect(documents, &QTabWidget::currentChanged, this,
+                [this](int) noexcept -> void { documentViewActionsChanged(); });
+
+        CONNECT_ENABLE(saveFileAct, enableSaveOnDocument);
+        CONNECT_ENABLE(saveFileAsAct, enableSaveOnDocument);
+
+        CONNECT_ENABLE(loadSubDocumentAssAct, enableLoadSubOnDocument);
+        CONNECT_ENABLE(loadSubDocumentVideoAct, enableLoadSubOnDocument);
+        CONNECT_ENABLE(loadSubDocumentAudioAct, enableLoadSubOnDocument);
+
+#undef CONNECT_ENABLE
+    }
 
     // Main window has finished its construction
     statusBar()->showMessage("QSimulate has started");
@@ -142,6 +144,9 @@ MainWindow::MainWindow() noexcept
     // Minimal size...
     setMinimumHeight(400);
     setMinimumWidth(600);
+
+    // Always a new empty document
+    newDocument();
 }
 
 void
@@ -242,45 +247,44 @@ MainWindow::newDocument() noexcept
 void
 MainWindow::openDocument() noexcept
 {
-    QFileDialog dialog(this, "Select a file");
-    bool dialogAccepted = false;
-    std::unique_ptr<VivyFileIconProvider> iconProvider(new VivyFileIconProvider());
-    dialog.setOption(QFileDialog::DontUseNativeDialog);
-    dialog.setOption(QFileDialog::ReadOnly);
-    dialog.setIconProvider(iconProvider.get());
-    dialog.setFileMode(QFileDialog::ExistingFile);
-    connect(&dialog, &QFileDialog::accepted, this,
-            [&dialogAccepted]() noexcept -> void { dialogAccepted = true; });
-    dialog.exec();
-
-    if (!dialogAccepted) {
-        qDebug() << "No file accepted";
-        return;
-    }
-
-    const QStringList resList = dialog.selectedFiles();
-    if (resList.size() != 1) {
-        qCritical() << "You must select only one file";
-        return;
-    }
-
-    const QString filename = resList.at(0);
-
+    const QString separator = QStringLiteral(";;");
+    const QString filename  = dialogOpenFileName("Select a document to open", QDir::homePath(),
+                                                QStringLiteral("Vivy documents (*.vivy);;"
+                                                               "Vivy scripts (*.lua *.vvs);;") +
+                                                    Utils::getAudioFileSuffixFilter() + separator +
+                                                    Utils::getVideoFileSuffixFilter() + separator +
+                                                    Utils::getAssFileSuffixFilter());
     if (filename.isEmpty()) {
         qWarning() << "Found an empty filename, don't open a file";
         return;
     }
 
-    qDebug() << "Try to load document" << filename;
-    std::shared_ptr<VivyDocument> document = vivyApp->documentStore.loadDocument(filename);
+    // TODO: Better implementation
+    // Load script document
+    if (filename.endsWith(".lua") || filename.endsWith(".vvs")) {
+        qDebug() << "Try to load script" << filename;
+        try {
+            addTab(new ScriptDocumentView(filename, documents));
+        } catch (const std::runtime_error &e) {
+            qCritical() << "Failed to load script" << filename << "with error:" << e.what();
+        }
+    }
 
-    try {
-        qDebug() << "Add the view to the MainWindow for" << filename;
-        addTab(new VivyDocumentView(document));
-    } catch (const std::runtime_error &e) {
-        qCritical() << "Failed to create the document view for" << QFileInfo(filename).baseName()
-                    << "with path" << filename << "and error:" << e.what();
-        vivyApp->documentStore.closeDocument(document->getUuid());
+    // TODO: Better implementation
+    // Load Vivy document
+    else {
+        qDebug() << "Try to load document" << filename;
+        std::shared_ptr<VivyDocument> document = vivyApp->documentStore.loadDocument(filename);
+
+        try {
+            qDebug() << "Add the view to the MainWindow for" << filename;
+            addTab(new VivyDocumentView(document));
+        } catch (const std::runtime_error &e) {
+            qCritical()
+                << "Failed to create the document view for" << QFileInfo(filename).baseName()
+                << "with path" << filename << "and error:" << e.what();
+            vivyApp->documentStore.closeDocument(document->getUuid());
+        }
     }
 }
 
@@ -288,7 +292,7 @@ void
 MainWindow::loadSubDocumentAss() noexcept
 {
     withOpenFileNameDialog<VivyDocumentView, VivyDocument>(
-        "Select an ASS document to load",
+        "Select an ASS document to load", Utils::getAssFileSuffixFilter(),
         [](VivyDocumentView *view, VivyDocument *doc, const QString &filename) noexcept -> void {
             doc->setAssSubDocument(filename);
             view->loadAssView();
@@ -299,7 +303,7 @@ void
 MainWindow::loadSubDocumentVideo() noexcept
 {
     withOpenFileNameDialog<VivyDocumentView, VivyDocument>(
-        "Select a video document to load",
+        "Select a video document to load", Utils::getVideoFileSuffixFilter(),
         [](VivyDocumentView *view, VivyDocument *doc, const QString &filename) noexcept -> void {
             doc->setVideoSubDocument(filename);
             view->loadVideoView();
@@ -311,6 +315,8 @@ MainWindow::loadSubDocumentAudio() noexcept
 {
     withOpenFileNameDialog<VivyDocumentView, VivyDocument>(
         "Select an audio document to load",
+        Utils::getAudioFileSuffixFilter() + QStringLiteral(";;") +
+            Utils::getVideoFileSuffixFilter(),
         [](VivyDocumentView *view, VivyDocument *doc, const QString &filename) noexcept -> void {
             doc->setAudioSubDocument(filename);
             view->loadAudioView();
@@ -319,17 +325,6 @@ MainWindow::loadSubDocumentAudio() noexcept
 
 void
 MainWindow::addTab(AbstractDocumentView *tab)
-{
-    const int index = documents->addTab(tab, tab->getDocumentTabIcon(), tab->getDocumentTabName());
-    documents->setTabToolTip(index, tab->getDocumentTabToolTip());
-    documents->setCurrentIndex(index);
-    connect(tab, &AbstractDocumentView::viewActionsChanged, this,
-            &MainWindow::documentViewActionsChanged);
-    documentViewActionsChanged();
-}
-
-void
-MainWindow::addTab(VivyDocumentView *tab)
 {
     int index = -1;
     if (const int untouched_index = findFirstUntouchedDocument(); untouched_index >= 0) {
@@ -398,3 +393,31 @@ MainWindow::documentViewActionsChanged() noexcept
         qInfo() << "No view to display:" << e.what();
     }
 }
+QString
+MainWindow::dialogOpenFileName(const QString &title, const QString &folder,
+                               const QString &filter) noexcept
+{
+    QFileDialog dialog(this, title, folder, filter);
+    bool dialogAccepted = false;
+    std::unique_ptr<VivyFileIconProvider> iconProvider(new VivyFileIconProvider());
+
+    dialog.setOption(QFileDialog::ReadOnly);
+    dialog.setIconProvider(iconProvider.get());
+    dialog.setFileMode(QFileDialog::ExistingFile);
+    connect(&dialog, &QFileDialog::accepted, this,
+            [&dialogAccepted]() noexcept -> void { dialogAccepted = true; });
+
+    dialog.exec();
+
+    if (!dialogAccepted) {
+        return QStringLiteral("");
+    }
+
+    const QStringList resList = dialog.selectedFiles();
+    if (resList.size() != 1) {
+        qCritical() << "You must select only one file";
+        return QStringLiteral("");
+    }
+
+    return resList.at(0);
+}
diff --git a/src/UI/MainWindow.hh b/src/UI/MainWindow.hh
index 0da5f538c52619e3fd2298b675c060315b316520..17386985d089c75caaef8345ebd1984cd29f241b 100644
--- a/src/UI/MainWindow.hh
+++ b/src/UI/MainWindow.hh
@@ -28,7 +28,6 @@ class MainWindow final : public QMainWindow {
 
 public:
     explicit MainWindow() noexcept;
-    ~MainWindow() noexcept = default;
 
     AbstractDocument *getCurrentDocument() const noexcept;
     template <class Document> Document *getCurrentDocument() const noexcept
@@ -43,18 +42,19 @@ public:
 
 private:
     void addTab(AbstractDocumentView *);
-    void addTab(VivyDocumentView *);
     AbstractDocumentView *getTab(const int) const noexcept;
     AbstractDocumentView *getCurrentDocumentView() const;
 
     int findFirstUntouchedDocument() const noexcept;
+    QString dialogOpenFileName(const QString &title, const QString &folder,
+                               const QString &filter) noexcept;
 
     // Do an action with the selected filename. The 'call' variable must be
     // callable like this: call(DocumentView, Document, QString)
     template <typename DV, typename D>
-    void withOpenFileNameDialog(const QString &, auto call) noexcept
+    void withOpenFileNameDialog(const QString &title, const QString &filter, auto call) noexcept
     {
-        QString filename = QFileDialog::getOpenFileName(this, "Select an ASS document to load");
+        const QString filename = dialogOpenFileName(title, QDir::homePath(), filter);
 
         if (filename.isEmpty()) {
             qWarning() << "Found an empty filename, don't open a file";
diff --git a/src/UI/PropertyModel.cc b/src/UI/PropertyModel.cc
index 47308fa476f236532eaa12078efce9ae338754ea..5dd71eaaca81359c570771bf09db4c45356602b1 100644
--- a/src/UI/PropertyModel.cc
+++ b/src/UI/PropertyModel.cc
@@ -103,8 +103,7 @@ PropertyModel::Item::fromJson(const QJsonValue &value, PropertyModel::Item *pare
     }
 
     else if (value.isArray()) {
-        int index = 0;
-        for (const QJsonValue &v : value.toArray()) {
+        for (int index = 0; const QJsonValue v : value.toArray()) {
             Item *child = fromJson(v, root);
             child->setKey(QString::number(index));
             child->setType(v.type());
diff --git a/src/UI/ScriptDocumentView.cc b/src/UI/ScriptDocumentView.cc
index 661a1fbe5e23e8e193161cad68c3515426012511..b8d03ac55d6ccb23662417ad007f5466e6e4a8a1 100644
--- a/src/UI/ScriptDocumentView.cc
+++ b/src/UI/ScriptDocumentView.cc
@@ -1,10 +1,25 @@
 #include "ScriptDocumentView.hh"
+#include "ScriptViews/ScriptEditor.hh"
+#include "ScriptViews/ScriptHighlighter.hh"
+#include "../VivyApplication.hh"
+
+#include <QVBoxLayout>
 
 using namespace Vivy;
 
-ScriptDocumentView::ScriptDocumentView(QWidget *parent) noexcept
+ScriptDocumentView::ScriptDocumentView(const QString &path, QWidget *parent)
     : AbstractDocumentView(AbstractDocumentView::Type::Script, parent)
+    , editor(new ScriptEditor(this))
+    , syntax(new ScriptHighlighter(editor->document()))
 {
+    QFile textFile(path);
+    if (!textFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
+        throw std::runtime_error("Failed to open script file");
+    }
+
+    editor->setPlainText(textFile.readAll());
+    setCentralWidget(editor);
+    editor->setFocus(Qt::OtherFocusReason);
 }
 
 void
@@ -27,7 +42,7 @@ ScriptDocumentView::getDocumentTabToolTip() const noexcept
 QIcon
 ScriptDocumentView::getDocumentTabIcon() const noexcept
 {
-    return QIcon::fromTheme("text-x-script");
+    return QIcon(VIVY_ICON_FILE);
 }
 
 void
diff --git a/src/UI/ScriptDocumentView.hh b/src/UI/ScriptDocumentView.hh
index 4d93378aab9a173786c621c91cb2f7d66dfa5c04..15b2be984092776f7b82ddbeb3ab4ee5e6774428 100644
--- a/src/UI/ScriptDocumentView.hh
+++ b/src/UI/ScriptDocumentView.hh
@@ -13,13 +13,15 @@
 
 namespace Vivy
 {
+class ScriptEditor;
+class ScriptHighlighter;
+
 class ScriptDocumentView final : public AbstractDocumentView {
     Q_OBJECT
     VIVY_UNMOVABLE_OBJECT(ScriptDocumentView)
 
 public:
-    explicit ScriptDocumentView(QWidget *parent = nullptr) noexcept;
-    virtual ~ScriptDocumentView() noexcept = default;
+    explicit ScriptDocumentView(const QString &path, QWidget *parent = nullptr);
 
     void closeDocument() noexcept override;
     void openProperties() noexcept override;
@@ -31,7 +33,11 @@ public:
     AbstractDocument *getDocument() const noexcept override
     {
         return nullptr;
-    };
+    }
+
+private:
+    ScriptEditor *editor{ nullptr };
+    ScriptHighlighter *syntax{ nullptr };
 };
 }
 
diff --git a/src/UI/ScriptViews/ScriptEditor.cc b/src/UI/ScriptViews/ScriptEditor.cc
new file mode 100644
index 0000000000000000000000000000000000000000..362598405bba9536432d40c4373edba5e4ba1d35
--- /dev/null
+++ b/src/UI/ScriptViews/ScriptEditor.cc
@@ -0,0 +1,133 @@
+#include "ScriptEditor.hh"
+#include "ScriptHighlighter.hh"
+
+#include <QTextCursor>
+#include <QBrush>
+#include <QKeyEvent>
+#include <QFrame>
+
+using namespace Vivy;
+
+ScriptEditor::LineNumberArea::LineNumberArea(ScriptEditor *editor) noexcept
+    : QWidget(editor)
+    , scriptEditor(editor)
+{
+}
+
+QSize
+ScriptEditor::LineNumberArea::sizeHint() const noexcept
+{
+    return QSize(scriptEditor->lineNumberAreaWidth(), 0);
+}
+
+void
+ScriptEditor::LineNumberArea::paintEvent(QPaintEvent *event) noexcept
+{
+    scriptEditor->lineNumberAreaPaintEvent(event);
+}
+
+ScriptEditor::ScriptEditor(QWidget *parent) noexcept
+    : QPlainTextEdit(parent)
+{
+    setStyleSheet(QStringLiteral("* {"
+                                 "  background-color: #232629;"
+                                 "  font-family: \"FiraCode\";"
+                                 "  font-size: 10pt"
+                                 "}"));
+    lineNumberArea = new LineNumberArea(this);
+    setFrameShape(QFrame::NoFrame);
+
+    connect(this, &ScriptEditor::blockCountChanged, this, &ScriptEditor::updateLineNumberAreaWidth);
+    connect(this, &ScriptEditor::updateRequest, this, &ScriptEditor::updateLineNumberArea);
+
+    QTextCharFormat textFormat;
+    textFormat.setForeground(QBrush(Qt::white));
+    mergeCurrentCharFormat(textFormat);
+
+    setBackgroundVisible(true);
+    updateLineNumberAreaWidth(0);
+}
+
+void
+ScriptEditor::keyPressEvent(QKeyEvent *e) noexcept
+{
+    if (e->key() == Qt::Key_Tab) {
+        QTextCursor cursor = textCursor();
+        cursor.insertText(spacesForTab);
+        e->accept();
+    }
+
+    else {
+        QPlainTextEdit::keyPressEvent(e);
+    }
+}
+
+int
+ScriptEditor::lineNumberAreaWidth() noexcept
+{
+    int digits = 1;
+    int max    = qMax(1, blockCount());
+    while (max >= 10) {
+        max /= 10;
+        ++digits;
+    }
+    if (digits == 1)
+        digits++;
+
+    const int space = 3 + fontMetrics().horizontalAdvance('9') * digits;
+    return space;
+}
+
+void
+ScriptEditor::updateLineNumberAreaWidth([[maybe_unused]] int newBlockCount) noexcept
+{
+    setViewportMargins(lineNumberAreaWidth(), 0, 0, 0);
+}
+
+void
+ScriptEditor::updateLineNumberArea(const QRect &rect, int dy) noexcept
+{
+    if (dy)
+        lineNumberArea->scroll(0, dy);
+    else
+        lineNumberArea->update(0, rect.y(), lineNumberArea->width(), rect.height());
+
+    if (rect.contains(viewport()->rect()))
+        updateLineNumberAreaWidth(0);
+}
+
+void
+ScriptEditor::resizeEvent(QResizeEvent *e) noexcept
+{
+    QPlainTextEdit::resizeEvent(e);
+    const QRect cr = contentsRect();
+    lineNumberArea->setGeometry(QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height()));
+}
+
+void
+ScriptEditor::lineNumberAreaPaintEvent(QPaintEvent *event) noexcept
+{
+    QPainter painter(lineNumberArea);
+    painter.fillRect(event->rect(), QColor::fromRgb(49, 54, 59));
+    QTextBlock block  = firstVisibleBlock();
+    int blockNumber   = block.blockNumber();
+    int top           = qRound(blockBoundingGeometry(block).translated(contentOffset()).top());
+    int bottom        = top + qRound(blockBoundingRect(block).height());
+    const int current = textCursor().blockNumber();
+
+    while (block.isValid() && top <= event->rect().bottom()) {
+        if (block.isVisible() && bottom >= event->rect().top()) {
+            const bool drawCurrent = blockNumber == current;
+            const QString number =
+                drawCurrent ? QStringLiteral("->") : QString::number(blockNumber + 1);
+            painter.setPen(drawCurrent ? Qt::white : Qt::black);
+            painter.drawText(0, top, lineNumberArea->width(), fontMetrics().height(),
+                             Qt::AlignRight, number);
+        }
+
+        block  = block.next();
+        top    = bottom;
+        bottom = top + qRound(blockBoundingRect(block).height());
+        ++blockNumber;
+    }
+}
diff --git a/src/UI/ScriptViews/ScriptEditor.hh b/src/UI/ScriptViews/ScriptEditor.hh
new file mode 100644
index 0000000000000000000000000000000000000000..601a2ed1305420342f0c81f57b35fe9a28c8dc29
--- /dev/null
+++ b/src/UI/ScriptViews/ScriptEditor.hh
@@ -0,0 +1,52 @@
+#pragma once
+
+#ifndef __cplusplus
+#error "This is a C++ header"
+#endif
+
+#include <QPlainTextEdit>
+#include "../../Lib/Utils.hh"
+
+namespace Vivy
+{
+class ScriptEditor final : public QPlainTextEdit {
+    Q_OBJECT
+    VIVY_UNMOVABLE_OBJECT(ScriptEditor)
+
+    // Get the line numbers, private class
+    class LineNumberArea final : public QWidget {
+        VIVY_UNMOVABLE_OBJECT(LineNumberArea)
+    public:
+        LineNumberArea(ScriptEditor *editor) noexcept;
+
+        QSize sizeHint() const noexcept override;
+
+    protected:
+        void paintEvent(QPaintEvent *event) noexcept override;
+
+    private:
+        ScriptEditor *scriptEditor{ nullptr };
+    };
+
+    // Number of spaces in a tab
+    static constexpr int spacesPerTab        = 4;
+    static inline const QString spacesForTab = QString(QStringLiteral(" ")).repeated(spacesPerTab);
+
+public:
+    ScriptEditor(QWidget *parent) noexcept;
+
+    void lineNumberAreaPaintEvent(QPaintEvent *event) noexcept;
+    int lineNumberAreaWidth() noexcept;
+
+protected:
+    void resizeEvent(QResizeEvent *event) noexcept override;
+    void keyPressEvent(QKeyEvent *e) noexcept override;
+
+private slots:
+    void updateLineNumberAreaWidth(int newBlockCount) noexcept;
+    void updateLineNumberArea(const QRect &rect, int dy) noexcept;
+
+private:
+    QWidget *lineNumberArea{ nullptr };
+};
+}
diff --git a/src/UI/ScriptViews/ScriptHighlighter.cc b/src/UI/ScriptViews/ScriptHighlighter.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6112d17646926a3d9c811b90a41ae96dc14277c1
--- /dev/null
+++ b/src/UI/ScriptViews/ScriptHighlighter.cc
@@ -0,0 +1,168 @@
+#include "ScriptHighlighter.hh"
+#include "../../Lib/Utils.hh"
+
+#include <QTextDocument>
+
+using namespace Vivy;
+
+ScriptHighlighter::HighlightingRule::HighlightingRule(QRegExp pttrn, QTextCharFormat frmt)
+    : pattern(pttrn)
+    , format(frmt)
+{
+}
+
+void
+ScriptHighlighter::resetHighlightingRule() noexcept
+{
+    highlightingRules.clear();
+
+    // function calls
+    functionFormat.setForeground(fromTheme().functionForeground);
+    highlightingRules.emplace_back(QRegExpLiteral("\\b[A-Za-z0-9_]+[ ]*(?=\\()"), functionFormat);
+    highlightingRules.emplace_back(QRegExpLiteral("\\b[A-Za-z0-9_]+[ ]*(?=\\{)"), functionFormat);
+
+    // keywords
+    const QStringList keywordPatterns = {
+        QStringLiteral("\\bfunction\\b"), QStringLiteral("\\bbreak\\b"),
+        QStringLiteral("\\bgoto\\b"),     QStringLiteral("\\bdo\\b"),
+        QStringLiteral("\\bend\\b"),      QStringLiteral("\\bwhile\\b"),
+        QStringLiteral("\\brepeat\\b"),   QStringLiteral("\\buntil\\b"),
+        QStringLiteral("\\bif\\b"),       QStringLiteral("\\bthen\\b"),
+        QStringLiteral("\\belseif\\b"),   QStringLiteral("\\belse\\b"),
+        QStringLiteral("\\bfor\\b"),      QStringLiteral("\\bin\\b"),
+        QStringLiteral("\\blocal\\b"),    QStringLiteral("\\bor\\b"),
+        QStringLiteral("\\band\\b"),      QStringLiteral("\\bnot\\b"),
+        QStringLiteral("\\breturn\\b"),
+    };
+
+    keywordFormat.setForeground(fromTheme().keywordForeground);
+    keywordFormat.setFontWeight(QFont::Bold);
+
+    for (QString const &pattern : keywordPatterns) {
+        highlightingRules.emplace_back(QRegExp(pattern), keywordFormat);
+    }
+
+    // numbers, boolean, nil
+    const QStringList valuePatterns = {
+        QStringLiteral("\\bnil\\b"),
+        QStringLiteral("\\btrue\\b"),
+        QStringLiteral("\\bfalse\\b"),
+        QStringLiteral("\\b\\d+\\b"),
+        QStringLiteral("\\b\\d+.\\b"),
+        QStringLiteral("\\b\\d+e\\b"),
+        QStringLiteral("\\b\\[\\dA-Fa-F]+\\b"),
+    };
+
+    valueFormat.setForeground(fromTheme().valueForeground);
+    valueFormat.setFontWeight(QFont::Normal);
+
+    for (QString const &pattern : valuePatterns) {
+        highlightingRules.emplace_back(QRegExp(pattern), valueFormat);
+    }
+
+    // strings
+    quotationFormat.setForeground(fromTheme().quotationForeground);
+    highlightingRules.emplace_back(QRegExpLiteral("\"[^\"]*\""), quotationFormat);
+    highlightingRules.emplace_back(QRegExpLiteral("\'[^\']*\'"), quotationFormat);
+    quoteStartExpression = QRegExpLiteral("\\[\\[");
+    quoteEndExpression   = QRegExpLiteral("\\]\\]");
+
+    // comments
+    singleLineCommentFormat.setForeground(fromTheme().commentForeground);
+    highlightingRules.emplace_back(QRegExpLiteral("--[^\n]*"), singleLineCommentFormat);
+    commentStartExpression = QRegExpLiteral("--\\[\\[");
+    commentEndExpression   = QRegExpLiteral("\\]\\]");
+}
+
+ScriptHighlighter::ScriptHighlighter(QTextDocument *parent) noexcept
+    : QSyntaxHighlighter(parent)
+{
+    resetHighlightingRule();
+}
+
+void
+ScriptHighlighter::setCurrentBlockState(const ScriptHighlighter::BlockState state) noexcept
+{
+    QSyntaxHighlighter::setCurrentBlockState(Utils::toUnderlying(state));
+}
+
+ScriptHighlighter::BlockState
+ScriptHighlighter::previousBlockState() noexcept
+{
+    const int state = QSyntaxHighlighter::previousBlockState();
+    if (state != Utils::toUnderlying(BlockState::Quote) &&
+        state != Utils::toUnderlying(BlockState::Comment))
+        return BlockState::None;
+
+    return static_cast<const BlockState>(state);
+}
+
+void
+ScriptHighlighter::highlightBlock(const QString &text) noexcept
+{
+    for (const HighlightingRule &rule : highlightingRules) {
+        QRegExp expression(rule.pattern);
+        int index = expression.indexIn(text);
+        while (index >= 0) {
+            const int length = expression.matchedLength();
+            setFormat(index, length, rule.format);
+            index = expression.indexIn(text, index + length);
+        }
+    }
+
+    setCurrentBlockState(BlockState::None);
+    const BlockState previousState = previousBlockState();
+
+    highlightStringBlock(text, previousState);
+    highlightCommentBlock(text, previousState);
+}
+
+void
+ScriptHighlighter::highlightBlock(const QString &text, const BlockState previousState,
+                                  const BlockState toHighlight, const QRegExp &startExpr,
+                                  const QRegExp &endExpr, const QTextCharFormat &format) noexcept
+{
+    int start = -1;
+    if (previousState == toHighlight) {
+        start = 0;
+    } else if (previousState == BlockState::None) {
+        start = startExpr.indexIn(text);
+    }
+
+    while (start >= 0) {
+        const int end = endExpr.indexIn(text, start);
+        int length;
+
+        if (end == -1) {
+            setCurrentBlockState(toHighlight);
+            length = text.length() - start;
+        } else {
+            length = end - start + endExpr.matchedLength();
+        }
+
+        setFormat(start, length, format);
+        start = startExpr.indexIn(text, start + length);
+    }
+}
+
+void
+ScriptHighlighter::highlightStringBlock(const QString &text,
+                                        const BlockState previousState) noexcept
+{
+    highlightBlock(text, previousState, BlockState::Quote, quoteStartExpression, quoteEndExpression,
+                   quotationFormat);
+}
+
+void
+ScriptHighlighter::highlightCommentBlock(const QString &text,
+                                         const BlockState previousState) noexcept
+{
+    highlightBlock(text, previousState, BlockState::Comment, commentStartExpression,
+                   commentEndExpression, singleLineCommentFormat);
+}
+
+const ScriptHighlighter::HighlightingTheme
+ScriptHighlighter::fromTheme() const noexcept
+{
+    return highlightingTheme[theme];
+}
diff --git a/src/UI/ScriptViews/ScriptHighlighter.hh b/src/UI/ScriptViews/ScriptHighlighter.hh
new file mode 100644
index 0000000000000000000000000000000000000000..655f8755f96a51b18a9e7e7a9d74f36487eba44b
--- /dev/null
+++ b/src/UI/ScriptViews/ScriptHighlighter.hh
@@ -0,0 +1,92 @@
+#pragma once
+
+#ifndef __cplusplus
+#error "This is a C++ header"
+#endif
+
+#include <QSyntaxHighlighter>
+#include <QTextCharFormat>
+#include <QBrush>
+
+class QTextDocument;
+
+namespace Vivy
+{
+class ScriptHighlighter final : public QSyntaxHighlighter {
+    Q_OBJECT
+
+    struct HighlightingRule {
+        HighlightingRule(QRegExp pttrn, QTextCharFormat frmt);
+
+        QRegExp pattern;
+        QTextCharFormat format;
+    };
+
+    struct HighlightingTheme {
+        const QBrush functionForeground;
+        const QBrush keywordForeground;
+        const QBrush valueForeground;
+        const QBrush quotationForeground;
+        const QBrush commentForeground;
+    };
+
+    enum Theme { DarkTheme = 0, LightTheme = 1, ThemeCount };
+    enum class BlockState { None = -1, Quote = 1, Comment = 2 };
+
+public:
+    ScriptHighlighter(QTextDocument *parent = nullptr) noexcept;
+
+protected:
+    void highlightBlock(const QString &text) noexcept override;
+
+    void setCurrentBlockState(const BlockState) noexcept;
+    BlockState previousBlockState() noexcept;
+
+private:
+    void highlightStringBlock(const QString &text, const BlockState) noexcept;
+    void highlightCommentBlock(const QString &text, const BlockState) noexcept;
+
+    void highlightBlock(const QString &text, const BlockState previous,
+                        const BlockState toHighlight, const QRegExp &start, const QRegExp &end,
+                        const QTextCharFormat &format) noexcept;
+
+    const HighlightingTheme fromTheme() const noexcept;
+    void resetHighlightingRule() noexcept;
+
+    const HighlightingTheme darkHighlightingTheme = {
+        .functionForeground  = Qt::darkCyan,
+        .keywordForeground   = Qt::darkYellow,
+        .valueForeground     = QColor(Qt::cyan).darker(120),
+        .quotationForeground = Qt::darkGreen,
+        .commentForeground   = QColor(Qt::darkGray).darker(120),
+    };
+
+    const HighlightingTheme lightHighlightingTheme = {
+        .functionForeground  = Qt::blue,
+        .keywordForeground   = Qt::darkBlue,
+        .valueForeground     = Qt::red,
+        .quotationForeground = Qt::darkGreen,
+        .commentForeground   = QColor(Qt::darkGray).darker(120),
+    };
+
+    const HighlightingTheme highlightingTheme[ThemeCount] = {
+        darkHighlightingTheme,
+        lightHighlightingTheme,
+    };
+
+    Theme theme{ DarkTheme };
+
+    std::vector<HighlightingRule> highlightingRules;
+
+    QRegExp commentStartExpression;
+    QRegExp commentEndExpression;
+    QRegExp quoteStartExpression;
+    QRegExp quoteEndExpression;
+
+    QTextCharFormat keywordFormat;
+    QTextCharFormat valueFormat;
+    QTextCharFormat singleLineCommentFormat;
+    QTextCharFormat quotationFormat;
+    QTextCharFormat functionFormat;
+};
+}
diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc
index bd0a0416bdadb92a3e6d4ece9142394ad5a71b18..cd72d6f7ba4201f847b3635dd7b8b5cabd4374ee 100644
--- a/src/UI/VivyDocumentView.cc
+++ b/src/UI/VivyDocumentView.cc
@@ -118,7 +118,8 @@ VivyDocumentView::loadAudioView() noexcept
 
         visualizer->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
         visualizer->setWidget(visualizerInner);
-        visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea);
+        visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea |
+                                    Qt::BottomDockWidgetArea);
         visualizer->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);
         visualizer->layout()->setAlignment(visualizerInner, Qt::AlignTop);
         addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal);
diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc
index db7350047f6b4ae9e1e9e8b6050e71d873eac85e..86ef22ab58de0ca87bc7265a8e2b662aa4b19677 100644
--- a/src/VivyApplication.cc
+++ b/src/VivyApplication.cc
@@ -12,27 +12,45 @@ VivyApplication::VivyApplication(int &argc, char **argv)
 {
 }
 
+void
+VivyApplication::setTheme(Theme theme) noexcept
+{
+    if (theme == Theme::System)
+        return;
+
+    const QString sheet = theme == Theme::Dark ? QStringLiteral(":qdarkstyle/dark/style.qss")
+                                               : QStringLiteral(":qdarkstyle/light/style.qss");
+
+    QFile stylesheet(sheet);
+    if (!stylesheet.exists()) {
+        qFatal("Missing stylesheet");
+    } else {
+        stylesheet.open(QFile::ReadOnly | QFile::Text);
+        QTextStream stylesheetStream(&stylesheet);
+        setStyleSheet(stylesheetStream.readAll());
+    }
+}
+
 int
 VivyApplication::exec() noexcept
 {
     // Add fonts
-    fontIdMonospace  = QFontDatabase::addApplicationFont(":/fonts/FiraCode-Regular.ttf");
-    fontIdRegular    = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Regular.ttf");
-    fontIdItalic     = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Italic.ttf");
-    fontIdBold       = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Bold.ttf");
-    fontIdBoldItalic = QFontDatabase::addApplicationFont(":/fonts/NotoSans-BoldItalic.ttf");
+    fontIdMonospace     = QFontDatabase::addApplicationFont(":/fonts/FiraCode-Regular.ttf");
+    fontIdMonospaceBold = QFontDatabase::addApplicationFont(":/fonts/FiraCode-Bold.ttf");
+    fontIdRegular       = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Regular.ttf");
+    fontIdItalic        = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Italic.ttf");
+    fontIdBold          = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Bold.ttf");
+    fontIdBoldItalic    = QFontDatabase::addApplicationFont(":/fonts/NotoSans-BoldItalic.ttf");
 
     // Setup some things
     setAttribute(Qt::AA_DontShowIconsInMenus, false);
     setAttribute(Qt::AA_DontShowShortcutsInContextMenus, false);
     setFont(getApplicationFont(Font::Default));
-    QFile stylesheet(":qdarkstyle/dark/style.qss");
-    if (!stylesheet.exists()) {
-        qFatal("Missing stylesheet");
-    }
-    stylesheet.open(QFile::ReadOnly | QFile::Text);
-    QTextStream stylesheetStream(&stylesheet);
-    setStyleSheet(stylesheetStream.readAll());
+    setTheme(Theme::Dark); // TODO: Set system theme for now (because we
+                           // don't have a central theme provider).
+
+    // Cursor blinking
+    setCursorFlashTime(0);
 
     // Show the main window
     MainWindow mainWindow;
@@ -49,6 +67,9 @@ VivyApplication::getApplicationFont(Font id) const noexcept
     case Font::Monospace:
         return QFont(QFontDatabase::applicationFontFamilies(fontIdMonospace).at(0));
 
+    case Font::MonospaceBold:
+        return QFont(QFontDatabase::applicationFontFamilies(fontIdMonospaceBold).at(0));
+
     case Font::DefaultItalic:
         return QFont(QFontDatabase::applicationFontFamilies(fontIdItalic).at(0));
 
diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh
index 5cc29c4040da1e7c14c011f30d5ee3d0ece4e97d..4d51494cdce8fe4526852725624e6b2954dec4a9 100644
--- a/src/VivyApplication.hh
+++ b/src/VivyApplication.hh
@@ -37,14 +37,22 @@ public:
 
     enum class Font {
         Monospace,
+        MonospaceBold,
         Default,
         DefaultItalic,
         DefaultBold,
         DefaultBoldItalic,
     };
 
+    enum class Theme {
+        System,
+        Dark,
+        Light,
+    };
+
 private:
     int fontIdMonospace;
+    int fontIdMonospaceBold;
     int fontIdRegular;
     int fontIdItalic;
     int fontIdBold;
@@ -52,11 +60,11 @@ private:
 
 public:
     VivyApplication(int &argc, char **argv);
-    ~VivyApplication() = default;
 
     int exec() noexcept;
 
     QFont getApplicationFont(Font) const noexcept;
+    void setTheme(Theme) noexcept;
 };
 
 }