From 0b7c93e79945fea4af2857eff5d920bd92d1a8ea Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Mon, 20 Feb 2017 19:32:14 +0900
Subject: [PATCH] xdgurl to ocs-url

---
 README.md                                     |  6 +-
 xdgurl.pro => ocs-url.pro                     | 10 +--
 pkg/appimage/appimage-desktopintegration      |  2 +-
 pkg/arch/PKGBUILD                             |  6 +-
 pkg/build.sh                                  | 18 ++---
 pkg/fedora/{xdgurl.spec => ocs-url.spec}      |  6 +-
 pkg/snap/setup/gui/ocs-url.desktop            |  9 +++
 pkg/snap/setup/gui/xdgurl.desktop             |  9 ---
 pkg/snap/snapcraft.yaml                       | 10 +--
 pkg/ubuntu/debian/control                     |  4 +-
 pkg/ubuntu/debian/copyright                   |  4 +-
 pkg/ubuntu/debian/ocs-url.install             |  3 +
 pkg/ubuntu/debian/xdgurl.install              |  3 -
 src/app/app.pri                               |  4 +-
 src/app/configs/application.json              | 12 +--
 .../{xdgurlhandler.cpp => ocsurlhandler.cpp}  | 46 ++++++------
 .../{xdgurlhandler.h => ocsurlhandler.h}      |  8 +-
 src/app/main.cpp                              |  8 +-
 src/app/qml/main.qml                          | 18 ++---
 src/desktop/desktop.qrc                       |  2 +-
 src/desktop/ocs-url.desktop                   |  9 +++
 src/desktop/ocs-url.svg                       | 19 +++++
 src/desktop/xdgurl.desktop                    |  9 ---
 src/desktop/xdgurl.svg                        | 75 -------------------
 24 files changed, 122 insertions(+), 178 deletions(-)
 rename xdgurl.pro => ocs-url.pro (75%)
 rename pkg/fedora/{xdgurl.spec => ocs-url.spec} (92%)
 create mode 100644 pkg/snap/setup/gui/ocs-url.desktop
 delete mode 100644 pkg/snap/setup/gui/xdgurl.desktop
 create mode 100644 pkg/ubuntu/debian/ocs-url.install
 delete mode 100644 pkg/ubuntu/debian/xdgurl.install
 rename src/app/handlers/{xdgurlhandler.cpp => ocsurlhandler.cpp} (87%)
 rename src/app/handlers/{xdgurlhandler.h => ocsurlhandler.h} (86%)
 create mode 100644 src/desktop/ocs-url.desktop
 create mode 100644 src/desktop/ocs-url.svg
 delete mode 100644 src/desktop/xdgurl.desktop
 delete mode 100644 src/desktop/xdgurl.svg

diff --git a/README.md b/README.md
index f58d107..911caa8 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# xdgurl
+# ocs-url
 
 An install helper program for desktop stuff.
 
@@ -10,6 +10,6 @@ Download Linux package from:
 
 https://www.linux-apps.com/p/1136805/
 
-And please check the xdgurl wiki for more information.
+And please check the ocs-url wiki for more information.
 
-https://github.com/xdgurl/xdgurl/wiki
+https://github.com/ocs-url/ocs-url/wiki
diff --git a/xdgurl.pro b/ocs-url.pro
similarity index 75%
rename from xdgurl.pro
rename to ocs-url.pro
index a232669..1eae938 100644
--- a/xdgurl.pro
+++ b/ocs-url.pro
@@ -1,4 +1,4 @@
-TARGET = xdgurl
+TARGET = ocs-url
 
 TEMPLATE = app
 
@@ -10,18 +10,18 @@ RESOURCES += src/desktop/desktop.qrc
 
 DISTFILES += \
     README.md \
-    src/desktop/xdgurl.desktop \
+    src/desktop/ocs-url.desktop \
     pkg/build.sh \
     pkg/ubuntu/debian/changelog \
     pkg/ubuntu/debian/compat \
     pkg/ubuntu/debian/control \
     pkg/ubuntu/debian/copyright \
     pkg/ubuntu/debian/rules \
-    pkg/ubuntu/debian/xdgurl.install \
-    pkg/fedora/xdgurl.spec \
+    pkg/ubuntu/debian/ocs-url.install \
+    pkg/fedora/ocs-url.spec \
     pkg/arch/PKGBUILD \
     pkg/snap/snapcraft.yaml \
-    pkg/snap/setup/gui/xdgurl.desktop \
+    pkg/snap/setup/gui/ocs-url.desktop \
     pkg/appimage/appimage-desktopintegration
 
 include(deployment.pri)
diff --git a/pkg/appimage/appimage-desktopintegration b/pkg/appimage/appimage-desktopintegration
index bc48aea..7fe9f5e 100755
--- a/pkg/appimage/appimage-desktopintegration
+++ b/pkg/appimage/appimage-desktopintegration
@@ -25,7 +25,7 @@ VENDORPREFIX=appimagekit
 
 APPDIR="$(dirname "$(readlink -f "${THIS}")")"
 
-BIN="${APPDIR}/xdgurl"
+BIN="${APPDIR}/ocs-url"
 export PATH="${APPDIR}/usr/bin:$PATH"
 
 trap atexit EXIT
