From 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 Mon Sep 17 00:00:00 2001 From: AlexanderCurl Date: Sat, 18 Apr 2026 17:46:06 +0100 Subject: Replaced file structures for themes in the correct format --- .../quickshell/Services/DesktopService.qml | 94 ---------------------- 1 file changed, 94 deletions(-) delete mode 100644 raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/DesktopService.qml (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/DesktopService.qml') diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/DesktopService.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/DesktopService.qml deleted file mode 100644 index c9913e9..0000000 --- a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/DesktopService.qml +++ /dev/null @@ -1,94 +0,0 @@ -pragma Singleton - -pragma ComponentBehavior: Bound - -import QtQuick -import Quickshell -import Quickshell.Io - -Singleton { - id: root - - property var _cache: ({}) - - function resolveIconPath(moddedAppId) { - if (!moddedAppId) - return ""; - - if (_cache[moddedAppId] !== undefined) - return _cache[moddedAppId]; - - const result = (function() { - // 1. Try heuristic lookup (standard) - const entry = DesktopEntries.heuristicLookup(moddedAppId); - let icon = Quickshell.iconPath(entry?.icon, true); - if (icon && icon !== "") - return icon; - - // 2. Try the appId itself as an icon name - icon = Quickshell.iconPath(moddedAppId, true); - if (icon && icon !== "") - return icon; - - // 3. Try variations of the appId (lowercase, last part) - const appIds = [moddedAppId.toLowerCase()]; - const lastPart = moddedAppId.split('.').pop(); - if (lastPart && lastPart !== moddedAppId) { - appIds.push(lastPart); - appIds.push(lastPart.toLowerCase()); - } - - for (const id of appIds) { - icon = Quickshell.iconPath(id, true); - if (icon && icon !== "") - return icon; - } - - // 4. Deep search in all desktop entries (if the above fail) - // This is slow-ish but only happens once for failed icons - const strippedId = moddedAppId.replace(/-bin$/, "").toLowerCase(); - const allEntries = DesktopEntries.applications.values; - for (let i = 0; i < allEntries.length; i++) { - const e = allEntries[i]; - const eId = (e.id || "").toLowerCase(); - const eName = (e.name || "").toLowerCase(); - const eExec = (e.execString || "").toLowerCase(); - - if (eId.includes(strippedId) || eName.includes(strippedId) || eExec.includes(strippedId)) { - icon = Quickshell.iconPath(e.icon, true); - if (icon && icon !== "") - return icon; - } - } - - // 5. Nix/Guix specific store check (as a last resort) - for (const appId of appIds) { - let execPath = entry?.execString?.replace(/\/bin.*/, ""); - if (!execPath) - continue; - - if (execPath.startsWith("/nix/store/") || execPath.startsWith("/gnu/store/")) { - const basePath = execPath; - const sizes = ["256x256", "128x128", "64x64", "48x48", "32x32", "24x24", "16x16"]; - - let iconPath = `${basePath}/share/icons/hicolor/scalable/apps/${appId}.svg`; - icon = Quickshell.iconPath(iconPath, true); - if (icon && icon !== "") - return icon; - - for (const size of sizes) { - iconPath = `${basePath}/share/icons/hicolor/${size}/apps/${appId}.png`; - icon = Quickshell.iconPath(iconPath, true); - if (icon && icon !== "") - return icon; - } - } - } - - return ""; - })(); - - _cache[moddedAppId] = result; - return result; - } -} -- cgit v1.3