diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-03-31 22:00:52 +1100 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-03-31 22:00:52 +1100 |
| commit | f8f8b0837bad46e6b1f40ce6e8df3b45cf3c8542 (patch) | |
| tree | 1e36ba9a357434fed7ff9eecda5b9f69b6ae0e77 | |
| parent | config: don't show sidebar on startup by default (diff) | |
| download | caelestia-shell-f8f8b0837bad46e6b1f40ce6e8df3b45cf3c8542.tar.gz caelestia-shell-f8f8b0837bad46e6b1f40ce6e8df3b45cf3c8542.tar.bz2 caelestia-shell-f8f8b0837bad46e6b1f40ce6e8df3b45cf3c8542.zip | |
startup: wait for config to init
Also cleanup some stuff
| -rw-r--r-- | app.tsx | 26 | ||||
| -rw-r--r-- | scss/_lib.scss | 54 | ||||
| -rw-r--r-- | src/config/funcs.ts | 4 |
3 files changed, 7 insertions, 77 deletions
@@ -2,7 +2,6 @@ import Bar from "@/modules/bar"; import Launcher from "@/modules/launcher"; import NotifPopups from "@/modules/notifpopups"; import Osds from "@/modules/osds"; -import Popdowns from "@/modules/popdowns"; import Session from "@/modules/session"; import SideBar from "@/modules/sidebar"; import Calendar from "@/services/calendar"; @@ -11,7 +10,6 @@ import Palette from "@/services/palette"; import Players from "@/services/players"; import Schemes from "@/services/schemes"; import Wallpapers from "@/services/wallpapers"; -import type PopupWindow from "@/widgets/popupwindow"; import { execAsync, idle, timeout, writeFileAsync } from "astal"; import { App } from "astal/gtk3"; import { style } from "config"; @@ -61,23 +59,22 @@ export const loadStyleAsync = () => styleLoader.run(); App.start({ instanceName: "caelestia", icons: "assets/icons", - main() { + async main() { const now = Date.now(); + await initConfig(); + loadStyleAsync().catch(console.error); style.transparency.subscribe(() => loadStyleAsync().catch(console.error)); Palette.get_default().connect("notify::colours", () => loadStyleAsync().catch(console.error)); Palette.get_default().connect("notify::mode", () => loadStyleAsync().catch(console.error)); - initConfig(); - <Launcher />; <NotifPopups />; <Osds />; <Session />; Monitors.get_default().forEach(m => <SideBar monitor={m} />); Monitors.get_default().forEach(m => <Bar monitor={m} />); - <Popdowns />; // Init services timeout(1000, () => { @@ -89,23 +86,10 @@ App.start({ console.log(`Caelestia started in ${Date.now() - now}ms`); }, requestHandler(request, res) { - if (request === "quit") App.quit(); - else if (request === "reload-css") loadStyleAsync().catch(console.error); + if (request === "reload-css") loadStyleAsync().catch(console.error); else if (request === "reload-config") updateConfig(); else if (request.startsWith("show")) App.get_window(request.split(" ")[1])?.show(); - else if (request === "toggle sideleft") { - const window = App.get_window("sideleft") as PopupWindow | null; - if (window) { - if (window.visible) window.hide(); - else window.popup_at_corner("top left"); - } - } else if (request === "toggle sideright") { - const window = App.get_window("sideright") as PopupWindow | null; - if (window) { - if (window.visible) window.hide(); - else window.popup_at_corner("top right"); - } - } else if (request === "media play-pause") Players.get_default().lastPlayer?.play_pause(); + else if (request === "media play-pause") Players.get_default().lastPlayer?.play_pause(); else if (request === "media next") Players.get_default().lastPlayer?.next(); else if (request === "media previous") Players.get_default().lastPlayer?.previous(); else if (request === "media stop") Players.get_default().lastPlayer?.stop(); diff --git a/scss/_lib.scss b/scss/_lib.scss index ff418c3..e222b59 100644 --- a/scss/_lib.scss +++ b/scss/_lib.scss @@ -43,57 +43,3 @@ $scale: 0.068rem; @mixin ease-in-out { transition-timing-function: cubic-bezier(0.85, 0, 0.15, 1); } - -@mixin popdown-window($colour) { - @include rounded(8); - @include border($colour, 0.4, 2); - @include shadow; - @include font.mono; - - background-color: scheme.$mantle; - color: $colour; - padding: s(10) s(12); - font-size: s(14); - - .header { - @include spacing(8); - - padding: 0 s(5); - margin-bottom: s(8); - font-size: s(15); - - button { - @include rounded(5); - @include element-decel; - - padding: s(3) s(8); - - &:hover, - &:focus { - background-color: scheme.$surface0; - } - - &:active { - background-color: scheme.$surface1; - } - - &.enabled { - background-color: $colour; - color: scheme.$base; - - &:hover, - &:focus { - background-color: color.mix($colour, scheme.$base, 80%); - } - - &:active { - background-color: color.mix($colour, scheme.$base, 70%); - } - } - } - } - - .icon { - font-size: s(32); - } -} diff --git a/src/config/funcs.ts b/src/config/funcs.ts index 93a8ef5..72823eb 100644 --- a/src/config/funcs.ts +++ b/src/config/funcs.ts @@ -88,9 +88,9 @@ export const updateConfig = async () => { loadStyleAsync().catch(console.error); }; -export const initConfig = () => { +export const initConfig = async () => { monitorFile(CONFIG, () => updateConfig().catch(e => console.warn(`Invalid config: ${e}`))); - updateConfig().catch(e => console.warn(`Invalid config: ${e}`)); + await updateConfig().catch(e => console.warn(`Invalid config: ${e}`)); }; export const setConfig = async (path: string, value: any) => { |