您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Synchronizes Google Gemini's dark mode with your system's preference by directly modifying Local Storage.
当前为
- // ==UserScript==
- // @name Gemini Dark Mode Sync (LocalStorage Method)
- // @namespace http://www.jeffbyers.com
- // @namespace https://github.com/nullstreak
- // @match https://gemini.google.com/*
- // @grant none
- // @version 6.0
- // @author Jeff Byers <jeff@jeffbyers.com>, nullstreak
- // @license GPLv3 - http://www.gnu.org/licenses/gpl-3.0.txt
- // @copyright Copyright (C) 2024, by Jeff Byers <jeff@jeffbyers.com>
- // @icon https://www.gstatic.com/lamda/images/gemini_favicon_f069958c85030456e93de685481c559f160ea06b.png
- // @description Synchronizes Google Gemini's dark mode with your system's preference by directly modifying Local Storage.
- // ==/UserScript==
- (function () {
- 'use strict';
- const THEME_KEY = 'Bard-Color-Theme';
- const DARK_VALUE = 'Bard-Dark-Theme';
- // --- IMPORTANT: Adjust this if Light mode uses a different value ---
- // Common alternatives might be '' (empty string) or removing the key entirely.
- // If removing the key is needed, modify the toggle function accordingly.
- const LIGHT_VALUE = 'Bard-Light-Theme';
- // ---
- // Function to get the system's preferred color scheme
- const getPreferredScheme = () =>
- window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
- // Function to set the theme in Local Storage and reload if changed
- const setGeminiTheme = (enableDarkMode) => {
- const targetValue = enableDarkMode ? DARK_VALUE : LIGHT_VALUE;
- const currentValue = localStorage.getItem(THEME_KEY);
- if (currentValue !== targetValue) {
- console.log(`[Gemini Dark Mode Sync] System requires ${enableDarkMode ? 'dark' : 'light'} mode. Current is '${currentValue}', setting to '${targetValue}'. Reloading.`);
- localStorage.setItem(THEME_KEY, targetValue);
- // Reload the page to apply the theme change, as Gemini might only read this on load.
- location.reload();
- } else {
- // console.log(`[Gemini Dark Mode Sync] Theme already matches system preference (${enableDarkMode ? 'dark' : 'light'}). No change needed.`);
- }
- };
- // Initial setup on page load
- const init = () => {
- const preferredScheme = getPreferredScheme();
- console.log(`[Gemini Dark Mode Sync] Initial check: System preference is ${preferredScheme}.`);
- setGeminiTheme(preferredScheme === 'dark');
- };
- // Observe for changes in system preference
- const watchSystemPreference = () => {
- const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
- mediaQuery.addEventListener('change', (e) => {
- console.log(`[Gemini Dark Mode Sync] System preference changed. Dark mode enabled: ${e.matches}`);
- setGeminiTheme(e.matches);
- });
- console.log('[Gemini Dark Mode Sync] Watching for system theme changes.');
- };
- // Run initialization and start watching for changes
- init();
- watchSystemPreference();
- })();