diff --git a/pkg/arch/PKGBUILD b/pkg/arch/PKGBUILD
index fbb56ae..e5157d4 100644
--- a/pkg/arch/PKGBUILD
+++ b/pkg/arch/PKGBUILD
@@ -1,14 +1,14 @@
 # Maintainer: Akira Ohgaki <akiraohgaki@gmail.com>
 
-pkgname='xdgurl'
+pkgname='ocs-url'
 pkgver='2.0.3'
 pkgrel='1'
 pkgdesc='An install helper program for desktop stuff.'
 arch=('i686' 'x86_64')
-url='https://github.com/xdgurl/xdgurl'
+url='https://github.com/ocs-url/ocs-url'
 license=('GPL3')
 depends=('qt5-base>=5.3.0' 'qt5-svg>=5.3.0' 'qt5-declarative>=5.3.0' 'qt5-quickcontrols>=5.3.0')
-#source=("https://github.com/xdgurl/xdgurl/archive/release-${pkgver}.tar.gz")
+#source=("https://github.com/ocs-url/ocs-url/archive/release-${pkgver}.tar.gz")
 source=("${pkgname}.tar.gz")
 md5sums=() #autofill using updpkgsums
 
diff --git a/pkg/build.sh b/pkg/build.sh
index c86a7cb..21a6720 100644
--- a/pkg/build.sh
+++ b/pkg/build.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-PKGNAME='xdgurl'
+PKGNAME='ocs-url'
 
 PROJDIR="$(cd "$(dirname "${0}")/../" && pwd)"
 
