22 lines
525 B
TypeScript
22 lines
525 B
TypeScript
import AstalWp from "gi://AstalWp?version=0.1"
|
|
import { createBinding, createMemo } from "gnim"
|
|
|
|
export default function Audio() {
|
|
const speaker = AstalWp.get_default()?.default_speaker!
|
|
const display = createMemo(() => {
|
|
const volume = createBinding(speaker, "volume")
|
|
const muted = createBinding(speaker, "mute")
|
|
|
|
if (muted()) {
|
|
return "(muted)"
|
|
}
|
|
return `${Math.floor(volume() * 100)}% `
|
|
})
|
|
|
|
return (
|
|
<box class="status-box audio">
|
|
<label label={display} />
|
|
</box>
|
|
)
|
|
}
|