Added an osd for microphone inputs. (#60)

This commit is contained in:
Jas Singh
2024-08-02 01:22:20 -07:00
committed by GitHub
parent 126f2b7535
commit 308e22b02f
5 changed files with 38 additions and 9 deletions

View File

@@ -18,10 +18,14 @@ export const OSDBar = (ort: OSDOrientation) => {
self.hook(brightness, () => {
self.value = brightness.kbd;
}, "notify::kbd")
self.hook(audio, () => {
self.hook(audio.microphone, () => {
self.toggleClassName("overflow", audio.microphone.volume > 1)
self.value = audio.microphone.volume <= 1 ? audio.microphone.volume : audio.microphone.volume - 1;
}, "notify::volume")
self.hook(audio.speaker, () => {
self.toggleClassName("overflow", audio.speaker.volume > 1)
self.value = audio.speaker.volume <= 1 ? audio.speaker.volume : audio.speaker.volume - 1;
})
}, "notify::volume")
}
})
]

View File

@@ -19,9 +19,18 @@ export const OSDIcon = (ort: OSDOrientation) => {
self.hook(brightness, () => {
self.label = "󰥻";
}, "notify::kbd")
self.hook(audio, () => {
self.hook(audio.microphone, () => {
self.label = audio.microphone.is_muted ? "󰍭" : "󰍬";
}, "notify::volume")
self.hook(audio.microphone, () => {
self.label = audio.microphone.is_muted ? "󰍭" : "󰍬";
}, "notify::is-muted")
self.hook(audio.speaker, () => {
self.label = audio.speaker.is_muted ? "󰝟" : "󰕾";
})
}, "notify::volume")
self.hook(audio.speaker, () => {
self.label = audio.speaker.is_muted ? "󰝟" : "󰕾";
}, "notify::is-muted")
}
})
});

View File

@@ -65,13 +65,20 @@ const renderOSD = () => {
self.hook(brightness, () => {
handleReveal(self, "reveal_child");
}, "notify::kbd")
self.hook(audio.microphone, () => {
handleReveal(self, "reveal_child");
}, "notify::volume")
self.hook(audio.microphone, () => {
handleReveal(self, "reveal_child");
}, "notify::is-muted")
self.hook(audio.speaker, () => {
handleReveal(self, "reveal_child");
}, "notify::volume")
self.hook(audio.speaker, () => {
handleReveal(self, "visible");
handleReveal(self, "reveal_child");
}, "notify::is-muted")
},
child: Widget.Box({
class_name: "osd-container",
@@ -126,12 +133,17 @@ export default () => Widget.Window({
self.hook(brightness, () => {
handleReveal(self, "visible");
}, "notify::kbd")
self.hook(audio.microphone, () => {
handleReveal(self, "visible");
}, "notify::volume")
self.hook(audio.microphone, () => {
handleReveal(self, "visible");
}, "notify::is-muted")
self.hook(audio.speaker, () => {
handleReveal(self, "visible");
}, "notify::volume")
self.hook(audio.speaker, () => {
handleReveal(self, "visible");
}, "notify::is-muted")
},
})

View File

@@ -20,10 +20,14 @@ export const OSDLabel = (ort: OSDOrientation) => {
self.hook(brightness, () => {
self.label = `${Math.round(brightness.kbd * 100)}`;
}, "notify::kbd")
self.hook(audio, () => {
self.hook(audio.microphone, () => {
self.toggleClassName("overflow", audio.microphone.volume > 1)
self.label = `${Math.round(audio.microphone.volume * 100)}`;
}, "notify::volume")
self.hook(audio.speaker, () => {
self.toggleClassName("overflow", audio.speaker.volume > 1)
self.label = `${Math.round(audio.speaker.volume * 100)}`;
})
}, "notify::volume")
}
})
});