initial dotfiles
This commit is contained in:
commit
45e5fe53d2
370 changed files with 25449 additions and 0 deletions
51
.config/scripts/rofi-menus/audio-manager.sh
Normal file
51
.config/scripts/rofi-menus/audio-manager.sh
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Audio Output Management (Rofi-based)
|
||||
# Dependencies: libpulse (pactl), rofi
|
||||
|
||||
get_volume() {
|
||||
pactl get-sink-volume @DEFAULT_SINK@ | grep -Po '[0-9]+(?=%)' | head -n 1
|
||||
}
|
||||
|
||||
manage_sinks() {
|
||||
# Get list of sinks and their descriptions
|
||||
local sinks=$(pactl list short sinks | awk '{print $2}')
|
||||
local sink_descriptions=""
|
||||
|
||||
while read -r line; do
|
||||
local desc=$(pactl list sinks | grep -A 20 "Name: $line" | grep "Description:" | cut -d: -f2- | xargs)
|
||||
sink_descriptions+="$desc|$line\n"
|
||||
done <<< "$sinks"
|
||||
|
||||
local chosen=$(echo -e "$sink_descriptions" | column -t -s '|' | rofi -dmenu -i -p "Select Audio Output: ")
|
||||
|
||||
if [ -n "$chosen" ]; then
|
||||
local sink_name=$(echo "$chosen" | awk '{print $NF}')
|
||||
pactl set-default-sink "$sink_name"
|
||||
notify-send "Audio" "Output switched to: $sink_name"
|
||||
fi
|
||||
}
|
||||
|
||||
change_volume() {
|
||||
local action=$(echo -e " Increase (+10%)\n Decrease (-10%)\n Mute/Unmute" | rofi -dmenu -p "Volume: $(get_volume)%")
|
||||
|
||||
case $action in
|
||||
*"Increase"*) pactl set-sink-volume @DEFAULT_SINK@ +10% ;;
|
||||
*"Decrease"*) pactl set-sink-volume @DEFAULT_SINK@ -10% ;;
|
||||
*"Mute"*) pactl set-sink-mute @DEFAULT_SINK@ toggle ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Main Menu
|
||||
chosen=$(echo -e " Switch Output\n Adjust Volume\n Manage Inputs (Microphone)" | rofi -dmenu -p "Audio Management: ")
|
||||
|
||||
case $chosen in
|
||||
*"Output"*) manage_sinks ;;
|
||||
*"Volume"*) change_volume ;;
|
||||
*"Inputs"*)
|
||||
# Logic for inputs is identical to sinks, just swap 'sink' with 'source'
|
||||
sources=$(pactl list short sources | awk '{print $2}')
|
||||
chosen_source=$(echo -e "$sources" | rofi -dmenu -p "Select Input: ")
|
||||
[ -n "$chosen_source" ] && pactl set-default-source "$chosen_source"
|
||||
;;
|
||||
esac
|
||||
Loading…
Add table
Add a link
Reference in a new issue