diff options
| author | srdusr <trevorgray@srdusr.com> | 2025-08-30 19:22:59 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2025-08-30 19:22:59 +0200 |
| commit | 19120d4f9761c67d99ed1ce3da6084b83f5a49c9 (patch) | |
| tree | f234cad1bdad88114a63c9702144da487024967a /.config/xob/manage-volume | |
| parent | 5928998af5404ae2be84c6cecc10ebf84bd3f3ed (diff) | |
| download | dotfiles-19120d4f9761c67d99ed1ce3da6084b83f5a49c9.tar.gz dotfiles-19120d4f9761c67d99ed1ce3da6084b83f5a49c9.zip | |
Linux-specific dotfiles
Diffstat (limited to '.config/xob/manage-volume')
| -rwxr-xr-x | .config/xob/manage-volume | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/.config/xob/manage-volume b/.config/xob/manage-volume deleted file mode 100755 index d05a92f..0000000 --- a/.config/xob/manage-volume +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python3 - -from pulsectl import Pulse, PulseLoopStop -import sys - -with Pulse() as pulse: - while True: - def callback(ev): - if ev.index == sink_index: raise PulseLoopStop - - def current_status(sink): - return round(sink.volume.value_flat * 100), sink.mute == 1 - - def get_default_sink_idx(): - default_sink_name = pulse.server_info().default_sink_name - try: - sink_index = next(index for index,sink in sinks.items() if sink.name == default_sink_name) - return sink_index - except StopIteration: raise StopIteration("No default sink was found.") - - try: - sinks = {s.index:s for s in pulse.sink_list()} - if len(sys.argv) > 1: - # Sink index from command line argument if provided - sink_index = int(sys.argv[1]) - if not sink_index in sinks: - raise KeyError(f"Sink index {sink_index} not found in list of sinks.") - else: - # Automatic determination of default sink otherwise - sink_index = get_default_sink_idx() - - pulse.event_mask_set('sink') - pulse.event_callback_set(callback) - last_value, last_mute = current_status(sinks[sink_index]) - - while True: - pulse.event_listen() - sinks = {s.index:s for s in pulse.sink_list()} - value, mute = current_status(sinks[sink_index]) - if value != last_value or mute != last_mute: - print(str(value) + ('!' if mute else '')) - last_value, last_mute = value, mute - sys.stdout.flush() - - except Exception as e: - print(f"ERROR: {e}", file=sys.stderr) |
