[gnome] Add new extensions
This commit is contained in:
@ -0,0 +1,36 @@
|
||||
export function isMatch(window, source) {
|
||||
if (source.icon) {
|
||||
const icon = source.icon.to_string();
|
||||
if (
|
||||
// Ghostty deb: icon matches GTK app id (com.mitchellh.ghostty)
|
||||
icon === window.gtkApplicationId ||
|
||||
// Slack Flatpak: icon matches sandboxed app id (com.slack.Slack)
|
||||
icon === window.get_sandboxed_app_id() ||
|
||||
// Firefox deb: icon matches window manager class (firefox)
|
||||
icon === window.wmClass) {
|
||||
return true;
|
||||
}
|
||||
// Snap apps have icon paths like /snap/firefox/6638/default256.png
|
||||
const snapAppName = icon?.match(/^\/snap\/([^/]+)\//)?.at(1);
|
||||
// Snap sandboxed ids use format appname_appname (firefox_firefox)
|
||||
if (snapAppName) {
|
||||
if (window.get_sandboxed_app_id() === `${snapAppName}_${snapAppName}`) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (source.title) {
|
||||
if (
|
||||
// Proton Mail Bridge: title matches window title
|
||||
source.title === window.title ||
|
||||
// Extract app name from composite title (isMatch.ts - junk-notification-cleaner - Cursor)
|
||||
source.title === window.title?.match(/^.+ (-|\|) (.+)$/)?.[2] ||
|
||||
// Thunderbird: title matches window manager class (thunderbird)
|
||||
source.title === window.wmClass ||
|
||||
// Discord snap: title duplicated matches sandboxed app id (discord_discord)
|
||||
`${source.title}_${source.title}` === window.get_sandboxed_app_id()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user