きっかけは ChatGPT だった。。
Cosense でもダークテーマを使いたいと思って、以下の UserScript を利用していました。
document.documentElement.dataset.projectTheme = "default"
const observer = new MutationObserver(() => {
document.documentElement.dataset.projectTheme = "default-dark"
});
observer.observe(document.documentElement, {attribute: true, subtree: true, childList: true}) このスクリプトでは常にダークテーマが適用されてしまうため、時間帯によって切り替えられるようにしたいと考えました。
以下のような Userscript を使ってダークテーマを利用しています。
document.documentElement.dataset.projectTheme = "default"
const observer = new MutationObserver(() => {
document.documentElement.dataset.projectTheme = "default-dark"
});
observer.observe(document.documentElement, {attribute: true, subtree: true, childList: true})
これを時間帯ごとに変化させたいのですがどうすればいいですか? この質問をしたところ、ChatGPT から以下のスクリプトを使うよう提案されました。
// ==UserScript==
// @name Time-based Theme Switcher
// @match *://*/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// テーマを適用する関数
function applyThemeByTime() {
const hour = new Date().getHours();
const isDarkTime = (hour >= 18 || hour < 6); // 18時〜翌6時はダーク
document.documentElement.dataset.projectTheme = isDarkTime ? 'default-dark' : 'default';
}
// 最初にテーマを適用
applyThemeByTime();
// DOMが変更されたときに再適用(念のため)
const observer = new MutationObserver(() => {
applyThemeByTime();
});
observer.observe(document.documentElement, {
attributes: true,
childList: true,
subtree: true
});
// 1分ごとに再評価(時をまたいでも切り替わるように)
setInterval(applyThemeByTime, 60 * 1000);
})(); あまり JavaScript に詳しくないため無邪気にこれを設定すると、急に Cosense ページから応答がなくなりました。。。
元に戻そうにもそもそもアクセスができない時間が続き、、途方に暮れていました。
対処法
💡
他ユーザーの Cosense のページから、自身の User Settings に移動して User Script を無効化しました
もちろん自分のスペースだけに適用した User Script なので、他ユーザーのページは問題なく閲覧できます。
そのためブラウザで Cosense の適当なページを開いて、 にたどり着けました。一安心☺️
どなたかダークテーマに詳しい方がいたら設定方法を教えてください。