Greasy Fork

Greasy Fork is available in English.

InvertWebPageColor

Toggle light/dark mode across all sites with Ctrl+I (double press).

当前为 2024-04-01 提交的版本,查看 最新版本

// ==UserScript==
// @name         InvertWebPageColor
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Toggle light/dark mode across all sites with Ctrl+I (double press).
// @author       Movelocity
// @match        *://*/*
// @grant        none
// @run-at       document-start
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';
    const filter_css = 'invert(95%) brightness(1.8) contrast(1)';
    // Function to toggle the inversion
    function toggleInversion() {
        const elem = document.documentElement;
        const inverted = localStorage.getItem('tm-inverted') === 'true';
        const filterValue = filter_css;

        if (inverted) {
            elem.style.filter = '';
            localStorage.setItem('tm-inverted', 'false');
        } else {
            elem.style.filter = filterValue;
            localStorage.setItem('tm-inverted', 'true');
        }
    }

    // Listen for the double key press
    let lastPressTime = 0;
    document.addEventListener('keydown', function(event) {
        const currentTime = new Date().getTime();
        if (event.ctrlKey && event.key === 'i') {
            if (currentTime - lastPressTime < 400) { // 400 ms for double press
                toggleInversion();
            }
            lastPressTime = currentTime;
        }
    });
    // Apply the inversion filter if it was previously set
    setTimeout(()=>{
      if (localStorage.getItem('tm-inverted') === 'true') {
        document.documentElement.style.filter = filter_css;
      }
    }, 200);
})();