summaryrefslogtreecommitdiff
path: root/src/utils/system.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/system.ts')
-rw-r--r--src/utils/system.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/utils/system.ts b/src/utils/system.ts
new file mode 100644
index 0000000..5d77908
--- /dev/null
+++ b/src/utils/system.ts
@@ -0,0 +1,21 @@
+import { execAsync, GLib } from "astal";
+import type AstalApps from "gi://AstalApps";
+import { osIcons } from "./icons";
+
+export const launch = (app: AstalApps.Application) => {
+ execAsync(["uwsm", "app", "--", app.entry]).catch(() => {
+ app.frequency--; // Decrement frequency cause launch also increments it
+ app.launch();
+ });
+ app.frequency++;
+};
+
+export const osId = GLib.get_os_info("ID") ?? "unknown";
+export const osIdLike = GLib.get_os_info("ID_LIKE");
+export const osIcon = String.fromCodePoint(
+ (() => {
+ if (osIcons.hasOwnProperty(osId)) return osIcons[osId];
+ if (osIdLike) for (const id of osIdLike.split(" ")) if (osIcons.hasOwnProperty(id)) return osIcons[id];
+ return 0xf31a;
+ })()
+);