diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-04-15 15:22:31 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-04-15 15:22:31 +1000 |
| commit | 45f97d8f94f67657421316f082ac1d4222012691 (patch) | |
| tree | 5d791529fc2cd0e735882d704b1d0882a509f477 | |
| parent | style: lighter backgrounds (diff) | |
| download | caelestia-shell-45f97d8f94f67657421316f082ac1d4222012691.tar.gz caelestia-shell-45f97d8f94f67657421316f082ac1d4222012691.tar.bz2 caelestia-shell-45f97d8f94f67657421316f082ac1d4222012691.zip | |
feat: add low transparency mode
| -rw-r--r-- | app.tsx | 7 | ||||
| -rw-r--r-- | src/config/defaults.ts | 2 | ||||
| -rw-r--r-- | src/config/types.ts | 2 | ||||
| -rw-r--r-- | src/modules/launcher/actions.tsx | 5 |
4 files changed, 12 insertions, 4 deletions
@@ -22,8 +22,11 @@ const isLayer = (name: string) => ["base", "mantle", "crust"].includes(name) || name.startsWith("surface") || name.startsWith("overlay"); const applyTransparency = (name: string, hex: string) => { - if (style.transparency.get() === "off" || !isLayer(name)) return hex; - const amount = style.transparency.get() === "high" ? 0.58 : 0.78; + const mode = style.transparency.get(); + if (mode === "off" || !isLayer(name)) return hex; + let amount = 0.78; + if (mode === "low") amount = 0.88; + else if (mode === "high") amount = 0.58; return `color.change(${hex}, $alpha: ${amount})`; }; diff --git a/src/config/defaults.ts b/src/config/defaults.ts index 21ba436..a5ebbbc 100644 --- a/src/config/defaults.ts +++ b/src/config/defaults.ts @@ -2,7 +2,7 @@ import { Astal } from "astal/gtk3"; export default { style: { - transparency: "normal", // One of "off", "normal", "high" + transparency: "normal", // One of "off", "low", "normal", "high" borders: true, vibrant: false, // Extra saturation }, diff --git a/src/config/types.ts b/src/config/types.ts index 5e7415a..c8fb9b4 100644 --- a/src/config/types.ts +++ b/src/config/types.ts @@ -7,7 +7,7 @@ const ARR = (type: string | string[]) => `array of ${typeof type === "string" ? const OBJ_ARR = (shape: object) => ARR(JSON.stringify(shape)); export default { - "style.transparency": ["off", "normal", "high"], + "style.transparency": ["off", "low", "normal", "high"], "style.borders": BOOL, "style.vibrant": BOOL, "config.notifyOnError": BOOL, diff --git a/src/modules/launcher/actions.tsx b/src/modules/launcher/actions.tsx index 04c5458..1caa317 100644 --- a/src/modules/launcher/actions.tsx +++ b/src/modules/launcher/actions.tsx @@ -31,6 +31,11 @@ const transparencyActions = { name: "Off", description: "Completely opaque", }, + low: { + icon: "blur_circular", + name: "Low", + description: "Less transparent", + }, normal: { icon: "blur_linear", name: "Normal", |