Twitter Auto Dark Mode

Auto dark mode for Twitter -- or X

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name             Twitter Auto Dark Mode
// @version          1.11
// @author           Yukiteru
// @license          MIT
// @grant            none
// @match            *://x.com/*
// @description      Auto dark mode for Twitter -- or X
// @namespace https://greatest.deepsurf.us/users/91424
// ==/UserScript==

function toggleTheme(isDarkMode) {
  // 0 stands for light mode, 1 for dark blue mode, 2 for dark mode
  const mode = isDarkMode ? 1 : 0;
  document.cookie = `night_mode=${mode};path=/;domain=.x.com;secure`;
}

const darkMedia = window.matchMedia('(prefers-color-scheme: dark)');
toggleTheme(darkMedia.matches); // toggle theme when page loaded

darkMedia.addEventListener('change', e => {
  toggleTheme(e.matches); // toggle theme when system theme is changed
});