diff --git a/app.go b/app.go index 9fb1aa1..08dbafb 100644 --- a/app.go +++ b/app.go @@ -201,11 +201,11 @@ func (a *App) ToggleTheme(dark bool) { xfceThemeName := getThemeNameXFCE() if strings.Contains(xfceThemeName, "Qogir") { if dark { - style = "Qogir-dark" + style = "Qogir-Dark" } else { style = "Adwaita" } - cmd := exec.Command("xfconf-query", "-c", "xsettings", "-p", "/Net/ThemeName", "-s", style) + cmd := exec.Command("sh", "-c", fmt.Sprintf("xfconf-query -c xsettings -p /Net/ThemeName -s %s && xfconf-query -c xfwm4 -p /general/theme -s %s", style, style)) _, err := cmd.Output() if err != nil { fmt.Println("failed to change XFCE theme:", err) @@ -216,7 +216,7 @@ func (a *App) ToggleTheme(dark bool) { } else { style = "Adwaita" } - cmd := exec.Command("xfconf-query", "-c", "xsettings", "-p", "/Net/ThemeName", "-s", style) + cmd := exec.Command("sh", "-c", fmt.Sprintf("xfconf-query -c xsettings -p /Net/ThemeName -s %s && xfconf-query -c xfwm4 -p /general/theme -s %s", style, style)) _, err := cmd.Output() if err != nil { fmt.Println("failed to change XFCE theme:", err) diff --git a/build/bin/welcome b/build/bin/welcome index 4c2b750..146c548 100755 Binary files a/build/bin/welcome and b/build/bin/welcome differ diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a40721a..b8de2cd 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -31,19 +31,21 @@ const App: React.FC = () => { "Qogir-win-dark", ]; - useEffect(() => { - const fetchTheme = async () => { - try { - const currTheme = await CurrentTheme(); - const fileExist = await CheckFileExists(); - setIsAutoStart(fileExist); - setIsDarkMode(Themes.includes(currTheme)); - } catch (error) { - console.error("Failed to fetch current theme:", error); - } - }; + const fetchTheme = async () => { + try { + const currTheme = await CurrentTheme(); + const fileExist = await CheckFileExists(); + setIsAutoStart(fileExist); + setIsDarkMode(Themes.includes(currTheme)); + } catch (error) { + console.error("Failed to fetch current theme:", error); + } + }; + useEffect(() => { fetchTheme(); + const interval = setInterval(fetchTheme, 1000); + return () => clearInterval(interval); }, []); const toggleTheme = async () => {