feat(ags4): implement lockscreen

This commit is contained in:
matt1432 2025-01-25 02:28:34 -05:00
parent 8bd0b732e7
commit 557e4c7a52
32 changed files with 281 additions and 12 deletions
modules/ags/gtk4/widgets/astalify

View file

@ -0,0 +1,27 @@
import { Variable } from 'astal';
import { Binding } from 'astal/binding';
export const mergeBindings = <Value = unknown>(
array: (Value | Binding<Value> | Binding<Value[]>)[],
): Value[] | Binding<Value[]> => {
const getValues = (args: Value[]) => {
let i = 0;
return array.map((value) => value instanceof Binding ?
args[i++] :
value);
};
const bindings = array.filter((i) => i instanceof Binding);
if (bindings.length === 0) {
return array as Value[];
}
if (bindings.length === 1) {
return (bindings[0] as Binding<Value[]>).as(getValues);
}
return Variable.derive(bindings, getValues)();
};