Grayscale Toggle with Persistence

Toggles grayscale on the webpage with Alt+G and remembers the state

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Grayscale Toggle with Persistence
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Toggles grayscale on the webpage with Alt+G and remembers the state
// @author       Drewby123
// @match        *://*/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    const STORAGE_KEY = 'grayscaleToggleState';

    // Retrieve and apply the saved grayscale state on page load
    let isGrayscale = localStorage.getItem(STORAGE_KEY) === 'true';
    document.body.style.filter = isGrayscale ? 'grayscale(100%)' : 'none';

    // Listen for the Alt+G key combination to toggle grayscale
    document.addEventListener('keydown', (e) => {
        if (e.altKey && e.key.toLowerCase() === 'g') {
            isGrayscale = !isGrayscale;
            document.body.style.filter = isGrayscale ? 'grayscale(100%)' : 'none';

            // Save the current state to localStorage
            localStorage.setItem(STORAGE_KEY, isGrayscale);
        }
    });
})();