diff --git a/app/app.pri b/app/app.pri
index 6bdffab4892be94624a7a0484d41735d5c2519f8..19a4a61a69d085a58068d6adb6323affd3b6f5e4 100644
--- a/app/app.pri
+++ b/app/app.pri
@@ -11,7 +11,9 @@ HEADERS += \
     $${PWD}/src/handlers/confighandler.h \
     $${PWD}/src/handlers/systemhandler.h \
     $${PWD}/src/handlers/ocsapihandler.h \
-    $${PWD}/src/handlers/itemhandler.h
+    $${PWD}/src/handlers/itemhandler.h \
+    $${PWD}/src/handlers/appimagehandler.h \
+    $${PWD}/src/handlers/desktopthemehandler.h
 
 SOURCES += \
     $${PWD}/src/main.cpp \
@@ -19,7 +21,9 @@ SOURCES += \
     $${PWD}/src/handlers/confighandler.cpp \
     $${PWD}/src/handlers/systemhandler.cpp \
     $${PWD}/src/handlers/ocsapihandler.cpp \
-    $${PWD}/src/handlers/itemhandler.cpp
+    $${PWD}/src/handlers/itemhandler.cpp \
+    $${PWD}/src/handlers/appimagehandler.cpp \
+    $${PWD}/src/handlers/desktopthemehandler.cpp
 
 RESOURCES += $${PWD}/configs/configs.qrc
 
