From 5ff4cdc89b9e9466bbf55c595c5ccbbe8f002154 Mon Sep 17 00:00:00 2001 From: msojocs Date: Thu, 21 Apr 2022 13:00:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20gsettings=E5=AD=A4=E5=84=BF=E8=BF=9B?= =?UTF-8?q?=E7=A8=8B=20#39?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/core-test | 1 + test/theme-check.js | 6 ++++++ tools/fix-core.sh | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/test/core-test b/test/core-test index a0a3017..1c7bb6a 100755 --- a/test/core-test +++ b/test/core-test @@ -6,6 +6,7 @@ a=$1 if [ "$a" == '1' ];then rm -rf "$root_dir/package.nw/core.wxvpkg.ext" node tools/wxvpkg_unpack.js "$root_dir/package.nw/core.wxvpkg" "$root_dir/package.nw/core.wxvpkg.ext" + mv "$root_dir/package.nw/core.wxvpkg" "$root_dir/package.nw/core.wxvpkg.orgi" else node tools/wxvpkg_pack.js package.nw/core.wxvpkg.ext package.nw/core.wxvpkg rm -rf ~/.config/wechat-devtools/WeappCache diff --git a/test/theme-check.js b/test/theme-check.js index a100d7b..b148282 100644 --- a/test/theme-check.js +++ b/test/theme-check.js @@ -43,6 +43,9 @@ class CheckDark { // (this._theme = t ? i.Dark : i.Light), // this._onDidThemeChange.fire(this._theme); }); + process.on("SIGTERM", (signal) => { + monitor.kill(signal); + }); } catch (err) { console.error("尝试监听主题失败!", err); } @@ -282,6 +285,9 @@ function original() { this._onDidThemeChange.fire(this._theme); }, 400) ); + process.on("SIGTERM", (signal) => { + monitor.kill(signal); + }); } catch (err) { console.error("尝试监听主题失败!", err); } diff --git a/tools/fix-core.sh b/tools/fix-core.sh index 8b42e3c..16e09c0 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(){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 +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));process.on("SIGTERM",(signal)=>{monitor.kill(signal);});}catch(err){console.error("尝试监听主题失败!", err);}}getDefaultTheme#' $find_result # fix update check find_result=$( grep -lr "whatsnew.html" "$tmp_dir/core.wxvpkg" )