added cycle_pactl.sh

(cherry picked from commit 113c31566b)
This commit is contained in:
2025-07-11 06:12:32 +02:00
parent 2a52a22ff3
commit 3440a583a0
2 changed files with 17 additions and 54 deletions

17
bin/cycle_pactl.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
set -e
default_sink=$(pactl info | grep "Default Sink:" | cut '-d ' -f3)
sinks=$(pactl list short sinks | cut -f2)
# for wrap-around
sinks="$sinks
$sinks"
next_sink=$(echo "$sinks" | awk "/$default_sink/{getline x;print x;exit;}")
pactl set-default-sink "$next_sink"
pactl list short sink-inputs | \
cut -f1 | \
xargs -I{} pactl move-sink-input {} "$next_sink"

View File

@@ -1,54 +0,0 @@
import pulsectl
pulse = pulsectl.Pulse('my-client-name')
class my_sink:
name = "Here goes the name of the sink"
index = -1
desc = "Here goes a description"
sink = ""
def __init__(self, sink):
self.name = sink.name
self.index = sink.index
self.desc = sink.description
self.sink = sink
def __str__(self):
return f"\"{self.name}\" with index {self.index} and description: \"{self.desc}\""
def get_sinks():
output_sinks = []
print(pulse.sink_list())
for s in pulse.sink_list():
m = my_sink(s)
output_sinks.append(m)
print(output_sinks)
return output_sinks
def next_sink(output_sinks):
current_sink = pulse.server_info().default_sink_name
position = 0
for s in output_sinks:
if s.name == current_sink:
break
else:
position += 1
if position == len(output_sinks) - 1:
new_output = output_sinks[0]
else:
new_output = output_sinks[position+1]
print(current_sink + " will be switched to " + new_output.name)
pulse.default_set(new_output.sink)
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
next_sink(get_sinks())