@@ -29,8 +33,6 @@ unix:!ios:!android {
     QT += dbus
 
     HEADERS += \
-        $${PWD}/src/handlers/appimagehandler.h \
-        $${PWD}/src/handlers/desktopthemehandler.h \
         $${PWD}/src/desktopthemes/kdetheme.h \
         $${PWD}/src/desktopthemes/gnometheme.h \
         $${PWD}/src/desktopthemes/xfcetheme.h \
@@ -38,8 +40,6 @@ unix:!ios:!android {
         $${PWD}/src/desktopthemes/matetheme.h
 
     SOURCES += \
-        $${PWD}/src/handlers/appimagehandler.cpp \
-        $${PWD}/src/handlers/desktopthemehandler.cpp \
         $${PWD}/src/desktopthemes/kdetheme.cpp \
         $${PWD}/src/desktopthemes/gnometheme.cpp \
         $${PWD}/src/desktopthemes/xfcetheme.cpp \
diff --git a/app/src/handlers/appimagehandler.cpp b/app/src/handlers/appimagehandler.cpp
index 920610e2ad710c457a05b266498759b3106f8ef0..3f60d9a0676b262e7facd2e076fa1b46d289d5c9 100644
--- a/app/src/handlers/appimagehandler.cpp
+++ b/app/src/handlers/appimagehandler.cpp
@@ -15,9 +15,7 @@ bool AppImageHandler::isUpdateAvailable(const QString &path) const
 #ifdef QTLIB_UNIX
     appimage::update::Updater appImageUpdater(path.toStdString());
     bool updateAvailable;
-    if (appImageUpdater.checkForChanges(updateAvailable)) {
-        return true;
-    }
+    return appImageUpdater.checkForChanges(updateAvailable);
 #endif
     return false;
 }
diff --git a/app/src/websockets/websocketserver.cpp b/app/src/websockets/websocketserver.cpp
index 45c4b60b1f3e1ee1601144e2d23d36336839f5fa..ae229f8dc00d0d9f0b12524dec53d1ce7cc1f801 100644
--- a/app/src/websockets/websocketserver.cpp
+++ b/app/src/websockets/websocketserver.cpp
@@ -8,9 +8,10 @@
 
 #include "handlers/confighandler.h"
 #include "handlers/systemhandler.h"
-#include "handlers/desktopthemehandler.h"
 #include "handlers/ocsapihandler.h"
 #include "handlers/itemhandler.h"
+#include "handlers/appimagehandler.h"
+#include "handlers/desktopthemehandler.h"
 
 WebSocketServer::WebSocketServer(ConfigHandler *configHandler, const QString &serverName, quint16 serverPort, QObject *parent)
     : QObject(parent), configHandler_(configHandler), serverName_(serverName), serverPort_(serverPort)
@@ -22,9 +23,10 @@ WebSocketServer::WebSocketServer(ConfigHandler *configHandler, const QString &se
 
     configHandler_->setParent(this);
     systemHandler_ = new SystemHandler(this);
-    desktopThemeHandler_ = new DesktopThemeHandler(this);
     ocsApiHandler_ = new OcsApiHandler(configHandler_, this);
     itemHandler_ = new ItemHandler(configHandler_, this);
+    appImageHandler_ = new AppImageHandler(configHandler_, this);
+    desktopThemeHandler_ = new DesktopThemeHandler(this);
 
     connect(itemHandler_, &ItemHandler::metadataSetChanged, this, &WebSocketServer::itemMetadataSetChanged);
     connect(itemHandler_, &ItemHandler::downloadStarted, this, &WebSocketServer::itemDownloadStarted);
@@ -278,20 +280,6 @@ void WebSocketServer::receiveMessage(const QString &id, const QString &func, con
     else if (func == "SystemHandler::openUrl") {
         resultData.append(systemHandler_->openUrl(data.at(0).toString()));
     }
-    // DesktopThemeHandler
-    else if (func == "DesktopThemeHandler::desktopEnvironment") {
-        resultData.append(desktopThemeHandler_->desktopEnvironment());
-    }
-    else if (func == "DesktopThemeHandler::isApplicableType") {
-        resultData.append(desktopThemeHandler_->isApplicableType(data.at(0).toString()));
-    }
-    else if (func == "DesktopThemeHandler::applyTheme") {
-#ifdef QTLIB_UNIX
-        resultData.append(desktopThemeHandler_->applyTheme(data.at(0).toString(), data.at(1).toString()));
-#else
-        resultData.append(false);
-#endif
-    }
     // OcsApiHandler
     else if (func == "OcsApiHandler::addProviders") {
         resultData.append(ocsApiHandler_->addProviders(data.at(0).toString()));
@@ -327,6 +315,31 @@ void WebSocketServer::receiveMessage(const QString &id, const QString &func, con
     else if (func == "ItemHandler::uninstall") {
         itemHandler_->uninstall(data.at(0).toString());
     }
+    // AppImageHandler
+    else if (func == "AppImageHandler::isUpdateAvailable") {
+        resultData.append(appImageHandler_->isUpdateAvailable(data.at(0).toString()));
+    }
+    else if (func == "AppImageHandler::updateAppImage") {
+#ifdef QTLIB_UNIX
+        resultData.append(appImageHandler_->updateAppImage(data.at(0).toString()));
+#else
+        resultData.append(false);
+#endif
+    }
+    // DesktopThemeHandler
+    else if (func == "DesktopThemeHandler::desktopEnvironment") {
+        resultData.append(desktopThemeHandler_->desktopEnvironment());
+    }
+    else if (func == "DesktopThemeHandler::isApplicableType") {
+        resultData.append(desktopThemeHandler_->isApplicableType(data.at(0).toString()));
+    }
+    else if (func == "DesktopThemeHandler::applyTheme") {
+#ifdef QTLIB_UNIX
+        resultData.append(desktopThemeHandler_->applyTheme(data.at(0).toString(), data.at(1).toString()));
+#else
+        resultData.append(false);
+#endif
+    }
     // Not supported
     else {
         return;
diff --git a/app/src/websockets/websocketserver.h b/app/src/websockets/websocketserver.h
index 66edab50cecefde77a54e4d3da791fd7b814c31e..595fb428d6d2c6a707b51af71e3326514986d7e2 100644
--- a/app/src/websockets/websocketserver.h
+++ b/app/src/websockets/websocketserver.h
@@ -10,9 +10,10 @@ class QWebSocket;
 
 class ConfigHandler;
 class SystemHandler;
-class DesktopThemeHandler;
 class OcsApiHandler;
 class ItemHandler;
+class AppImageHandler;
+class DesktopThemeHandler;
 
 class WebSocketServer : public QObject
 {
@@ -56,9 +57,10 @@ private:
 
     ConfigHandler *configHandler_;
     SystemHandler *systemHandler_;
-    DesktopThemeHandler *desktopThemeHandler_;
     OcsApiHandler *ocsApiHandler_;
     ItemHandler *itemHandler_;
+    AppImageHandler *appImageHandler_;
+    DesktopThemeHandler *desktopThemeHandler_;
 
     QString serverName_;
     quint16 serverPort_;