diff options
| author | Ja.KooLit <85185940+JaKooLit@users.noreply.github.com> | 2025-05-20 15:46:50 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-20 15:46:50 +0000 |
| commit | 6b7faa119f969e76198307abe765a68625350ba6 (patch) | |
| tree | ff5c72438c6e6a27e13023e0db9de414204097d9 /config/hypr/UserScripts | |
| parent | c14722aa5ecce0783b82945646ffde87413caceb (diff) | |
| parent | 62c1b8dd31e2273f927e6e1582497b5e16af1273 (diff) | |
Merge pull request #691 from Mtp81/rofibeats-continuous-playback
feat: Add continuous playback to RofiBeats during choosing next music
Diffstat (limited to 'config/hypr/UserScripts')
| -rwxr-xr-x | config/hypr/UserScripts/RofiBeats.sh | 61 |
1 files changed, 40 insertions, 21 deletions
diff --git a/config/hypr/UserScripts/RofiBeats.sh b/config/hypr/UserScripts/RofiBeats.sh index 781e9f64..1cddce09 100755 --- a/config/hypr/UserScripts/RofiBeats.sh +++ b/config/hypr/UserScripts/RofiBeats.sh @@ -58,7 +58,10 @@ 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 - + + if music_playing; then + stop_music + fi notification "$choice" mpv --playlist-start="$i" --loop-playlist --vid=no "${local_music[@]}" @@ -69,6 +72,9 @@ play_local_music() { # Main function for shuffling local music shuffle_local_music() { + if music_playing; then + stop_music + fi notification "Shuffle Play local music" # Play music in $mDIR on shuffle @@ -87,12 +93,20 @@ play_online_music() { link="${online_music[$choice]}" + if music_playing; then + stop_music + fi notification "$choice" # Play the selected online music using mpv mpv --shuffle --vid=no "$link" } +# Function to check if music is already playing +music_playing() { + pgrep -x "mpv" > /dev/null +} + # Function to stop music and kill mpv processes stop_music() { mpv_pids=$(pgrep -x mpv) @@ -110,25 +124,30 @@ stop_music() { fi } -# Check if music is already playing -if pgrep -x "mpv" > /dev/null; then - stop_music -else - user_choice=$(printf "Play from Online Stations\nPlay from Music directory\nShuffle Play from Music directory" | rofi -dmenu -config $rofi_theme_1) +user_choice=$(printf "%s\n" \ + "Play from Online Stations" \ + "Play from Music directory" \ + "Shuffle Play from Music directory" \ + "Stop RofiBeats" \ + | rofi -dmenu -config $rofi_theme_1) - echo "User choice: $user_choice" +echo "User choice: $user_choice" - case "$user_choice" in - "Play from Music directory") - play_local_music - ;; - "Play from Online Stations") - play_online_music - ;; - "Shuffle Play from Music directory") - shuffle_local_music - ;; - *) - ;; - esac -fi
\ No newline at end of file +case "$user_choice" in + "Play from Online Stations") + play_online_music + ;; + "Play from Music directory") + play_local_music + ;; + "Shuffle Play from Music directory") + shuffle_local_music + ;; + "Stop RofiBeats") + if music_playing; then + stop_music + fi + ;; + *) + ;; +esac |
