diff --git a/test/theme-check.js b/test/theme-check.js index 94972df..a100d7b 100644 --- a/test/theme-check.js +++ b/test/theme-check.js @@ -79,14 +79,19 @@ class CheckDark { } } get gnomeScheme() { - // 判断 Gnome-Shell 版本 - const gnomeVersion = execSync(`gnome-shell --version`) - .toString() - .replace(/[\r\n]/g, "") - .split(" "); - const gnomeVersionNum = - gnomeVersion.length == 3 ? Number(gnomeVersion[2]) : 0; - return gnomeVersionNum >= 42 ? "color-scheme" : "gtk-theme"; + try { + // 判断 Gnome-Shell 版本 + const gnomeVersion = execSync(`gnome-shell --version`) + .toString() + .replace(/[\r\n]/g, "") + .split(" "); + const gnomeVersionNum = + gnomeVersion.length == 3 ? Number(gnomeVersion[2]) : 0; + return gnomeVersionNum >= 42 ? "color-scheme" : "gtk-theme"; + } catch (err) { + console.error("检查gnome版本失败, 使用gtk-theme", err); + return "gtk-theme"; + } } } const cd = new CheckDark(); @@ -221,14 +226,19 @@ function original() { } } get gnomeScheme() { - // 判断 Gnome-Shell 版本 - const gnomeVersion = execSync(`gnome-shell --version`) - .toString() - .replace(/[\r\n]/g, "") - .split(" "); - const gnomeVersionNum = - gnomeVersion.length == 3 ? Number(gnomeVersion[2]) : 0; - return gnomeVersionNum >= 42 ? "color-scheme" : "gtk-theme"; + try { + // 判断 Gnome-Shell 版本 + const gnomeVersion = execSync(`gnome-shell --version`) + .toString() + .replace(/[\r\n]/g, "") + .split(" "); + const gnomeVersionNum = + gnomeVersion.length == 3 ? Number(gnomeVersion[2]) : 0; + return gnomeVersionNum >= 42 ? "color-scheme" : "gtk-theme"; + } catch (err) { + console.error("检查gnome版本失败, 使用gtk-theme", err); + return "gtk-theme"; + } } monitorTheme() { try { diff --git a/tools/fix-core.sh b/tools/fix-core.sh index 62ca067..8b42e3c 100755 --- a/tools/fix-core.sh +++ b/tools/fix-core.sh @@ -79,7 +79,7 @@ sed -i 's/this.registerListeners()/this.monitorTheme()/' $find_result # replace check func sed -i 's/mediaQuery.matches/isDark/' $find_result # add functions -sed -i 's#}getDefaultTheme#}get isDark(){try{const{DESKTOP_SESSION}=process.env;console.log(DESKTOP_SESSION);let theme="";switch(DESKTOP_SESSION){case"deepin":theme=execSync(`gsettings get com.deepin.dde.appearance gtk-theme`);break;case"gnome":case"gnome-classic":theme=execSync(`gsettings get org.gnome.desktop.interface ${this.gnomeScheme}`);break;default:break}return theme.includes("dark");}catch(err){console.error("尝试获取主题信息失败,使用默认暗色",err);return true;}}get gnomeScheme(){const gnomeVersion=execSync(`gnome-shell --version`).toString().replace(/[\\r\\n]/g,"").split(" ");const gnomeVersionNum=gnomeVersion.length==3?Number(gnomeVersion[2]):0;return gnomeVersionNum>=42?"color-scheme":"gtk-theme"}monitorTheme(){try{let monitor=null;const{DESKTOP_SESSION}=process.env;switch(DESKTOP_SESSION){case"deepin":monitor=spawn("gsettings",["monitor","com.deepin.dde.appearance","gtk-theme",]);break;case"gnome":case"gnome-classic":monitor=spawn("gsettings",["monitor","org.gnome.desktop.interface",this.gnomeScheme,]);break;default:console.warn(`NOT SUPPORTED!!!DESKTOP_SESSION:${DESKTOP_SESSION}`);break}monitor\&\&monitor.on("error",(err)=>{console.error("monitorTheme",err)});monitor\&\&monitor.stdout.on("data",e.debounce((chunk)=>{const data=chunk.toString();const t=data.toLowerCase().includes("dark");(this._theme=t?i.Dark:i.Light),this._onDidThemeChange.fire(this._theme)},400));}catch(err){console.error("尝试监听主题失败!", err);}}getDefaultTheme#' $find_result +sed -i 's#}getDefaultTheme#}get isDark(){try{const{DESKTOP_SESSION}=process.env;console.log(DESKTOP_SESSION);let theme="";switch(DESKTOP_SESSION){case"deepin":theme=execSync(`gsettings get com.deepin.dde.appearance gtk-theme`);break;case"gnome":case"gnome-classic":theme=execSync(`gsettings get org.gnome.desktop.interface ${this.gnomeScheme}`);break;default:break}return theme.includes("dark");}catch(err){console.error("尝试获取主题信息失败,使用默认暗色",err);return true;}}get gnomeScheme(){try{const gnomeVersion=execSync(`gnome-shell --version`).toString().replace(/[\\r\\n]/g,"").split(" ");const gnomeVersionNum=gnomeVersion.length==3?Number(gnomeVersion[2]):0;return gnomeVersionNum>=42?"color-scheme":"gtk-theme";}catch(err){console.error("检查gnome版本失败, 使用gtk-theme", err);return "gtk-theme";}}monitorTheme(){try{let monitor=null;const{DESKTOP_SESSION}=process.env;switch(DESKTOP_SESSION){case"deepin":monitor=spawn("gsettings",["monitor","com.deepin.dde.appearance","gtk-theme",]);break;case"gnome":case"gnome-classic":monitor=spawn("gsettings",["monitor","org.gnome.desktop.interface",this.gnomeScheme,]);break;default:console.warn(`NOT SUPPORTED!!!DESKTOP_SESSION:${DESKTOP_SESSION}`);break}monitor\&\&monitor.on("error",(err)=>{console.error("monitorTheme",err)});monitor\&\&monitor.stdout.on("data",e.debounce((chunk)=>{const data=chunk.toString();const t=data.toLowerCase().includes("dark");(this._theme=t?i.Dark:i.Light),this._onDidThemeChange.fire(this._theme)},400));}catch(err){console.error("尝试监听主题失败!", err);}}getDefaultTheme#' $find_result # fix update check find_result=$( grep -lr "whatsnew.html" "$tmp_dir/core.wxvpkg" )