import { Astal, Gtk } from "ags/gtk4"; import { Wireplumber } from "../../../modules/volume"; import { Pages } from "./pages"; import { PageSound } from "./pages/Sound"; import { PageMicrophone } from "./pages/Microphone"; import { createBinding, With } from "ags"; import { Backlights } from "../../../modules/backlight"; import { PageBacklight } from "./pages/Backlight"; import AstalWp from "gi://AstalWp"; export let slidersPages: Pages|undefined; export function Sliders() { return slidersPages = undefined}> {(sink: AstalWp.Endpoint) => Wireplumber.getDefault().toggleMuteSink()} iconName={createBinding(sink, "volumeIcon").as((icon) => (!Wireplumber.getDefault().isMutedSink() && Wireplumber.getDefault().getSinkVolume() > 0 ) ? icon : "audio-volume-muted-symbolic" )} /> sink.set_volume(value)} /> slidersPages?.toggle(PageSound)} /> } {(source: AstalWp.Endpoint) => Wireplumber.getDefault().toggleMuteSource()} iconName={createBinding(source, "volumeIcon").as((icon) => (!Wireplumber.getDefault().isMutedSource() && Wireplumber.getDefault().getSourceVolume() > 0 ) ? icon : "microphone-sensitivity-muted-symbolic" )} /> source.set_volume(value)} /> slidersPages?.toggle(PageMicrophone)} /> } {(bklight: Backlights.Backlight|null) => bklight && { bklight.brightness = bklight.maxBrightness }} iconName={"display-brightness-symbolic"} /> { bklight.brightness = value }} /> slidersPages?.toggle(PageBacklight)} /> } slidersPages = self} /> }