config: add transparency option
Also remove options for removed features
This commit is contained in:
parent
0230997d76
commit
acae35aa52
2 changed files with 22 additions and 22 deletions
22
app.tsx
22
app.tsx
|
|
@ -5,20 +5,33 @@ import Osds from "@/modules/osds";
|
||||||
import Popdowns from "@/modules/popdowns";
|
import Popdowns from "@/modules/popdowns";
|
||||||
import Session from "@/modules/session";
|
import Session from "@/modules/session";
|
||||||
import Monitors from "@/services/monitors";
|
import Monitors from "@/services/monitors";
|
||||||
import Palette from "@/services/palette";
|
import Palette, { type Hex } from "@/services/palette";
|
||||||
import Players from "@/services/players";
|
import Players from "@/services/players";
|
||||||
import Schemes from "@/services/schemes";
|
import Schemes from "@/services/schemes";
|
||||||
import Wallpapers from "@/services/wallpapers";
|
import Wallpapers from "@/services/wallpapers";
|
||||||
import type PopupWindow from "@/widgets/popupwindow";
|
import type PopupWindow from "@/widgets/popupwindow";
|
||||||
import { execAsync, idle, timeout, writeFileAsync } from "astal";
|
import { execAsync, idle, timeout, writeFileAsync } from "astal";
|
||||||
import { App } from "astal/gtk3";
|
import { App } from "astal/gtk3";
|
||||||
import { initConfig, updateConfig } from "config";
|
import { initConfig, style, updateConfig } from "config";
|
||||||
|
|
||||||
|
const shouldBeTransparent = (name: string) =>
|
||||||
|
name === "base" ||
|
||||||
|
name === "mantle" ||
|
||||||
|
name === "crust" ||
|
||||||
|
name.startsWith("surface") ||
|
||||||
|
name.startsWith("overlay");
|
||||||
|
|
||||||
|
const applyTransparency = (name: string, hex: Hex) => {
|
||||||
|
if (style.transparency.get() === "off" || !shouldBeTransparent(name)) return hex;
|
||||||
|
const amount = style.transparency.get() === "high" ? 0.58 : 0.78;
|
||||||
|
return `color.change(${hex}, $alpha: ${amount})`;
|
||||||
|
};
|
||||||
|
|
||||||
export const loadStyleAsync = async () => {
|
export const loadStyleAsync = async () => {
|
||||||
const schemeColours = Object.entries(Palette.get_default().colours)
|
const schemeColours = Object.entries(Palette.get_default().colours)
|
||||||
.map(([name, hex]) => `$${name}: ${hex};`)
|
.map(([name, hex]) => `$${name}: ${applyTransparency(name, hex)};`)
|
||||||
.join("\n");
|
.join("\n");
|
||||||
await writeFileAsync(`${SRC}/scss/scheme/_index.scss`, schemeColours);
|
await writeFileAsync(`${SRC}/scss/scheme/_index.scss`, `@use "sass:color";\n${schemeColours}`);
|
||||||
App.apply_css(await execAsync(`sass ${SRC}/style.scss`), true);
|
App.apply_css(await execAsync(`sass ${SRC}/style.scss`), true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -29,6 +42,7 @@ App.start({
|
||||||
const now = Date.now();
|
const now = Date.now();
|
||||||
|
|
||||||
loadStyleAsync().catch(console.error);
|
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::colours", () => loadStyleAsync().catch(console.error));
|
||||||
|
|
||||||
initConfig();
|
initConfig();
|
||||||
|
|
|
||||||
22
config.ts
22
config.ts
|
|
@ -46,6 +46,9 @@ export const initConfig = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const DEFAULTS = {
|
const DEFAULTS = {
|
||||||
|
style: {
|
||||||
|
transparency: "normal", // One of "off", "normal", "high"
|
||||||
|
},
|
||||||
// Modules
|
// Modules
|
||||||
bar: {
|
bar: {
|
||||||
vertical: true,
|
vertical: true,
|
||||||
|
|
@ -92,13 +95,6 @@ const DEFAULTS = {
|
||||||
actionPrefix: ">", // Prefix for launcher actions
|
actionPrefix: ">", // Prefix for launcher actions
|
||||||
apps: {
|
apps: {
|
||||||
maxResults: 30, // Actual max results, -1 for infinite
|
maxResults: 30, // Actual max results, -1 for infinite
|
||||||
pins: [
|
|
||||||
["zen", "firefox", "waterfox", "google-chrome", "chromium", "brave-browser"],
|
|
||||||
["foot", "alacritty", "kitty", "wezterm"],
|
|
||||||
["thunar", "nemo", "nautilus"],
|
|
||||||
["codium", "code", "clion", "intellij-idea-ultimate-edition"],
|
|
||||||
["spotify-adblock", "spotify", "audacious", "elisa"],
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
files: {
|
files: {
|
||||||
maxResults: 40, // Actual max results, -1 for infinite
|
maxResults: 40, // Actual max results, -1 for infinite
|
||||||
|
|
@ -108,16 +104,6 @@ const DEFAULTS = {
|
||||||
math: {
|
math: {
|
||||||
maxResults: 40, // Actual max results, -1 for infinite
|
maxResults: 40, // Actual max results, -1 for infinite
|
||||||
},
|
},
|
||||||
windows: {
|
|
||||||
maxResults: -1, // Actual max results, -1 for infinite
|
|
||||||
weights: {
|
|
||||||
// Weights for fuzzy sort
|
|
||||||
title: 1,
|
|
||||||
class: 1,
|
|
||||||
initialTitle: 0.5,
|
|
||||||
initialClass: 0.5,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
todo: {
|
todo: {
|
||||||
notify: true,
|
notify: true,
|
||||||
},
|
},
|
||||||
|
|
@ -158,7 +144,6 @@ const DEFAULTS = {
|
||||||
directories: {
|
directories: {
|
||||||
left: {
|
left: {
|
||||||
top: " Downloads",
|
top: " Downloads",
|
||||||
|
|
||||||
middle: " Documents",
|
middle: " Documents",
|
||||||
bottom: " Music",
|
bottom: " Music",
|
||||||
},
|
},
|
||||||
|
|
@ -207,6 +192,7 @@ const DEFAULTS = {
|
||||||
const config = convertSettings(DEFAULTS);
|
const config = convertSettings(DEFAULTS);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
|
style,
|
||||||
bar,
|
bar,
|
||||||
launcher,
|
launcher,
|
||||||
notifpopups,
|
notifpopups,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue