From c577d9e2bf701f722727284fd72ed990d6b04880 Mon Sep 17 00:00:00 2001
From: Xander Frangos <33106561+xanderfrangos@users.noreply.github.com>
Date: Sun, 6 Oct 2024 14:19:28 -0400
Subject: [PATCH] Implement media status check for idle detection
---
src/components/SettingsWindow.jsx | 1 +
src/electron.js | 16 ++++++++++++++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/components/SettingsWindow.jsx b/src/components/SettingsWindow.jsx
index 44ef9dee..4b1c1952 100644
--- a/src/components/SettingsWindow.jsx
+++ b/src/components/SettingsWindow.jsx
@@ -1434,6 +1434,7 @@ export default class SettingsWindow extends PureComponent {
+
diff --git a/src/electron.js b/src/electron.js
index 002ca5a2..fc97d2df 100644
--- a/src/electron.js
+++ b/src/electron.js
@@ -453,7 +453,8 @@ const defaultSettings = {
detectIdleTimeEnabled: false,
detectIdleTimeSeconds: 0,
detectIdleTimeMinutes: 5,
- detectIdleCheckFullscreen: true,
+ detectIdleCheckFullscreen: false,
+ detectIdleMedia: false,
idleRestoreSeconds: 0,
wakeRestoreSeconds: 0,
hardwareRestoreSeconds: 0,
@@ -3891,11 +3892,22 @@ function isFocusedWindowFullscreen() {
}
}
+function isMediaPlaying() {
+ try {
+ if(!settings.detectIdleMedia) return false;
+ const mediaPlaying = MediaStatus.getPlaybackStatus()
+ return (mediaPlaying === "playing" ? true : false)
+ } catch(e) {
+ console.log(e)
+ return false
+ }
+}
+
function idleCheckShort() {
try {
const idleTime = powerMonitor.getSystemIdleTime()
- if (!userIdleDimmed && settings.detectIdleTimeEnabled && !settings.disableAutoApply && idleTime >= getIdleSettingValue() && !isFocusedWindowFullscreen()) {
+ if (!userIdleDimmed && settings.detectIdleTimeEnabled && !settings.disableAutoApply && idleTime >= getIdleSettingValue() && !isFocusedWindowFullscreen() && !isMediaPlaying()) {
console.log(`\x1b[36mUser idle. Dimming displays.\x1b[0m`)
userIdleDimmed = true
idleMonitorBlock?.release?.()