diff --git a/app/configs/application.json b/app/configs/application.json
index 4ea9af3cab85b302afa6f0a0e123ac642ef22afd..c86c1319ed9180193f55ed1e51dc1587f1de233f 100644
--- a/app/configs/application.json
+++ b/app/configs/application.json
@@ -1,7 +1,7 @@
 {
     "id": "ocs-manager",
     "name": "ocs-manager",
-    "version": "0.5.5",
+    "version": "0.6.0",
     "organization": "Opendesktop.org",
     "domain": "org.opendesktop.ocs-manager",
     "icon": ":/desktop/ocs-manager.svg",
diff --git a/app/src/handlers/itemhandler.cpp b/app/src/handlers/itemhandler.cpp
index d6a309888a99cd4220ac7750f639f3b76415b441..7d3d3f2421905c96e51d450ea8446c7135fbc75e 100644
--- a/app/src/handlers/itemhandler.cpp
+++ b/app/src/handlers/itemhandler.cpp
@@ -112,8 +112,7 @@ void ItemHandler::getItemByOcsUrl(const QString &ocsUrl, const QString &provider
         filename = QUrl(url).fileName();
     }
 
-    // Still support xdg and xdgs schemes for backward compatibility
-    if ((scheme == "ocs" || scheme == "ocss" || scheme == "xdg" || scheme == "xdgs")
+    if ((scheme == "ocs" || scheme == "ocss")
             && (command == "download" || command == "install")
             && QUrl(url).isValid()
             && configHandler_->getAppConfigInstallTypes().contains(type)
diff --git a/app/src/websockets/websocketserver.cpp b/app/src/websockets/websocketserver.cpp
index 405af58a9d4ee8b863e415d3ed12f0a9cdce1160..bb9d6395c620e94735cee112bb8b7d996119b276 100644
--- a/app/src/websockets/websocketserver.cpp
+++ b/app/src/websockets/websocketserver.cpp
@@ -28,22 +28,22 @@ WebSocketServer::WebSocketServer(ConfigHandler *configHandler, const QString &se
     updateHandler_ = new UpdateHandler(configHandler_, this);
     desktopThemeHandler_ = new DesktopThemeHandler(this);
 
-    connect(itemHandler_, &ItemHandler::metadataSetChanged, this, &WebSocketServer::itemMetadataSetChanged);
-    connect(itemHandler_, &ItemHandler::downloadStarted, this, &WebSocketServer::itemDownloadStarted);
-    connect(itemHandler_, &ItemHandler::downloadFinished, this, &WebSocketServer::itemDownloadFinished);
-    connect(itemHandler_, &ItemHandler::downloadProgress, this, &WebSocketServer::itemDownloadProgress);
-    connect(itemHandler_, &ItemHandler::saveStarted, this, &WebSocketServer::itemSaveStarted);
-    connect(itemHandler_, &ItemHandler::saveFinished, this, &WebSocketServer::itemSaveFinished);
-    connect(itemHandler_, &ItemHandler::installStarted, this, &WebSocketServer::itemInstallStarted);
-    connect(itemHandler_, &ItemHandler::installFinished, this, &WebSocketServer::itemInstallFinished);
-    connect(itemHandler_, &ItemHandler::uninstallStarted, this, &WebSocketServer::itemUninstallStarted);
-    connect(itemHandler_, &ItemHandler::uninstallFinished, this, &WebSocketServer::itemUninstallFinished);
-
-    connect(updateHandler_, &UpdateHandler::checkAllStarted, this, &WebSocketServer::updateCheckAllStarted);
-    connect(updateHandler_, &UpdateHandler::checkAllFinished, this, &WebSocketServer::updateCheckAllFinished);
-    connect(updateHandler_, &UpdateHandler::updateStarted, this, &WebSocketServer::updateUpdateStarted);
-    connect(updateHandler_, &UpdateHandler::updateFinished, this, &WebSocketServer::updateUpdateFinished);
-    connect(updateHandler_, &UpdateHandler::updateProgress, this, &WebSocketServer::updateUpdateProgress);
+    connect(itemHandler_, &ItemHandler::metadataSetChanged, this, &WebSocketServer::itemHandlerMetadataSetChanged);
+    connect(itemHandler_, &ItemHandler::downloadStarted, this, &WebSocketServer::itemHandlerDownloadStarted);
+    connect(itemHandler_, &ItemHandler::downloadFinished, this, &WebSocketServer::itemHandlerDownloadFinished);
+    connect(itemHandler_, &ItemHandler::downloadProgress, this, &WebSocketServer::itemHandlerDownloadProgress);
+    connect(itemHandler_, &ItemHandler::saveStarted, this, &WebSocketServer::itemHandlerSaveStarted);
+    connect(itemHandler_, &ItemHandler::saveFinished, this, &WebSocketServer::itemHandlerSaveFinished);
+    connect(itemHandler_, &ItemHandler::installStarted, this, &WebSocketServer::itemHandlerInstallStarted);
+    connect(itemHandler_, &ItemHandler::installFinished, this, &WebSocketServer::itemHandlerInstallFinished);
+    connect(itemHandler_, &ItemHandler::uninstallStarted, this, &WebSocketServer::itemHandlerUninstallStarted);
+    connect(itemHandler_, &ItemHandler::uninstallFinished, this, &WebSocketServer::itemHandlerUninstallFinished);
+
+    connect(updateHandler_, &UpdateHandler::checkAllStarted, this, &WebSocketServer::updateHandlerCheckAllStarted);
+    connect(updateHandler_, &UpdateHandler::checkAllFinished, this, &WebSocketServer::updateHandlerCheckAllFinished);
+    connect(updateHandler_, &UpdateHandler::updateStarted, this, &WebSocketServer::updateHandlerUpdateStarted);
+    connect(updateHandler_, &UpdateHandler::updateFinished, this, &WebSocketServer::updateHandlerUpdateFinished);
+    connect(updateHandler_, &UpdateHandler::updateProgress, this, &WebSocketServer::updateHandlerUpdateProgress);
 }
 
 WebSocketServer::~WebSocketServer()
@@ -136,27 +136,27 @@ void WebSocketServer::wsBinaryMessageReceived(const QByteArray &message)
     }
 }
 
-void WebSocketServer::itemMetadataSetChanged()
+void WebSocketServer::itemHandlerMetadataSetChanged()
 {
     QJsonArray data;
     sendMessage("", "ItemHandler::metadataSetChanged", data);
 }
 
-void WebSocketServer::itemDownloadStarted(QJsonObject result)
+void WebSocketServer::itemHandlerDownloadStarted(QJsonObject result)
 {
     QJsonArray data;
     data.append(result);
     sendMessage("", "ItemHandler::downloadStarted", data);
 }
 
-void WebSocketServer::itemDownloadFinished(QJsonObject result)
+void WebSocketServer::itemHandlerDownloadFinished(QJsonObject result)
 {
     QJsonArray data;
     data.append(result);
     sendMessage("", "ItemHandler::downloadFinished", data);
 }
 
-void WebSocketServer::itemDownloadProgress(QString id, qint64 bytesReceived, qint64 bytesTotal)
+void WebSocketServer::itemHandlerDownloadProgress(QString id, qint64 bytesReceived, qint64 bytesTotal)
 {
     QJsonArray data;
     data.append(id);
@@ -165,63 +165,63 @@ void WebSocketServer::itemDownloadProgress(QString id, qint64 bytesReceived, qin
     sendMessage("", "ItemHandler::downloadProgress", data);
 }
 
-void WebSocketServer::itemSaveStarted(QJsonObject result)
+void WebSocketServer::itemHandlerSaveStarted(QJsonObject result)
 {
     QJsonArray data;
     data.append(result);
     sendMessage("", "ItemHandler::saveStarted", data);
 }
 
-void WebSocketServer::itemSaveFinished(QJsonObject result)
+void WebSocketServer::itemHandlerSaveFinished(QJsonObject result)
 {
     QJsonArray data;
     data.append(result);
     sendMessage("", "ItemHandler::saveFinished", data);
 }
 
-void WebSocketServer::itemInstallStarted(QJsonObject result)
+void WebSocketServer::itemHandlerInstallStarted(QJsonObject result)
 {
     QJsonArray data;
     data.append(result);
     sendMessage("", "ItemHandler::installStarted", data);
 }
 
-void WebSocketServer::itemInstallFinished(QJsonObject result)
+void WebSocketServer::itemHandlerInstallFinished(QJsonObject result)
 {
     QJsonArray data;
     data.append(result);
     sendMessage("", "ItemHandler::installFinished", data);
 }
 
-void WebSocketServer::itemUninstallStarted(QJsonObject result)
+void WebSocketServer::itemHandlerUninstallStarted(QJsonObject result)
 {
     QJsonArray data;
     data.append(result);
     sendMessage("", "ItemHandler::uninstallStarted", data);
 }
 
-void WebSocketServer::itemUninstallFinished(QJsonObject result)
+void WebSocketServer::itemHandlerUninstallFinished(QJsonObject result)
 {
     QJsonArray data;
     data.append(result);
     sendMessage("", "ItemHandler::uninstallFinished", data);
 }
 
-void WebSocketServer::updateCheckAllStarted(bool status)
+void WebSocketServer::updateHandlerCheckAllStarted(bool status)
 {
     QJsonArray data;
     data.append(status);
     sendMessage("", "UpdateHandler::checkAllStarted", data);
 }
 
-void WebSocketServer::updateCheckAllFinished(bool status)
+void WebSocketServer::updateHandlerCheckAllFinished(bool status)
 {
     QJsonArray data;
     data.append(status);
     sendMessage("", "UpdateHandler::checkAllFinished", data);
 }
 
-void WebSocketServer::updateUpdateStarted(QString itemKey, bool status)
+void WebSocketServer::updateHandlerUpdateStarted(QString itemKey, bool status)
 {
     QJsonArray data;
     data.append(itemKey);
@@ -229,7 +229,7 @@ void WebSocketServer::updateUpdateStarted(QString itemKey, bool status)
     sendMessage("", "UpdateHandler::updateStarted", data);
 }
 
-void WebSocketServer::updateUpdateFinished(QString itemKey, bool status)
+void WebSocketServer::updateHandlerUpdateFinished(QString itemKey, bool status)
 {
     QJsonArray data;
     data.append(itemKey);
@@ -237,7 +237,7 @@ void WebSocketServer::updateUpdateFinished(QString itemKey, bool status)
     sendMessage("", "UpdateHandler::updateFinished", data);
 }
 
-void WebSocketServer::updateUpdateProgress(QString itemKey, double progress)
+void WebSocketServer::updateHandlerUpdateProgress(QString itemKey, double progress)
 {
     QJsonArray data;
     data.append(itemKey);
diff --git a/app/src/websockets/websocketserver.h b/app/src/websockets/websocketserver.h
index c0a064d6ac323f2fd8977bf8312ecb7cb995235e..3b1e38078c3b148d7d81abdc4ac3ff213d3c518e 100644
--- a/app/src/websockets/websocketserver.h
+++ b/app/src/websockets/websocketserver.h
@@ -40,22 +40,22 @@ private slots:
     void wsTextMessageReceived(const QString &message);
     void wsBinaryMessageReceived(const QByteArray &message);
 
-    void itemMetadataSetChanged();
-    void itemDownloadStarted(QJsonObject result);
-    void itemDownloadFinished(QJsonObject result);
-    void itemDownloadProgress(QString id, qint64 bytesReceived, qint64 bytesTotal);
-    void itemSaveStarted(QJsonObject result);
-    void itemSaveFinished(QJsonObject result);
-    void itemInstallStarted(QJsonObject result);
-    void itemInstallFinished(QJsonObject result);
-    void itemUninstallStarted(QJsonObject result);
-    void itemUninstallFinished(QJsonObject result);
+    void itemHandlerMetadataSetChanged();
+    void itemHandlerDownloadStarted(QJsonObject result);
+    void itemHandlerDownloadFinished(QJsonObject result);
+    void itemHandlerDownloadProgress(QString id, qint64 bytesReceived, qint64 bytesTotal);
+    void itemHandlerSaveStarted(QJsonObject result);
+    void itemHandlerSaveFinished(QJsonObject result);
+    void itemHandlerInstallStarted(QJsonObject result);
+    void itemHandlerInstallFinished(QJsonObject result);
+    void itemHandlerUninstallStarted(QJsonObject result);
+    void itemHandlerUninstallFinished(QJsonObject result);
 
-    void updateCheckAllStarted(bool status);
-    void updateCheckAllFinished(bool status);
-    void updateUpdateStarted(QString itemKey, bool status);
-    void updateUpdateFinished(QString itemKey, bool status);
-    void updateUpdateProgress(QString itemKey, double progress);
+    void updateHandlerCheckAllStarted(bool status);
+    void updateHandlerCheckAllFinished(bool status);
+    void updateHandlerUpdateStarted(QString itemKey, bool status);
+    void updateHandlerUpdateFinished(QString itemKey, bool status);
+    void updateHandlerUpdateProgress(QString itemKey, double progress);
 
 private:
     void receiveMessage(const QString &id, const QString &func, const QJsonArray &data);
diff --git a/pkg/appimage/appimagebuild b/pkg/appimage/appimagebuild
index d9e03a9ed51270b2cdb02028790d218d3bb26373..296186e814a7f128d6d31a3b013611123505b96a 100755
--- a/pkg/appimage/appimagebuild
+++ b/pkg/appimage/appimagebuild
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 PKGNAME='ocs-manager'
-PKGVER='0.5.5'
+PKGVER='0.6.0'
 PKGREL='1'
 
 curl -fsSL -o linuxdeployqt.AppImage https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
@@ -20,7 +20,8 @@ install -D -m 755 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 ${PKGNAME}.AppDir/usr
 install -D -m 755 /lib/x86_64-linux-gnu/libz.so.1 ${PKGNAME}.AppDir/usr/lib/libz.so.1
 
 install -D -m 755 /usr/bin/unzip ${PKGNAME}.AppDir/usr/bin/unzip
-install -D -m 755 /usr/lib/p7zip/7zr ${PKGNAME}.AppDir/usr/bin/7z
+install -D -m 755 /usr/lib/p7zip/7zr ${PKGNAME}.AppDir/usr/bin/7zr
+install -D -m 755 /usr/bin/unar ${PKGNAME}.AppDir/usr/bin/unar
 
 ./squashfs-root/AppRun ${PKGNAME}.AppDir/usr/share/applications/${PKGNAME}.desktop -appimage
 
diff --git a/scripts/package b/scripts/package
index 7038fc43a0d9d6947da8f0a33f7b94c1296e1946..8d275766c6f7c5552e38968949fe90e72cf86656 100755
--- a/scripts/package
+++ b/scripts/package
@@ -15,10 +15,10 @@ ci_appimage() { # docker-image: ubuntu:14.04
     apt -y install curl git
     #apt -y install build-essential qt5-default libqt5websockets5-dev
     #apt -y install cmake libssl-dev libcurl3 libcurl3-gnutls libcurl4-gnutls-dev libxpm-dev
-    apt -y install libssl1.0.0 zlib1g unzip p7zip
+    apt -y install libssl1.0.0 zlib1g unzip p7zip unar
 
     apt -y install software-properties-common
-    add-apt-repository -y ppa:beineri/opt-qt593-trusty
+    add-apt-repository -y ppa:beineri/opt-qt594-trusty
     echo 'deb http://download.opensuse.org/repositories/home:/TheAssassin:/AppImageLibraries/xUbuntu_14.04/ /' > /etc/apt/sources.list.d/curl-httponly.list
     curl -fsSL https://download.opensuse.org/repositories/home:TheAssassin:AppImageLibraries/xUbuntu_14.04/Release.key | apt-key add -
     apt update -qq
diff --git a/scripts/prepare b/scripts/prepare
index 631b96c9dad8df0a003c9f2b86ac687ab931349e..3d955a7206fefb4f7514d2bab1142e2644f879da 100755
--- a/scripts/prepare
+++ b/scripts/prepare
@@ -3,7 +3,7 @@
 PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)"
 
 if [[ ! -d "${PROJDIR}/lib/qtil" ]]; then
-    git clone https://github.com/akiraohgaki/qtil.git -b release-0.3.0 --single-branch --depth=1 "${PROJDIR}/lib/qtil"
+    git clone https://github.com/akiraohgaki/qtil.git -b release-0.3.1 --single-branch --depth=1 "${PROJDIR}/lib/qtil"
 fi
 
 if [[ ! -d "${PROJDIR}/lib/AppImageUpdate" ]]; then