This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/dotfiles/scripts/pulse-sink

35 lines
1.3 KiB
Fish
Executable File

#!/usr/bin/env fish
set opts "Fone\nSpeaker\nHDMI\nPhone"
set out (printf $opts | wdmenu -p "Output: ")
set vol (pamixer --get-volume)
switch "$out"
case Fone
pactl set-card-profile 0 output:analog-stereo+input:analog-stereo
pactl set-default-sink (pactl list sinks short | grep alsa | head -n1 | cut -f2)
pactl set-sink-port @DEFAULT_SINK@ analog-output-headphones
case Speaker
pactl set-card-profile 0 output:analog-stereo+input:analog-stereo
pactl set-default-sink (pactl list sinks short | grep alsa | head -n1 | cut -f2:)
pactl set-sink-port @DEFAULT_SINK@ analog-output-speaker
case HDMI
pactl set-card-profile 0 (
env LC_ALL=C pactl list cards |
string replace -raf '^\s*(output:hdmi-stereo.*?input.*?): .*' '$1' |
head -n1 )
pactl set-default-sink (pactl list sinks short | grep hdmi | head -n1 | cut -f2)
case Phone
pactl unload-module module-null-sink
pactl unload-module module-rtp-send
pactl load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=48000
pactl load-module module-rtp-send source=rtp.monitor destination=192.168.0.169 port=4010 mtu=320
pactl set-default-sink rtp
end
pamixer --set-volume "$vol"
# vim: ft=fish