Скрипт автоматической смены темы форума

1,074
72
372
Наверняка не все пользователи знают о наличии тёмной темы на форуме. Включить её можно в настройках профиля. Чтобы это не делать вручную, написал небольшой userscript, который делает это за вас, автоматически. Светлая/тёмная тема переключается исходя из предпочтений браузера. Во всех современных браузерах поддержка этого стандарта присутствует.

Для установки скрипта нужно установить расширение Tampermonkey (или аналог). Затем в меню расширения выбираем «Создать новый скрипт», в открывшийся редактор вставляем следующий код и сохраняем.

JavaScript:
// ==UserScript==
// @name         MC Modding automatic dark/light mode
// @namespace    mcmodding.ru
// @version      1.0
// @description  Автоматическое переключение между светлой и тёмной темой форума.
// @author       TheAndrey
// @match        https://forum.mcmodding.ru/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=forum.mcmodding.ru
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    const selectedStyle = parseInt(window.sessionStorage.getItem('selected_style') ?? 0);
    const wantsScheme = scheme => window.matchMedia('(prefers-color-scheme: ' + scheme + ')').matches === true;

    let setStyle = 0; // Default
    if (wantsScheme('dark')) {
        setStyle = 10; // Dark Style
    } else if (wantsScheme('light')) {
        setStyle = 9; // Light Style
    }

    if (selectedStyle !== setStyle) {
        console.info('Setting style style to: ' + setStyle);

        fetch(`/misc/style?style_id=${setStyle}&t=${window.XF.config.csrf}`).then(function () {
            window.sessionStorage.setItem('selected_style', setStyle);
            console.info('Done!');
        });
    }

})();

На этом всё!

Примечание: Поскольку смена темы осуществляется средствами форума, это изменение отразится на всех ваших устройствах, где выполнен вход в аккаунт.
 
Последнее редактирование:
1,200
37
237
Круто, но разве пользователь, использующий темную тему, не ставит ее один раз и навсегда? // Или тамперманки синхронизируется через аккаунт браузера? Это было бы удобно при переустановке системы итд.
 
1,074
72
372
Круто, но разве пользователь, использующий темную тему, не ставит ее один раз и навсегда?
Нет. Мне удобно когда меняется туда-сюда. Тёмной не так удобно пользоваться днём, кода солнце светит в экран.
 
Сверху