diff --git a/hm/desktop/frobar/frobar/providers.py b/hm/desktop/frobar/frobar/providers.py index e0a32f8..c4dca97 100644 --- a/hm/desktop/frobar/frobar/providers.py +++ b/hm/desktop/frobar/frobar/providers.py @@ -274,9 +274,15 @@ class PulseaudioProvider(StatefulSection, ThreadedUpdater): sinks = [] with pulsectl.Pulse("list-sinks") as pulse: for sink in pulse.sink_list(): - if sink.port_active.name == "analog-output-headphones": + if ( + sink.port_active.name == "analog-output-headphones" + or sink.port_active.description == "Headphones" + ): icon = "" - elif sink.port_active.name == "analog-output-speaker": + elif ( + sink.port_active.name == "analog-output-speaker" + or sink.port_active.description == "Speaker" + ): icon = "" if sink.mute else "" elif sink.port_active.name in ("headset-output", "headphone-output"): icon = "" @@ -868,8 +874,7 @@ class MprisProvider(Section, ThreadedUpdater): "{{ playerName }} {{ status }}", "{{ album }}", "{{ artist }}", - "{{ duration(position) }}|{{ duration(mpris:length) }}" - " {{ title }}", + "{{ duration(position) }}|{{ duration(mpris:length) }}" " {{ title }}", ] # nf-fd icons don't work (UTF-16?) @@ -942,3 +947,8 @@ class MprisProvider(Section, ThreadedUpdater): while p.poll() is None: self.line = p.stdout.readline().decode().strip() self.refreshData() + p = subprocess.Popen(cmd, stdout=subprocess.PIPE) + assert p.stdout + while p.poll() is None: + self.line = p.stdout.readline().decode().strip() + self.refreshData() diff --git a/hm/scripts/overpdf b/hm/scripts/overpdf index 32cbcd6..310d8aa 100755 --- a/hm/scripts/overpdf +++ b/hm/scripts/overpdf @@ -1,7 +1,9 @@ #!/usr/bin/env nix-shell -#! nix-shell -i bash --pure +#! nix-shell -i bash #! nix-shell -p bash pdftk inkscape gnused coreutils file +set -euxo pipefail + # Utility to write over a PDF file pages # TODO Inkscape vodoo: Put the original in its own layer and skip when merging