diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-03-05 19:25:49 +1100 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-03-05 19:25:49 +1100 |
| commit | ab80d8f78681ac46e19ad97e152b7d5afe1bf999 (patch) | |
| tree | 8989038f53e89f80c27b80c824cb6a12c7fae10c /src/services | |
| parent | updates: fix escaping markup (diff) | |
| download | caelestia-shell-ab80d8f78681ac46e19ad97e152b7d5afe1bf999.tar.gz caelestia-shell-ab80d8f78681ac46e19ad97e152b7d5afe1bf999.tar.bz2 caelestia-shell-ab80d8f78681ac46e19ad97e152b7d5afe1bf999.zip | |
launcher: fixes
Fix light/dark actions
Fix delay when pressing enter
Diffstat (limited to 'src/services')
| -rw-r--r-- | src/services/palette.ts | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/services/palette.ts b/src/services/palette.ts index da7ef09..95915c0 100644 --- a/src/services/palette.ts +++ b/src/services/palette.ts @@ -1,4 +1,7 @@ -import { GLib, GObject, monitorFile, property, readFile, readFileAsync, register } from "astal"; +import { execAsync, GLib, GObject, monitorFile, property, readFile, readFileAsync, register } from "astal"; +import Schemes from "./schemes"; + +export type ColourMode = "light" | "dark"; export type Hex = `#${string}`; @@ -41,7 +44,7 @@ export default class Palette extends GObject.Object { return this.instance; } - #mode: "light" | "dark"; + #mode: ColourMode; #scheme: string; #flavour?: string; #colours!: IPalette; @@ -249,6 +252,16 @@ export default class Palette extends GObject.Object { this.#notify(); } + switchMode(mode: ColourMode) { + execAsync(`caelestia scheme ${this.scheme} ${this.flavour ?? ""} ${mode}`).catch(console.error); + } + + hasMode(mode: ColourMode) { + const scheme = Schemes.get_default().map[this.scheme]; + if (scheme?.colours?.[mode]) return true; + return scheme?.flavours?.[this.flavour ?? ""]?.colours?.[mode] !== undefined; + } + constructor() { super(); |