您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically sets light mode to boring theme and disables boring theme for dark mode
// ==UserScript== // @name T3Chat Auto Boring Theme // @namespace https://wearifulpoet.com // @version 0.1.0 // @description Automatically sets light mode to boring theme and disables boring theme for dark mode // @match https://t3.chat/* // @run-at document-idle // @grant none // @license MIT // ==/UserScript== (() => { 'use strict'; const THEME_KEY = 'theme'; const THEME = { LIGHT: 'light', DARK: 'dark', BORING_LIGHT: 'boring-light', BORING_DARK: 'boring-dark', BORING_SYSTEM: 'boring-system' }; const getCurrentTheme = () => { try { return localStorage.getItem(THEME_KEY) || 'system'; } catch { return null; } }; const setTheme = (theme) => { try { localStorage.setItem(THEME_KEY, theme); window.dispatchEvent( new StorageEvent('storage', { key: THEME_KEY, newValue: theme, storageArea: localStorage }) ); return true; } catch { return false; } }; const applyBoringLogic = () => { const current = getCurrentTheme(); if (!current) return; let next = null; if (current === THEME.LIGHT) { next = THEME.BORING_LIGHT; } else if (current === THEME.BORING_DARK || current === THEME.BORING_SYSTEM) { next = THEME.DARK; } if (next && next !== current && setTheme(next)) { setTimeout(() => window.location.reload(), 100); } }; const observeThemeChanges = () => { window.addEventListener('storage', (e) => { if (e.key === THEME_KEY && e.newValue) { setTimeout(applyBoringLogic, 50); } }); const observer = new MutationObserver(() => { setTimeout(applyBoringLogic, 50); }); observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] }); return observer; }; const init = () => { applyBoringLogic(); observeThemeChanges(); }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();