您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
浏览器设置为黑夜主题时, 将自适应调节亮度. 初次使用需要进入右键菜单进行个性化设置.
当前为
// ==UserScript== // @name AdaptDark_黑夜模式亮度调节器 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 浏览器设置为黑夜主题时, 将自适应调节亮度. 初次使用需要进入右键菜单进行个性化设置. // @author bode135 // @include * // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_setValue // @grant GM_getValue // @license MIT // ==/UserScript== (function() { 'use strict'; // --- 创建遮罩 var mask = document.createElement("div"); mask.setAttribute('style', 'position:fixed;top:0;left:0;outline:5000px solid;z-index:99999;'); document.body.appendChild(mask); function get_brightness_by_input(input) { if (input == "" || input == null) return null; var x = Number(input); if (isNaN(x) || x > 100 || x < 0) { return NaN; } if (x > 1) { x = x / 100; } return x; } function cover(input) { /* input其实是遮罩层的透明度, 用1减去后变为下层的亮度 */ var x = get_brightness_by_input(input); if (x == null) return 0; if (isNaN(x)) { alert("请输入一个[0~1]之间的小数作为屏幕亮度!"); return 0; } // 从暗度变为亮度 var brightness = 1 - x; mask.style.outlineColor = 'rgba(0,0,0,' + brightness + ')'; return 1; } // --- 计算本网站的初始化亮度值 var default_init_brightness = 0.66; var init_brightness = default_init_brightness; // 加载用户偏好(个性化网站亮度) let hostname = window.location.hostname; var key = "my_custom_brightness_dc"; var my_custom_brightness_dc = GM_getValue(key); if (!my_custom_brightness_dc) my_custom_brightness_dc = {}; // 判断是否设置了所有网站的默认亮度 var null_ls = [null, undefined, ""]; var default_brightness = GM_getValue("default_brightness"); if (!null_ls.includes(default_brightness)) { init_brightness = default_brightness; } else { default_brightness = init_brightness; } if(my_custom_brightness_dc.hasOwnProperty(hostname)) { var custom_brightness = my_custom_brightness_dc[hostname]; if (!null_ls.includes(custom_brightness)) { init_brightness = custom_brightness; } } // console.log("--- my_custom_brightness_dc:", my_custom_brightness_dc); // --- 根据主题来调节亮度 function change_brightness_by_theme() { if (window.matchMedia('(prefers-color-scheme)').media === 'not all') { console.log('Browser doesn\'t support dark mode'); } else { const isDarkTheme = window.matchMedia("(prefers-color-scheme: dark)"); // 是深色 if (isDarkTheme.matches) { // 是深色 // 主题设置为深色。 cover(init_brightness); } else { // 不是深色 // 主题设置为浅色。 cover(1); } } } change_brightness_by_theme(); let listeners={ dark:(mediaQueryList )=>{ if(mediaQueryList.matches){ change_brightness_by_theme(); } }, light:(mediaQueryList)=>{ if(mediaQueryList.matches){ change_brightness_by_theme(); } } } window.matchMedia('(prefers-color-scheme: dark)').addListener(listeners.dark) window.matchMedia('(prefers-color-scheme: light)').addListener(listeners.light) // --- 自定义右键菜单选项 var menu_context_0 = "设置所有网站默认亮度"; var menu_context_1 = "设置当前网站亮度"; var menu_context_2 = "取消当前网站亮度"; var menu_context_9 = "初始化设置"; GM_registerMenuCommand (menu_context_0, function(){ var input = prompt("请输入您想要的默认亮度(0~1之间的小数)", 0.66); var ret = cover(input); if (ret == 1) { var brightness = get_brightness_by_input(input); GM_setValue("default_brightness", brightness); } }, "h"); GM_registerMenuCommand (menu_context_1, function(){ var input = prompt("请输入当前网站的亮度(0~1之间的小数)", 0.66); var ret = cover(input); if (ret == 1) { my_custom_brightness_dc[""+hostname+""] = input; GM_setValue(key, my_custom_brightness_dc); } }, "h"); GM_registerMenuCommand (menu_context_2, function(){ cover(default_brightness); if(my_custom_brightness_dc.hasOwnProperty(hostname)) { delete my_custom_brightness_dc[""+hostname+""]; GM_setValue(key, my_custom_brightness_dc); } }, "h"); GM_registerMenuCommand (menu_context_9, function(){ cover(default_init_brightness); GM_setValue("default_brightness", ""); GM_setValue(key, ""); }, "h"); })();