✨ chore(scripts/utils, scripts/style-handler): add filter() method, change stylesheet target directory
the `filter()` function can both filter a common array and at the same time, it can also filter an Accessor Array(Accessor<Array<T>> and return an Accessor when provided Array is an Accessor Array. Stylesheet directory changed to colorshell's cache dir, making sense, since it's a temporary file generated by the shell
This commit is contained in:
@@ -8,8 +8,8 @@ import Gio from "gi://Gio?version=2.0";
|
|||||||
|
|
||||||
const monitoringPaths = [ "./scripts", "./window", "./app.ts", "env.d.ts" ];
|
const monitoringPaths = [ "./scripts", "./window", "./app.ts", "env.d.ts" ];
|
||||||
|
|
||||||
export function restartInstance(instanceName?: string): void {
|
export function restartInstance(): void {
|
||||||
execAsync(`astal -q ${ instanceName ?? App.instanceName ?? "astal" }`);
|
execAsync(`astal -q ${ App.instanceName ?? "astal" }`);
|
||||||
Gio.Subprocess.new(
|
Gio.Subprocess.new(
|
||||||
( uwsmIsActive ?
|
( uwsmIsActive ?
|
||||||
[ "uwsm", "app", "--", "ags", "run" ]
|
[ "uwsm", "app", "--", "ags", "run" ]
|
||||||
|
|||||||
@@ -12,9 +12,11 @@ import GLib from "gi://GLib?version=2.0";
|
|||||||
export class Stylesheet {
|
export class Stylesheet {
|
||||||
private static instance: Stylesheet;
|
private static instance: Stylesheet;
|
||||||
#watchDelay: (AstalIO.Time|undefined);
|
#watchDelay: (AstalIO.Time|undefined);
|
||||||
#outputPath = Gio.File.new_for_path(`${GLib.get_user_state_dir()}/ags/style`);
|
#outputPath = Gio.File.new_for_path(`${GLib.get_user_cache_dir()}/colorshell/style`);
|
||||||
#styles = [ "./style", "./style.scss" ];
|
#styles = [ "./style", "./style.scss" ];
|
||||||
|
|
||||||
|
public get stylePath() { return this.#outputPath.get_path()!; }
|
||||||
|
|
||||||
public async compileSass(): Promise<void> {
|
public async compileSass(): Promise<void> {
|
||||||
console.log("Stylesheet: Compiling Sass");
|
console.log("Stylesheet: Compiling Sass");
|
||||||
|
|
||||||
|
|||||||
+11
-1
@@ -6,6 +6,7 @@ import { getSymbolicIcon } from "./apps";
|
|||||||
|
|
||||||
import GLib from "gi://GLib?version=2.0";
|
import GLib from "gi://GLib?version=2.0";
|
||||||
import Gio from "gi://Gio?version=2.0";
|
import Gio from "gi://Gio?version=2.0";
|
||||||
|
import Xdp from "gi://Xdp?version=1.0";
|
||||||
|
|
||||||
|
|
||||||
/** gnim doesn't export this, so we need to do it again */
|
/** gnim doesn't export this, so we need to do it again */
|
||||||
@@ -13,9 +14,9 @@ export type WidgetNodeType = Array<JSX.Element> | JSX.Element | number | string
|
|||||||
|
|
||||||
export const decoder = new TextDecoder("utf-8"),
|
export const decoder = new TextDecoder("utf-8"),
|
||||||
encoder = new TextEncoder();
|
encoder = new TextEncoder();
|
||||||
|
|
||||||
export const time = createPoll(GLib.DateTime.new_now_local(), 500, () =>
|
export const time = createPoll(GLib.DateTime.new_now_local(), 500, () =>
|
||||||
GLib.DateTime.new_now_local());
|
GLib.DateTime.new_now_local());
|
||||||
|
export const XdgPortal = Xdp.Portal.new();
|
||||||
|
|
||||||
export function getHyprlandInstanceSig(): (string|null) {
|
export function getHyprlandInstanceSig(): (string|null) {
|
||||||
return GLib.getenv("HYPRLAND_INSTANCE_SIGNATURE");
|
return GLib.getenv("HYPRLAND_INSTANCE_SIGNATURE");
|
||||||
@@ -155,6 +156,15 @@ export function transformWidget<ValueType = unknown>(
|
|||||||
: fn(v));
|
: fn(v));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function filter<ValueType = unknown, FilterReturnType = unknown>(
|
||||||
|
v: Accessor<Array<ValueType>>|Array<ValueType>,
|
||||||
|
fn: (v: ValueType, i: number, array: Array<ValueType>) => FilterReturnType
|
||||||
|
): Array<ValueType>|Accessor<Array<ValueType>> {
|
||||||
|
return ((v instanceof Accessor) ?
|
||||||
|
v(v => v.filter((it, i, arr) => fn(it, i, arr)))
|
||||||
|
: v.filter((it, i, arr) => fn(it, i, arr)));
|
||||||
|
}
|
||||||
|
|
||||||
export function makeDirectory(dir: string): void {
|
export function makeDirectory(dir: string): void {
|
||||||
execAsync([ "mkdir", "-p", dir ]);
|
execAsync([ "mkdir", "-p", dir ]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user