summaryrefslogtreecommitdiff
path: root/raveos-theme/gnome/theme-data/extensions/installed/ShutdownTimer@deminder/modules/session-mode-aware.js
diff options
context:
space:
mode:
authornippy <you@example.com>2026-04-18 13:49:56 +0200
committernippy <you@example.com>2026-04-18 13:49:56 +0200
commit5d94c0a7d44a2255b81815a52a7056a94a39842d (patch)
tree759bdea9645c6a62f9e1e4c001f7d81cccd120d2 /raveos-theme/gnome/theme-data/extensions/installed/ShutdownTimer@deminder/modules/session-mode-aware.js
parente79cdf210b267f21a186255ce1a4d50029439d54 (diff)
downloadRaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.tar.gz
RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.zip
update Raveos themes
Diffstat (limited to 'raveos-theme/gnome/theme-data/extensions/installed/ShutdownTimer@deminder/modules/session-mode-aware.js')
-rw-r--r--raveos-theme/gnome/theme-data/extensions/installed/ShutdownTimer@deminder/modules/session-mode-aware.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/raveos-theme/gnome/theme-data/extensions/installed/ShutdownTimer@deminder/modules/session-mode-aware.js b/raveos-theme/gnome/theme-data/extensions/installed/ShutdownTimer@deminder/modules/session-mode-aware.js
new file mode 100644
index 0000000..cb6e562
--- /dev/null
+++ b/raveos-theme/gnome/theme-data/extensions/installed/ShutdownTimer@deminder/modules/session-mode-aware.js
@@ -0,0 +1,41 @@
+// SPDX-FileCopyrightText: 2023 Deminder <tremminder@gmail.com>
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+import * as Main from 'resource:///org/gnome/shell/ui/main.js';
+
+export function currentSessionMode() {
+ return Main.sessionMode.currentMode;
+}
+
+/**
+ * Check if we want to show foreground activity
+ */
+export function foregroundActive() {
+ // ubuntu22.04 uses 'ubuntu' as 'user' sessionMode
+ return Main.sessionMode.currentMode !== 'unlock-dialog';
+}
+
+/**
+ * Observe foreground activity changes
+ *
+ * @param {object} obj bind obj as observer
+ * @param {Function} callback called upon change
+ */
+export function observeForegroundActive(obj, callback) {
+ if (!obj._sessionModeSignalId) {
+ obj._sessionModeSignalId = Main.sessionMode.connect('updated', () => {
+ callback(foregroundActive());
+ });
+ }
+ callback(foregroundActive());
+}
+
+/**
+ * Unobserve session mode
+ */
+export function unobserveForegroundActive(obj) {
+ if (obj._sessionModeSignalId) {
+ Main.sessionMode.disconnect(obj._sessionModeSignalId);
+ delete obj._sessionModeSignalId;
+ }
+}