35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import AstalApps from "gi://AstalApps";
|
|
|
|
const astalApps: AstalApps.Apps = new AstalApps.Apps();
|
|
let appsList: Array<AstalApps.Application> = astalApps.get_list();
|
|
|
|
export function getApps(): Array<AstalApps.Application> {
|
|
return appsList;
|
|
}
|
|
|
|
export function updateApps(): void {
|
|
astalApps.reload();
|
|
appsList = astalApps.get_list();
|
|
}
|
|
|
|
export function getAstalApps(): AstalApps.Apps {
|
|
return astalApps;
|
|
}
|
|
|
|
export function getAppsByName(appName: string): (Array<AstalApps.Application>|undefined) {
|
|
let found: Array<AstalApps.Application> = [];
|
|
|
|
getApps().map((app: AstalApps.Application) => {
|
|
if(app.get_name().trim().toLowerCase() === appName.trim().toLowerCase()
|
|
|| (app?.wmClass && app.wmClass.trim().toLowerCase() === appName.trim().toLowerCase()))
|
|
found.push(app);
|
|
});
|
|
|
|
return (found.length > 0 ? found : undefined);
|
|
}
|
|
|
|
export function getAppIcon(appName: string): (string|undefined) {
|
|
const found: (Array<AstalApps.Application>|undefined) = getAppsByName(appName);
|
|
return found ? found[0]?.iconName : undefined;
|
|
}
|