diff --git a/src/utility/file.cpp b/src/utility/file.cpp
index 1ef3d41231e24c7e8167faa99d112652aa1ce4ea..854ed826369107f564e43f1eff838f9274a31b4c 100644
--- a/src/utility/file.cpp
+++ b/src/utility/file.cpp
@@ -58,6 +58,22 @@ QString File::xdgCacheHomePath()
     return path;
 }
 
+/**
+ * KDE System Administration/Environment Variables
+ * https://userbase.kde.org/KDE_System_Administration/Environment_Variables
+ */
+
+QString File::kdeDataHomePath()
+{
+    // KDE 4
+    QString path = QString::fromLocal8Bit(qgetenv("KDEHOME").constData());
+    if (path.isEmpty()) {
+        path = homePath() + "/.kde";
+    }
+    path += "/share";
+    return path;
+}
+
 QFileInfoList File::readDir(const QString &path)
 {
     QDir dir(path);
diff --git a/src/utility/file.h b/src/utility/file.h
index 24edd09295877980d9a6227dba2bfda5a30bc9e6..06235809e6892b18626ed40d43ca85bb45904c04 100644
--- a/src/utility/file.h
+++ b/src/utility/file.h
@@ -21,6 +21,7 @@ public:
     static QString xdgDataHomePath();
     static QString xdgConfigHomePath();
     static QString xdgCacheHomePath();
+    static QString kdeDataHomePath();
     static QFileInfoList readDir(const QString &path);
     static bool makeDir(const QString &path);
     static QString readText(const QString &path);