diff --git a/src/window/OSD.tsx b/src/window/OSD.tsx index ee5ca62..9627967 100644 --- a/src/window/OSD.tsx +++ b/src/window/OSD.tsx @@ -37,14 +37,14 @@ export class OSDMode extends GObject.Object { } } -export const OSDModes: Record = { - SINK: new OSDMode({ +export const OSDModes: Record OSDMode> = { + SINK: () => new OSDMode({ icon: createBinding(Wireplumber.getWireplumber().defaultSpeaker, "volumeIcon"), value: createBinding(Wireplumber.getWireplumber().defaultSpeaker, "volume"), text: createBinding(Wireplumber.getWireplumber().defaultSpeaker, "description"), max: Wireplumber.getDefault().getMaxSinkVolume() / 100 }), - BRIGHTNESS: Backlights.getDefault().available ? new OSDMode({ + BRIGHTNESS: () => Backlights.getDefault().available ? new OSDMode({ icon: "display-brightness-symbolic", value: createBinding(Backlights.getDefault().default, "brightness"), max: createBinding(Backlights.getDefault().default, "maxBrightness"), @@ -67,25 +67,28 @@ export const OSD = (mon: number) => - {(mode: OSDMode) => - - - t ?? "")} - ellipsize={Pango.EllipsizeMode.END} - visible={variableToBoolean(createBinding(mode, "text"))} - /> - - - } + {(modeFun: () => OSDMode) => { + const mode = modeFun(); + return + + + t ?? "")} + ellipsize={Pango.EllipsizeMode.END} + visible={variableToBoolean(createBinding(mode, "text"))} + /> + + + ; + }} ; -export function triggerOSD(mode: OSDMode) { +export function triggerOSD(mode: () => OSDMode) { setOSDMode(mode); Windows.getDefault().open("osd");