Make sure websites always think you are focused on them
// ==UserScript==
// @name OmniFocus
// @namespace https://greasyfork.org/en/users/198860-zyenith
// @author zyenith
// @version 0.0.1
// @description Make sure websites always think you are focused on them
// @match *://*/*
// @run-at document-start
// @grant unsafeWindow
// @antifeature Tracking, for compatibility info
// @require https://greasyfork.org/scripts/410512-sci-js-from-ksw2-center/code/scijs%20(from%20ksw2-center).js
// ==/UserScript==
const { document } = unsafeWindow;
unsafeWindow.onblur = null;
unsafeWindow.blurred = false;
unsafeWindow.document.hasFocus = function() {
return true;
};
unsafeWindow.document.onvisibilitychange = undefined;
const _arr = ["visibilitychange", "webkitvisibilitychange", "blur", "mozvisibilitychange", "msvisibilitychange"];
for (const eventName of _arr) {
unsafeWindow.document.addEventListener(eventName, (event) => {
event.stopImmediatePropagation();
}, true);
}
Object.defineProperties(unsafeWindow.document, {
hidden: {
value: false
},
mozHidden: {
value: false
},
msHidden: {
value: false
},
webkitHidden: {
value: false
},
visibilityState: {
get() {
return "visible";
}
}
});