1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-29 16:02:51 -05:00

feat: configurable app id substitutions (#1317)

* feat: add configurable app ID substitutions setting

* feat: add live icon updates when substitutions change

* fix: cursor not showing on headerActions in non-collapsible cards

* fix: address PR review feedback

- add tags for search index
- remove hardcoded height from text fields
This commit is contained in:
shalevc1098
2026-01-11 04:00:15 +02:00
committed by GitHub
parent bb2234d328
commit 510ea5d2e4
11 changed files with 294 additions and 47 deletions

View File

@@ -46,22 +46,20 @@ Singleton {
}
function moddedAppId(appId: string): string {
if (appId === "Spotify")
return "spotify";
if (appId === "beepertexts")
return "beeper";
if (appId === "home assistant desktop")
return "homeassistant-desktop";
if (appId.includes("com.transmissionbt.transmission")) {
if (DesktopEntries.heuristicLookup("transmission-gtk"))
return "transmission-gtk";
if (DesktopEntries.heuristicLookup("transmission"))
return "transmission";
return "transmission-gtk";
const subs = SettingsData.appIdSubstitutions || [];
for (let i = 0; i < subs.length; i++) {
const sub = subs[i];
if (sub.type === "exact" && appId === sub.pattern) {
return sub.replacement;
} else if (sub.type === "contains" && appId.includes(sub.pattern)) {
return sub.replacement;
} else if (sub.type === "regex") {
const match = appId.match(new RegExp(sub.pattern));
if (match) {
return sub.replacement.replace(/\$(\d+)/g, (_, n) => match[n] || "");
}
}
}
const steamMatch = appId.match(/^steam_app_(\d+)$/);
if (steamMatch)
return `steam_icon_${steamMatch[1]}`;
return appId;
}
@@ -71,7 +69,7 @@ Singleton {
}
const moddedId = moddedAppId(appId);
if (moddedId.startsWith("steam_icon_")) {
if (moddedId !== appId) {
return Quickshell.iconPath(moddedId, true);
}