mirror of
https://github.com/danbulant/dots-hyprland
synced 2026-05-19 04:08:48 +00:00
74 lines
No EOL
1.9 KiB
JavaScript
74 lines
No EOL
1.9 KiB
JavaScript
.pragma library
|
|
|
|
const substitutions = {
|
|
"code-url-handler": "visual-studio-code",
|
|
"Code": "visual-studio-code",
|
|
"GitHub Desktop": "github-desktop",
|
|
"Minecraft* 1.20.1": "minecraft",
|
|
"gnome-tweaks": "org.gnome.tweaks",
|
|
"pavucontrol-qt": "pavucontrol",
|
|
"wps": "wps-office2019-kprometheus",
|
|
"wpsoffice": "wps-office2019-kprometheus",
|
|
"footclient": "foot",
|
|
"zen": "zen-browser",
|
|
"": "image-missing"
|
|
}
|
|
const regexSubstitutions = [
|
|
{
|
|
"regex": "/^steam_app_(\\d+)$/",
|
|
"replace": "steam_icon_$1"
|
|
}
|
|
]
|
|
|
|
|
|
function iconExists(iconName) {
|
|
return false; // TODO: Make this work without Gtk
|
|
}
|
|
|
|
function substitute(str) {
|
|
// Normal substitutions
|
|
if (substitutions[str])
|
|
return substitutions[str];
|
|
|
|
// Regex substitutions
|
|
for (let i = 0; i < regexSubstitutions.length; i++) {
|
|
const substitution = regexSubstitutions[i];
|
|
const replacedName = str.replace(
|
|
substitution.regex,
|
|
substitution.replace,
|
|
);
|
|
if (replacedName != str) return replacedName;
|
|
}
|
|
|
|
// Guess: convert to kebab case
|
|
if (!iconExists(str)) str = str.toLowerCase().replace(/\s+/g, "-");
|
|
|
|
// Original string
|
|
return str;
|
|
}
|
|
|
|
function noKnowledgeIconGuess(str) {
|
|
if (!str) return "image-missing";
|
|
|
|
// Normal substitutions
|
|
if (substitutions[str])
|
|
return substitutions[str];
|
|
|
|
// Regex substitutions
|
|
for (let i = 0; i < regexSubstitutions.length; i++) {
|
|
const substitution = regexSubstitutions[i];
|
|
const replacedName = str.replace(
|
|
substitution.regex,
|
|
substitution.replace,
|
|
);
|
|
if (replacedName != str) return replacedName;
|
|
}
|
|
|
|
// Guess: convert to kebab case if it's not reverse domain name notation
|
|
if (!str.includes('.')) {
|
|
str = str.toLowerCase().replace(/\s+/g, "-");
|
|
}
|
|
|
|
// Original string
|
|
return str;
|
|
} |