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

TheAndrey

Редактор учебника
1,071
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
Круто, но разве пользователь, использующий темную тему, не ставит ее один раз и навсегда? // Или тамперманки синхронизируется через аккаунт браузера? Это было бы удобно при переустановке системы итд.
 

TheAndrey

Редактор учебника
1,071
72
372
Круто, но разве пользователь, использующий темную тему, не ставит ее один раз и навсегда?
Нет. Мне удобно когда меняется туда-сюда. Тёмной не так удобно пользоваться днём, кода солнце светит в экран.
 
Сверху