import AstalWp from "gi://AstalWp" import { createBinding } from "ags" export default function Volume() { const speaker = AstalWp.get_default()!.defaultSpeaker! const volume = createBinding(speaker, "volume") const mute = createBinding(speaker, "mute") const text = volume((v: number) => { const pct = Math.round(v * 100) const muted = speaker.mute let icon = "󰕾" if (muted) icon = "󰝟" else if (v > 0.66) icon = "󰕾" else if (v > 0.33) icon = "󰖀" else if (v > 0) icon = "󰕿" else icon = "󰝟" return `${icon} ${pct}%` }) const cls = mute((m: boolean) => m ? "volume muted" : "volume" ) return ( ) }