fuzzel audio chooser script
This commit is contained in:
parent
b82a89aa97
commit
f2af11c597
4 changed files with 52 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
|||
font=monospace 14
|
||||
default-timeout=30000
|
||||
anchor=bottom-right
|
||||
|
||||
# Colors
|
||||
|
||||
|
|
48
scripts/choose-audio
Executable file
48
scripts/choose-audio
Executable file
|
@ -0,0 +1,48 @@
|
|||
#!/usr/bin/env bash
|
||||
SELF="$(dirname "$0")/$(basename "$0")"
|
||||
LANG="en_US.utf8"
|
||||
# Outputs have spaces in them, so let's make \n the IFS
|
||||
IFS=$'\n'
|
||||
|
||||
# Make script independent on particular implementation of send client
|
||||
if command -v notify-send > /dev/null 2>&1; then
|
||||
SEND="notify-send"
|
||||
elif command -v dunstify > /dev/null 2>&1; then
|
||||
SEND="dunstify"
|
||||
else
|
||||
SEND="/bin/false"
|
||||
fi
|
||||
|
||||
# An option was passed, so let's check it
|
||||
if [ "$@" ]
|
||||
then
|
||||
if [ "$1" = "-select" ]; then
|
||||
choice="$("$SELF" | fuzzel --dmenu)"
|
||||
if [ -n "$choice" ]; then
|
||||
"$SELF" "$choice"
|
||||
fi
|
||||
else
|
||||
# the output from the selection will be the desciption. Save that for alerts
|
||||
desc="$*"
|
||||
# Figure out what the device name is based on the description passed
|
||||
device=$(pactl list sinks|grep -C2 -F "Description: $desc"|grep Name|cut -d: -f2|xargs)
|
||||
# Try to set the default to the device chosen
|
||||
if pactl set-default-sink "$device"
|
||||
then
|
||||
# if it worked, alert the user
|
||||
$SEND -t 2000 -r 2 -u low "Activated: $desc"
|
||||
else
|
||||
# didn't work, critically alert the user
|
||||
$SEND -t 2000 -r 2 -u critical "Error activating $desc"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
#echo -en "\x00prompt\x1fSelect Output\n"
|
||||
# Get the list of outputs based on the description, which is what makes sense to a human
|
||||
# and is what we want to show in the menu
|
||||
for x in $(pactl list sinks | grep -ie "description:"|cut -d: -f2|sort)
|
||||
do
|
||||
# outputs with cut may have spaces, so use empty xargs to remove them, and output that to the rofi list
|
||||
echo "$x"|xargs
|
||||
done
|
||||
fi
|
|
@ -48,3 +48,4 @@ bindsym XF86AudioPlay exec playerctl play-pause
|
|||
|
||||
bindsym Print exec grim -g "$(slurp)" - | swappy -f -
|
||||
bindsym $mod+c exec clipman pick --tool=CUSTOM --tool-args="fuzzel -d"
|
||||
bindsym $mod+a exec /home/rudism/skynet/scripts/choose-audio -select
|
||||
|
|
|
@ -17,12 +17,13 @@ hash -d c=/mnt/constantmown
|
|||
alias nasavpn='/home/rudism/src/nasavpn/nasavpn'
|
||||
alias dockerrm='docker stop $(docker ps -aq); docker rm $(docker ps -aq); docker system prune -f'
|
||||
alias webcamfix='sudo modprobe v4l2loopback devices=1 video_nr=9 card_label=VirtualCam exclusive_caps=1 && ffmpeg -f video4linux2 -framerate 25 -video_size 1280x720 -input_format mjpeg -i /dev/video0 -f v4l2 -pix_fmt yuv420p /dev/video9; sudo rmmod v4l2loopback'
|
||||
alias syncmusic='rsync -av --size-only --ignore-times --no-perms --no-owner --no-group --delete /mnt/agrajag/music/ /mnt/usb/Music'
|
||||
alias syncmusic='rsync -av --size-only --times --no-perms --no-owner --no-group --delete /mnt/agrajag/music/ /mnt/usb/Music'
|
||||
alias watchsync='watch -d grep -e Dirty: -e Writeback: /proc/meminfo'
|
||||
alias localai='COMPOSE_FILE=~/.local/share/local-ai/docker-compose.yaml docker compose up -d --force-recreate'
|
||||
alias win='dbus-run-session sway --unsupported-gpu'
|
||||
alias transcrilium='/home/rudism/src/transcrilium/transcrilium /mnt/usb/PRIVATE/SONY/REC_FILE/Voice\ Notes01'
|
||||
alias clearb="printf '\033[2J\033[3J\033[1;1H'"
|
||||
alias airplay="pactl unload-module module-raop-discover; pactl load-module module-raop-discover"
|
||||
|
||||
# llm aliases that use aichat
|
||||
if command -v aichat >/dev/null; then
|
||||
|
|
Loading…
Reference in a new issue