diff --git a/config/hypr/UserScripts/RofiBeats.sh b/config/hypr/UserScripts/RofiBeats.sh index 04af722..7fed687 100755 --- a/config/hypr/UserScripts/RofiBeats.sh +++ b/config/hypr/UserScripts/RofiBeats.sh @@ -1,12 +1,14 @@ #!/bin/bash +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## +# For Rofi Beats to play online Music or Locally save media files -# Directory music folder +# Directory local music folder mDIR="$HOME/Music/" # Directory for icons iDIR="$HOME/.config/swaync/icons" -# Online Stations +# Online Stations. Edit as required declare -A online_music=( ["AfroBeatz 2024 🎧"]="https://www.youtube.com/watch?v=7uB-Eh9XVZQ" ["Lofi Girl ☕️🎶"]="https://play.streamafrica.net/lofiradio" @@ -22,7 +24,6 @@ declare -A online_music=( ["Korean Drama OST 📻🎶"]="https://youtube.com/playlist?list=PLUge_o9AIFp4HuA-A3e3ZqENh63LuRRlQ" ) -# Local Music # Populate local_music array with files from music directory and subdirectories populate_local_music() { local_music=() @@ -52,13 +53,14 @@ play_local_music() { # Find the corresponding file path based on user's choice and set that to play the song then continue on the list for (( i=0; i<"${#filenames[@]}"; ++i )); do if [ "${filenames[$i]}" = "$choice" ]; then + + notification "$choice" - notification "$choice" # For some reason wont start playlist at 0 if [[ $i -eq 0 ]]; then # Play the selected local music file using mpv - mpv --loop-playlist --vid=no "$mDIR" - + mpv --loop-playlist --vid=no "$mDIR" + else file=$i # Play the selected local music file using mpv @@ -69,6 +71,14 @@ play_local_music() { done } +# Main function for shuffling local music +shuffle_local_music() { + notification "Shuffle local music" + + # Play music in $mDIR on shuffle + mpv --shuffle --loop-playlist --vid=no "$mDIR" +} + # Main function for playing online music play_online_music() { choice=$(printf "%s\n" "${!online_music[@]}" | rofi -i -dmenu -config ~/.config/rofi/config-rofi-Beats.rasi -p "Online Music") @@ -85,19 +95,11 @@ play_online_music() { mpv --shuffle --vid=no "$link" } -# Main function for shuffling local music -shuffle_local_music() { - notification "Shuffle local music" - - # Play music in $mDIR on shuffle - mpv --shuffle --loop-playlist --vid=no "$mDIR" -} - # Check if an online music process is running and send a notification, otherwise run the main function pkill mpv && notify-send -u low -i "$iDIR/music.png" "Music stopped" || { # Prompt the user to choose between local and online music -user_choice=$(printf "Play from Online Stations\nPlay from Music Folder\nShuffle from Music Folder" | rofi -dmenu -config ~/.config/rofi/config-rofi-Beats-menu.rasi -p "Select music source") +user_choice=$(printf "Play from Online Stations\nPlay from Music Folder\nShuffle Play from Music Folder" | rofi -dmenu -config ~/.config/rofi/config-rofi-Beats-menu.rasi -p "Select music source") case "$user_choice" in "Play from Music Folder") @@ -106,7 +108,7 @@ user_choice=$(printf "Play from Online Stations\nPlay from Music Folder\nShuffle "Play from Online Stations") play_online_music ;; - "Shuffle from Music Folder") + "Shuffle Play from Music Folder") shuffle_local_music ;; *)