@@ -47,9 +47,9 @@ build_fedora() {
     mkdir "${BUILDDIR}/SOURCES"
     mkdir "${BUILDDIR}/SPECS"
     export_source "${BUILDDIR}/SOURCES"
-    cp "${PROJDIR}/pkg/fedora/xdgurl.spec" "${BUILDDIR}/SPECS"
+    cp "${PROJDIR}/pkg/fedora/ocs-url.spec" "${BUILDDIR}/SPECS"
 
-    rpmbuild --define "_topdir ${BUILDDIR}" -bb "${BUILDDIR}/SPECS/xdgurl.spec"
+    rpmbuild --define "_topdir ${BUILDDIR}" -bb "${BUILDDIR}/SPECS/ocs-url.spec"
 }
 
 build_arch() {
@@ -103,18 +103,18 @@ build_appimage() {
     #qmake
     /opt/qt57/bin/qmake
     make
-    strip ./xdgurl
+    strip ./ocs-url
 
     cd "${BUILDDIR}"
     mkdir -p "${BUILDDIR}/${PKGNAME}.AppDir/usr/bin"
-    install -m 755 -p "${BUILDDIR}/${PKGNAME}/xdgurl" "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl"
-    install -m 644 -p "${BUILDDIR}/${PKGNAME}/src/desktop/xdgurl.desktop" "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl.desktop"
-    install -m 644 -p "${BUILDDIR}/${PKGNAME}/src/desktop/xdgurl.svg" "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl.svg"
+    install -m 755 -p "${BUILDDIR}/${PKGNAME}/ocs-url" "${BUILDDIR}/${PKGNAME}.AppDir/ocs-url"
+    install -m 644 -p "${BUILDDIR}/${PKGNAME}/src/desktop/ocs-url.desktop" "${BUILDDIR}/${PKGNAME}.AppDir/ocs-url.desktop"
+    install -m 644 -p "${BUILDDIR}/${PKGNAME}/src/desktop/ocs-url.svg" "${BUILDDIR}/${PKGNAME}.AppDir/ocs-url.svg"
     install -m 755 -p /usr/bin/update-desktop-database "${BUILDDIR}/${PKGNAME}.AppDir/usr/bin/update-desktop-database"
     install -m 755 -p /usr/bin/desktop-file-validate "${BUILDDIR}/${PKGNAME}.AppDir/usr/bin/desktop-file-validate"
     install -m 755 -p /usr/bin/desktop-file-install "${BUILDDIR}/${PKGNAME}.AppDir/usr/bin/desktop-file-install"
-    linuxdeployqt "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl" -qmldir="${BUILDDIR}/${PKGNAME}/src/app/qml" -verbose=2 -bundle-non-qt-libs # https://github.com/probonopd/linuxdeployqt/issues/25
-    linuxdeployqt "${BUILDDIR}/${PKGNAME}.AppDir/xdgurl" -qmldir="${BUILDDIR}/${PKGNAME}/src/app/qml" -verbose=2 -bundle-non-qt-libs # twice because of #25
+    linuxdeployqt "${BUILDDIR}/${PKGNAME}.AppDir/ocs-url" -qmldir="${BUILDDIR}/${PKGNAME}/src/app/qml" -verbose=2 -bundle-non-qt-libs # https://github.com/probonopd/linuxdeployqt/issues/25
+    linuxdeployqt "${BUILDDIR}/${PKGNAME}.AppDir/ocs-url" -qmldir="${BUILDDIR}/${PKGNAME}/src/app/qml" -verbose=2 -bundle-non-qt-libs # twice because of #25
     rm "${BUILDDIR}/${PKGNAME}.AppDir/AppRun"
     install -m 755 -p "${BUILDDIR}/${PKGNAME}/pkg/appimage/appimage-desktopintegration" "${BUILDDIR}/${PKGNAME}.AppDir/AppRun"
     linuxdeployqt --appimage-extract
diff --git a/pkg/fedora/xdgurl.spec b/pkg/fedora/ocs-url.spec
similarity index 92%
rename from pkg/fedora/xdgurl.spec
rename to pkg/fedora/ocs-url.spec
index 544b375..aeae496 100644
--- a/pkg/fedora/xdgurl.spec
+++ b/pkg/fedora/ocs-url.spec
@@ -1,12 +1,12 @@
 Summary: An install helper program for desktop stuff
-Name: xdgurl
+Name: ocs-url
 Version: 2.0.3
 Release: 1%{?dist}
 License: GPLv3+
 Group: Applications/Internet
-URL: https://github.com/xdgurl/xdgurl
+URL: https://github.com/ocs-url/ocs-url
 
-#Source0: https://github.com/xdgurl/xdgurl/archive/release-%{version}.tar.gz
+#Source0: https://github.com/ocs-url/ocs-url/archive/release-%{version}.tar.gz
 Source0: %{name}.tar.gz
 
 Requires: qt5-qtbase >= 5.3.0, qt5-qtbase-gui >= 5.3.0, qt5-qtsvg >= 5.3.0, qt5-qtdeclarative >= 5.3.0, qt5-qtquickcontrols >= 5.3.0
diff --git a/pkg/snap/setup/gui/ocs-url.desktop b/pkg/snap/setup/gui/ocs-url.desktop
new file mode 100644
index 0000000..c3e2453
--- /dev/null
+++ b/pkg/snap/setup/gui/ocs-url.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=ocs-url
+Exec=ocs-url.ocs-url %u
+Icon=${SNAP}/usr/share/icons/hicolor/scalable/apps/ocs-url.svg
+Type=Application
+Terminal=false
+NoDisplay=true
+Categories=Network;Utility;
+MimeType=x-scheme-handler/ocs;x-scheme-handler/ocss;
diff --git a/pkg/snap/setup/gui/xdgurl.desktop b/pkg/snap/setup/gui/xdgurl.desktop
deleted file mode 100644
index d541072..0000000
--- a/pkg/snap/setup/gui/xdgurl.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=xdgurl
-Exec=xdgurl.xdgurl %u
-Icon=${SNAP}/usr/share/icons/hicolor/scalable/apps/xdgurl.svg
-Type=Application
-Terminal=false
-NoDisplay=true
-Categories=Network;Utility;
-MimeType=x-scheme-handler/xdg;x-scheme-handler/xdgs;
diff --git a/pkg/snap/snapcraft.yaml b/pkg/snap/snapcraft.yaml
index e4c6b00..89828dc 100644
--- a/pkg/snap/snapcraft.yaml
+++ b/pkg/snap/snapcraft.yaml
@@ -1,4 +1,4 @@
-name: xdgurl
+name: ocs-url
 version: '2.0.3'
 summary: An install helper program for desktop stuff
 description: |
@@ -7,10 +7,10 @@ description: |
 grade: devel
 confinement: strict
 
-#icon: ../../src/desktop/xdgurl.svg
+#icon: ../../src/desktop/ocs-url.svg
 
 parts:
-  xdgurl:
+  ocs-url:
     plugin: qmake
     source: ../../
     qt-version: qt5
@@ -30,8 +30,8 @@ parts:
       - desktop-qt5
 
 apps:
-  xdgurl:
-    command: usr/bin/xdgurl
+  ocs-url:
+    command: usr/bin/ocs-url
     plugs:
       - home
       - network
diff --git a/pkg/ubuntu/debian/control b/pkg/ubuntu/debian/control
index efd11f9..5980ab3 100644
--- a/pkg/ubuntu/debian/control
+++ b/pkg/ubuntu/debian/control
@@ -1,11 +1,11 @@
-Source: xdgurl
+Source: ocs-url
 Section: web
 Priority: optional
 Maintainer: Akira Ohgaki <akiraohgaki@gmail.com>
 Build-Depends: build-essential (>= 11), qt5-default (>= 5.3.0), libqt5svg5-dev (>= 5.3.0), qtdeclarative5-dev (>= 5.3.0), devscripts (>= 2.14), debhelper (>= 9), fakeroot (>= 1.20)
 Standards-Version: 3.9.4
 
-Package: xdgurl
+Package: ocs-url
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, libqt5svg5 (>= 5.3.0), qml-module-qtquick2 (>= 5.3.0) | qtdeclarative5-qtquick2-plugin (>= 5.3.0), qml-module-qtquick-window2 (>= 5.3.0) | qtdeclarative5-window-plugin (>= 5.3.0), qml-module-qtquick-controls (>= 5.3.0) | qtdeclarative5-controls-plugin (>= 5.3.0), qml-module-qtquick-dialogs (>= 5.3.0) | qtdeclarative5-dialogs-plugin (>= 5.3.0)
 Description: An install helper program for desktop stuff
diff --git a/pkg/ubuntu/debian/copyright b/pkg/ubuntu/debian/copyright
index 68078a2..f8bcc61 100644
--- a/pkg/ubuntu/debian/copyright
+++ b/pkg/ubuntu/debian/copyright
@@ -1,7 +1,7 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: xdgurl
+Upstream-Name: ocs-url
 Upstream-Contact: Akira Ohgaki <akiraohgaki@gmail.com>
-Source: https://github.com/xdgurl/xdgurl
+Source: https://github.com/ocs-url/ocs-url
 
 Files: *
 Copyright: 2016-2017, Akira Ohgaki
diff --git a/pkg/ubuntu/debian/ocs-url.install b/pkg/ubuntu/debian/ocs-url.install
new file mode 100644
index 0000000..e5d62bf
--- /dev/null
+++ b/pkg/ubuntu/debian/ocs-url.install
@@ -0,0 +1,3 @@
+usr/bin/ocs-url
+usr/share/applications/ocs-url.desktop
+usr/share/icons/hicolor/scalable/apps/ocs-url.svg
diff --git a/pkg/ubuntu/debian/xdgurl.install b/pkg/ubuntu/debian/xdgurl.install
deleted file mode 100644
index 44123c6..0000000
--- a/pkg/ubuntu/debian/xdgurl.install
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/xdgurl
-usr/share/applications/xdgurl.desktop
-usr/share/icons/hicolor/scalable/apps/xdgurl.svg
diff --git a/src/app/app.pri b/src/app/app.pri
index b37beda..6a82d4b 100644
--- a/src/app/app.pri
+++ b/src/app/app.pri
@@ -6,11 +6,11 @@ QT += \
     svg
 
 HEADERS += \
-    $${PWD}/handlers/xdgurlhandler.h
+    $${PWD}/handlers/ocsurlhandler.h
 
 SOURCES += \
     $${PWD}/main.cpp \
-    $${PWD}/handlers/xdgurlhandler.cpp
+    $${PWD}/handlers/ocsurlhandler.cpp
 
 RESOURCES += \
     $${PWD}/configs/configs.qrc \
diff --git a/src/app/configs/application.json b/src/app/configs/application.json
index 1419f6b..f640501 100644
--- a/src/app/configs/application.json
+++ b/src/app/configs/application.json
@@ -1,13 +1,13 @@
 {
-    "id": "xdgurl",
-    "name": "xdgurl",
+    "id": "ocs-url",
+    "name": "ocs-url",
     "version": "2.0.3",
-    "organization": "xdgurl",
-    "domain": "com.xdgurl.xdgurl",
-    "icon": ":/desktop/xdgurl.svg",
+    "organization": "ocs-url",
+    "domain": "com.ocs-url.ocs-url",
+    "icon": ":/desktop/ocs-url.svg",
     "description": "An install helper program for desktop stuff.",
     "license": "GPL-3+",
     "author": "Akira Ohgaki",
     "contact": "akiraohgaki@gmail.com",
-    "homepage": "https://github.com/xdgurl/xdgurl"
+    "homepage": "https://github.com/ocs-url/ocs-url"
 }
diff --git a/src/app/handlers/xdgurlhandler.cpp b/src/app/handlers/ocsurlhandler.cpp
similarity index 87%
rename from src/app/handlers/xdgurlhandler.cpp
rename to src/app/handlers/ocsurlhandler.cpp
index 91533ca..f3f1aae 100644
--- a/src/app/handlers/xdgurlhandler.cpp
+++ b/src/app/handlers/ocsurlhandler.cpp
@@ -1,4 +1,4 @@
-#include "xdgurlhandler.h"
+#include "ocsurlhandler.h"
 
 #include <QUrlQuery>
 #include <QDesktopServices>
@@ -8,45 +8,45 @@
 #include "qtlib_networkresource.h"
 #include "qtlib_package.h"
 
-XdgUrlHandler::XdgUrlHandler(const QString &xdgUrl, const qtlib::Config &config, QObject *parent)
-    : QObject(parent), xdgUrl_(xdgUrl), config_(config)
+OcsUrlHandler::OcsUrlHandler(const QString &ocsUrl, const qtlib::Config &config, QObject *parent)
+    : QObject(parent), ocsUrl_(ocsUrl), config_(config)
 {
     parse();
     loadDestinations();
 }
 
-QString XdgUrlHandler::xdgUrl() const
+QString OcsUrlHandler::ocsUrl() const
 {
-    return xdgUrl_;
+    return ocsUrl_;
 }
 
-QJsonObject XdgUrlHandler::metadata() const
+QJsonObject OcsUrlHandler::metadata() const
 {
     return metadata_;
 }
 
-void XdgUrlHandler::process()
+void OcsUrlHandler::process()
 {
-    // xdgs scheme is a reserved name, so the process of xdgs
-    // is the same process of the xdg scheme currently.
+    // ocss scheme is a reserved name, so the process of ocss
+    // is the same process of the ocs scheme currently.
 
     if (!isValid()) {
         QJsonObject result;
         result["status"] = QString("error_validation");
-        result["message"] = QString("Invalid XDG-URL " + xdgUrl_);
+        result["message"] = QString("Invalid OCS-URL " + ocsUrl_);
         emit finishedWithError(result);
         return;
     }
 
     QString url = metadata_["url"].toString();
     qtlib::NetworkResource *resource = new qtlib::NetworkResource(url, QUrl(url), true, this);
-    connect(resource, &qtlib::NetworkResource::downloadProgress, this, &XdgUrlHandler::downloadProgress);
-    connect(resource, &qtlib::NetworkResource::finished, this, &XdgUrlHandler::networkResourceFinished);
+    connect(resource, &qtlib::NetworkResource::downloadProgress, this, &OcsUrlHandler::downloadProgress);
+    connect(resource, &qtlib::NetworkResource::finished, this, &OcsUrlHandler::networkResourceFinished);
     resource->get();
     emit started();
 }
 
-bool XdgUrlHandler::isValid()
+bool OcsUrlHandler::isValid()
 {
     QString scheme = metadata_["scheme"].toString();
     QString command = metadata_["command"].toString();
@@ -54,7 +54,7 @@ bool XdgUrlHandler::isValid()
     QString type = metadata_["type"].toString();
     QString filename = metadata_["filename"].toString();
 
-    if ((scheme == "xdg" || scheme == "xdgs")
+    if ((scheme == "ocs" || scheme == "ocss")
             && (command == "download" || command == "install")
             && QUrl(url).isValid()
             && destinations_.contains(type)
@@ -64,13 +64,13 @@ bool XdgUrlHandler::isValid()
     return false;
 }
 
-void XdgUrlHandler::openDestination()
+void OcsUrlHandler::openDestination()
 {
     QString type = metadata_["type"].toString();
     QDesktopServices::openUrl(QUrl("file://" + destinations_[type].toString()));
 }
 
-void XdgUrlHandler::networkResourceFinished(qtlib::NetworkResource *resource)
+void OcsUrlHandler::networkResourceFinished(qtlib::NetworkResource *resource)
 {
     if (!resource->isFinishedWithNoError()) {
         QJsonObject result;
@@ -89,12 +89,12 @@ void XdgUrlHandler::networkResourceFinished(qtlib::NetworkResource *resource)
     }
 }
 
-void XdgUrlHandler::parse()
+void OcsUrlHandler::parse()
 {
-    QUrl url(xdgUrl_);
+    QUrl url(ocsUrl_);
     QUrlQuery query(url);
 
-    metadata_["scheme"] = QString("xdg");
+    metadata_["scheme"] = QString("ocs");
     metadata_["command"] = QString("download");
     metadata_["url"] = QString("");
     metadata_["type"] = QString("downloads");
@@ -125,7 +125,7 @@ void XdgUrlHandler::parse()
     }
 }
 
-void XdgUrlHandler::loadDestinations()
+void OcsUrlHandler::loadDestinations()
 {
     QJsonObject configDestinations = config_.get("destinations");
     QJsonObject configDestinationsAlias = config_.get("destinations_alias");
@@ -142,7 +142,7 @@ void XdgUrlHandler::loadDestinations()
     }
 }
 
-QString XdgUrlHandler::convertPathString(const QString &path)
+QString OcsUrlHandler::convertPathString(const QString &path)
 {
     QString newPath = path;
 
@@ -159,7 +159,7 @@ QString XdgUrlHandler::convertPathString(const QString &path)
     return newPath;
 }
 
-void XdgUrlHandler::saveDownloadedFile(qtlib::NetworkResource *resource)
+void OcsUrlHandler::saveDownloadedFile(qtlib::NetworkResource *resource)
 {
     QJsonObject result;
 
@@ -183,7 +183,7 @@ void XdgUrlHandler::saveDownloadedFile(qtlib::NetworkResource *resource)
     resource->deleteLater();
 }
 
-void XdgUrlHandler::installDownloadedFile(qtlib::NetworkResource *resource)
+void OcsUrlHandler::installDownloadedFile(qtlib::NetworkResource *resource)
 {
     QJsonObject result;
 
diff --git a/src/app/handlers/xdgurlhandler.h b/src/app/handlers/ocsurlhandler.h
similarity index 86%
rename from src/app/handlers/xdgurlhandler.h
rename to src/app/handlers/ocsurlhandler.h
index 6abc30b..ba56c29 100644
--- a/src/app/handlers/xdgurlhandler.h
+++ b/src/app/handlers/ocsurlhandler.h
@@ -9,12 +9,12 @@ namespace qtlib {
 class NetworkResource;
 }
 
-class XdgUrlHandler : public QObject
+class OcsUrlHandler : public QObject
 {
     Q_OBJECT
 
 public:
-    explicit XdgUrlHandler(const QString &xdgUrl, const qtlib::Config &config, QObject *parent = 0);
+    explicit OcsUrlHandler(const QString &ocsUrl, const qtlib::Config &config, QObject *parent = 0);
 
 signals:
     void started();
@@ -23,7 +23,7 @@ signals:
     void downloadProgress(QString id, qint64 bytesReceived, qint64 bytesTotal);
 
 public slots:
-    QString xdgUrl() const;
+    QString ocsUrl() const;
     QJsonObject metadata() const;
 
     void process();
@@ -40,7 +40,7 @@ private:
     void saveDownloadedFile(qtlib::NetworkResource *resource);
     void installDownloadedFile(qtlib::NetworkResource *resource);
 
-    QString xdgUrl_;
+    QString ocsUrl_;
     qtlib::Config config_;
     QJsonObject metadata_;
     QJsonObject destinations_;
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 7f3aebc..3d60d07 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -12,7 +12,7 @@
 
 #include "qtlib_config.h"
 
-#include "handlers/xdgurlhandler.h"
+#include "handlers/ocsurlhandler.h"
 
 int main(int argc, char *argv[])
 {
@@ -36,7 +36,7 @@ int main(int argc, char *argv[])
     clParser.setApplicationDescription(configApplication["description"].toString());
     clParser.addHelpOption();
     clParser.addVersionOption();
-    clParser.addPositionalArgument("xdgurl", "XDG-URL");
+    clParser.addPositionalArgument("ocsurl", "OCS-URL");
     clParser.process(app);
 
     QStringList args = clParser.positionalArguments();
@@ -45,12 +45,12 @@ int main(int argc, char *argv[])
         clParser.showHelp(1);
     }
 
-    QString xdgUrl = args.at(0);
+    QString ocsUrl = args.at(0);
 
     // Setup QML
     QQmlApplicationEngine qmlAppEngine;
     QQmlContext *qmlContext = qmlAppEngine.rootContext();
-    qmlContext->setContextProperty("xdgUrlHandler", new XdgUrlHandler(xdgUrl, config, &qmlAppEngine));
+    qmlContext->setContextProperty("ocsUrlHandler", new OcsUrlHandler(ocsUrl, config, &qmlAppEngine));
     qmlAppEngine.load(QUrl("qrc:/qml/main.qml"));
 
     return app.exec();
diff --git a/src/app/qml/main.qml b/src/app/qml/main.qml
index 385d45f..4e367f7 100644
--- a/src/app/qml/main.qml
+++ b/src/app/qml/main.qml
@@ -23,7 +23,7 @@ Window {
         informativeText: ""
         detailedText: ""
         standardButtons: StandardButton.Ok | StandardButton.Cancel
-        onAccepted: xdgUrlHandler.process()
+        onAccepted: ocsUrlHandler.process()
         onRejected: Qt.quit()
     }
 
@@ -36,7 +36,7 @@ Window {
         detailedText: ""
         standardButtons: StandardButton.Open | StandardButton.Close
         onAccepted: {
-            xdgUrlHandler.openDestination();
+            ocsUrlHandler.openDestination();
             Qt.quit();
         }
         onRejected: Qt.quit()
@@ -100,7 +100,7 @@ Window {
     }
 
     Component.onCompleted: {
-        var metadata = xdgUrlHandler.metadata();
+        var metadata = ocsUrlHandler.metadata();
         var primaryMessages = {
             "success_download": qsTr("Download successfull"),
             "success_install": qsTr("Installation successfull"),
@@ -110,11 +110,11 @@ Window {
             "error_install": qsTr("Installation failed")
         };
 
-        xdgUrlHandler.started.connect(function() {
+        ocsUrlHandler.started.connect(function() {
             progressDialog.open();
         });
 
-        xdgUrlHandler.finishedWithSuccess.connect(function(result) {
+        ocsUrlHandler.finishedWithSuccess.connect(function(result) {
             progressDialog.close();
             infoDialog.text = primaryMessages[result.status];
             infoDialog.informativeText = metadata.filename;
@@ -122,7 +122,7 @@ Window {
             infoDialog.open();
         });
 
-        xdgUrlHandler.finishedWithError.connect(function(result) {
+        ocsUrlHandler.finishedWithError.connect(function(result) {
             progressDialog.close();
             errorDialog.text = primaryMessages[result.status];
             errorDialog.informativeText = metadata.filename;
@@ -130,7 +130,7 @@ Window {
             errorDialog.open();
         });
 
-        xdgUrlHandler.downloadProgress.connect(function(id, bytesReceived, bytesTotal) {
+        ocsUrlHandler.downloadProgress.connect(function(id, bytesReceived, bytesTotal) {
             progressDialog.primaryLabel.text = qsTr("Downloading");
             progressDialog.informativeLabel.text = metadata.filename;
             progressDialog.progressBar.value = bytesReceived / bytesTotal;
@@ -138,7 +138,7 @@ Window {
                     + " / " + Utility.convertByteToHumanReadable(bytesTotal)
         });
 
-        if (xdgUrlHandler.isValid()) {
+        if (ocsUrlHandler.isValid()) {
             if (metadata.command === "download") {
                 confirmDialog.text = qsTr("Do you want to download?");
             }
@@ -153,7 +153,7 @@ Window {
         }
         else {
             errorDialog.text = qsTr("Validation error");
-            errorDialog.detailedText = qsTr("Invalid XDG-URL") + " " + xdgUrlHandler.xdgUrl();
+            errorDialog.detailedText = qsTr("Invalid OCS-URL") + " " + ocsUrlHandler.ocsUrl();
             errorDialog.open();
         }
     }
diff --git a/src/desktop/desktop.qrc b/src/desktop/desktop.qrc
index 2e04750..61a8e10 100644
--- a/src/desktop/desktop.qrc
+++ b/src/desktop/desktop.qrc
@@ -1,5 +1,5 @@
 <RCC>
     <qresource prefix="/desktop">
-        <file>xdgurl.svg</file>
+        <file>ocs-url.svg</file>
     </qresource>
 </RCC>
diff --git a/src/desktop/ocs-url.desktop b/src/desktop/ocs-url.desktop
new file mode 100644
index 0000000..7e1c16d
--- /dev/null
+++ b/src/desktop/ocs-url.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=ocs-url
+Exec=ocs-url %u
+Icon=ocs-url
+Type=Application
+Terminal=false
+NoDisplay=true
+Categories=Network;Utility;
+MimeType=x-scheme-handler/ocs;x-scheme-handler/ocss;
diff --git a/src/desktop/ocs-url.svg b/src/desktop/ocs-url.svg
new file mode 100644
index 0000000..befab89
--- /dev/null
+++ b/src/desktop/ocs-url.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="1000" height="1000" viewBox="0, 0, 1000, 1000">
+  <g id="icon">
+    <g id="background">
+      <path d="M975,500 C975,762.335 762.335,975 500,975 C237.665,975 25,762.335 25,500 C25,237.665 237.665,25 500,25 C762.335,25 975,237.665 975,500 z" fill="#19A2FF" id="background-2"/>
+      <path d="M950,500 C950,748.528 748.528,950 500,950 C251.472,950 50,748.528 50,500 C50,251.472 251.472,50 500,50 C748.528,50 950,251.472 950,500 z" fill="#53B2FF" id="background-1"/>
+    </g>
+    <g id="ocs-url">
+      <path d="M902.992,380.107 L924.992,380.107 L830.653,670.28 L808.653,670.28 z" fill="#FFFFFF" id="slash-2"/>
+      <path d="M852.992,380.107 L874.992,380.107 L780.653,670.28 L758.653,670.28 z" fill="#FFFFFF" id="slash-1"/>
+      <path d="M739.533,556.848 L775.533,556.848 L775.533,592.848 L739.533,592.848 z" fill="#FFFFFF" id="colon-2"/>
+      <path d="M739.505,457.85 L775.505,457.85 L775.505,493.85 L739.505,493.85 z" fill="#FFFFFF" id="colon-1"/>
+      <path d="M619.548,389.93 Q581.46,389.931 559.59,399.494 Q537.719,409.057 526.825,425.772 Q515.931,442.487 515.931,461.281 Q515.931,489.888 537.22,508.349 Q558.342,526.811 607.906,537.954 Q638.175,544.607 646.491,552.091 Q654.807,559.576 654.807,569.055 Q654.807,579.035 646.076,586.602 Q637.343,594.17 621.211,594.169 Q599.589,594.17 587.947,579.367 Q580.795,570.22 578.467,552.756 L506.784,557.247 Q509.943,594.17 533.893,618.12 Q557.843,642.07 620.047,642.069 Q655.472,642.07 678.757,631.84 Q702.041,621.612 715.014,601.82 Q727.987,582.029 727.987,558.577 Q727.987,538.619 718.258,522.486 Q708.528,506.354 687.156,495.459 Q665.784,484.566 616.388,473.921 Q596.429,469.764 591.108,464.94 Q585.618,460.283 585.619,454.462 Q585.618,446.479 592.272,440.907 Q598.924,435.336 612.063,435.335 Q628.03,435.336 637.094,442.819 Q646.158,450.304 648.986,466.77 L720.005,462.611 Q715.347,424.691 690.815,407.31 Q666.283,389.931 619.548,389.93 z" fill="#FFFFFF" id="s"/>
+      <path d="M449.767,389.931 Q424.743,389.931 401.937,399.275 Q379.13,408.62 361.867,425.249 Q344.604,441.879 334.31,464.844 Q324.015,487.809 324.015,515.366 Q324.015,542.925 334.468,566.206 Q344.921,589.488 362.184,606.434 Q379.447,623.381 402.095,632.724 Q424.743,642.069 449.451,642.069 Q461.487,642.069 473.841,639.693 Q486.194,637.318 500.448,632.249 L506.784,630.032 L506.784,556.544 Q483.027,581.886 453.252,581.885 Q439.631,581.886 427.911,576.817 Q416.191,571.75 407.48,562.88 Q398.769,554.011 393.86,541.974 Q388.95,529.938 388.95,515.683 Q388.95,501.746 393.86,489.709 Q398.769,477.673 407.322,468.961 Q415.874,460.251 427.753,455.182 Q439.631,450.115 453.568,450.114 Q485.244,450.115 506.784,476.405 L506.784,402.284 Q491.579,395.95 477.8,392.94 Q464.021,389.931 449.767,389.931 z" fill="#FFFFFF" id="c"/>
+      <path d="M223.997,389.93 Q252.822,389.932 277.212,399.591 Q301.602,409.254 319.183,426.357 Q336.762,443.463 346.582,466.427 Q356.401,489.393 356.402,515.999 Q356.401,542.608 346.582,565.572 Q336.762,588.538 319.183,605.641 Q301.602,622.748 277.212,632.407 Q252.822,642.07 223.997,642.068 Q194.855,642.07 170.624,632.407 Q146.392,622.748 128.97,605.641 Q111.548,588.538 101.729,565.572 Q91.91,542.608 91.91,515.999 Q91.91,489.393 101.729,466.427 Q111.548,443.463 128.97,426.357 Q146.392,409.254 170.624,399.591 Q194.855,389.932 223.997,389.93 z M223.997,450.114 Q210.377,450.115 198.182,455.024 Q185.986,459.935 176.801,468.803 Q167.614,477.673 162.23,489.709 Q156.845,501.747 156.845,515.999 Q156.845,530.255 162.23,542.29 Q167.614,554.328 176.801,563.196 Q185.986,572.067 198.182,576.975 Q210.377,581.886 223.997,581.885 Q237.618,581.886 249.813,576.975 Q262.008,572.067 271.352,563.196 Q280.697,554.328 286.082,542.29 Q291.466,530.255 291.466,515.999 Q291.466,501.747 286.082,489.709 Q280.697,477.673 271.352,468.803 Q262.008,459.935 249.813,455.024 Q237.618,450.115 223.997,450.114 z" fill="#FFFFFF" id="o"/>
+    </g>
+  </g>
+</svg>
diff --git a/src/desktop/xdgurl.desktop b/src/desktop/xdgurl.desktop
deleted file mode 100644
index aba57f1..0000000
--- a/src/desktop/xdgurl.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=xdgurl
-Exec=xdgurl %u
-Icon=xdgurl
-Type=Application
-Terminal=false
-NoDisplay=true
-Categories=Network;Utility;
-MimeType=x-scheme-handler/xdg;x-scheme-handler/xdgs;
diff --git a/src/desktop/xdgurl.svg b/src/desktop/xdgurl.svg
deleted file mode 100644
index a55a8e4..0000000
--- a/src/desktop/xdgurl.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   id="svg2"
-   viewBox="0 0 1000 1000"
-   height="1000"
-   width="1000">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(0,-52.362161)"
-     id="layer1">
-    <circle
-       r="475"
-       cy="552.36218"
-       cx="500"
-       id="path4138"
-       style="fill:#19a2ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <circle
-       r="450"
-       cy="552.36218"
-       cx="500"
-       id="path4138-0"
-       style="fill:#53b2ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-    <g
-       transform="translate(0,20)"
-       id="g4205">
-      <path
-         id="path4145"
-         style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:medium;line-height:125%;font-family:Futura;-inkscape-font-specification:'Futura Medium';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="m 192.87313,533.47911 -74.36008,-101.11803 56.93857,0 46.10326,64.24502 46.95309,-64.24502 58.63824,0 -76.48467,101.11803 88.59474,119.21524 -56.93858,0 -60.76282,-82.34221 -62.25002,82.34221 -58.42577,0 91.99404,-119.21524 z" />
-      <path
-         id="path4147"
-         style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:medium;line-height:125%;font-family:Futura;-inkscape-font-specification:'Futura Medium';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="m 472.62967,312.47491 48.01537,0 0,340.84056 -48.01537,0 0,-21.67066 c -18.83789,18.41297 -40.15445,27.61946 -63.94968,27.61946 -28.32765,0 -51.83961,-10.33959 -70.53586,-31.01878 -18.55461,-21.1041 -27.83192,-47.44882 -27.83192,-79.03415 0,-30.87715 9.27731,-56.65531 27.83192,-77.3345 18.41298,-20.82082 41.57084,-31.23123 69.47357,-31.23123 24.22015,0 45.8908,9.91468 65.01197,29.74403 z M 359.17742,549.21134 c 0,19.82935 5.31143,35.97612 15.9343,48.44029 10.90615,12.60581 24.64506,18.90871 41.21674,18.90871 17.70478,0 32.01024,-6.09045 42.91639,-18.27134 10.90615,-12.60581 16.35922,-28.61093 16.35922,-48.01537 0,-19.40445 -5.45307,-35.40957 -16.35922,-48.01538 -10.90615,-12.32253 -25.06997,-18.48379 -42.49148,-18.48379 -16.43004,0 -30.16895,6.23208 -41.21673,18.69625 -10.90615,12.60581 -16.35922,28.18602 -16.35922,46.74063 z" />
-      <path
-         id="path4149"
-         style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:medium;line-height:125%;font-family:Futura;-inkscape-font-specification:'Futura Medium';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="m 722.24998,648.95295 c 0,9.77304 -0.3541,18.34215 -1.06229,25.70734 -0.56655,7.50683 -1.41638,14.09301 -2.54949,19.75854 -3.39932,15.58021 -10.05632,28.96502 -19.97099,40.15445 -18.69625,21.52901 -44.4036,32.29352 -77.12204,32.29352 -27.61947,0 -50.35241,-7.43601 -68.19883,-22.30802 -18.41297,-15.29693 -29.03584,-36.47186 -31.86861,-63.52477 l 48.01537,0 c 1.8413,10.19796 4.88652,18.05889 9.13567,23.58278 9.91468,12.88908 24.36178,19.33362 43.34131,19.33362 34.98465,0 52.47698,-21.4582 52.47698,-64.37459 l 0,-28.89421 c -18.97953,19.40444 -40.86264,29.10666 -65.64934,29.10666 -28.18601,0 -51.27305,-10.19795 -69.26111,-30.59386 -18.1297,-20.67919 -27.19455,-46.52817 -27.19455,-77.54695 0,-30.16895 8.42748,-55.80548 25.28243,-76.90959 18.1297,-22.37884 42.06657,-33.56826 71.81061,-33.56826 26.06144,0 47.73209,9.70222 65.01196,29.10666 l 0,-27.37031 47.80292,0 z m -45.8908,-98.15532 c 0,-20.11264 -5.38225,-36.18859 -16.14676,-48.22784 C 649.30627,490.24726 635.3549,484.086 618.35831,484.086 c -18.1297,0 -32.43517,6.72782 -42.9164,20.18345 -9.48976,12.03925 -14.23464,27.61946 -14.23464,46.74063 0,18.83789 4.74488,34.27647 14.23464,46.31572 10.33959,13.17236 24.64506,19.75854 42.9164,19.75854 18.27133,0 32.71844,-6.657 43.34131,-19.971 9.77304,-12.03925 14.65956,-27.47782 14.65956,-46.31571 z" />
-      <path
-         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 739.50519,490.21255 36,0 0,36 -36,0 z"
-         id="rect4156" />
-      <path
-         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 739.53345,589.21057 36,0 0,36 -36,0 z"
-         id="rect4156-9" />
-      <path
-         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 852.99238,412.46896 22,0 -94.33913,290.17369 -22,0 z"
-         id="rect4156-5" />
-      <path
-         style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 902.99238,412.46896 22,0 -94.33913,290.17369 -22,0 z"
-         id="rect4156-5-3" />
-    </g>
-  </g>
-</svg>
-- 
GitLab