aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/UserScripts
diff options
context:
space:
mode:
authorMarko Pekkola <marko.pekkola@outlook.com>2025-05-09 16:01:15 +0300
committerMarko Pekkola <marko.pekkola@outlook.com>2025-05-09 16:01:15 +0300
commit62c1b8dd31e2273f927e6e1582497b5e16af1273 (patch)
treee5390751389c0703d47e17a4a3b83875ad190f05 /config/hypr/UserScripts
parent3bb47cdec96caf4ecbe2ef79cec1b1aeff18e40a (diff)
feat: Add continuous playback to RofiBeats during choosing next music
desc: - Remove stop_music from start of script - call stop_music after user selections are done - Add "Stop RofiBeats" user choice to allow stopping player (kill mpv) Previously, this could be done by opening RofiBeats. Note: stopping player and music are different. Music can be stopped using global keybinds. These changes keep playing (previous) music until next one is chosen.
Diffstat (limited to 'config/hypr/UserScripts')
-rwxr-xr-xconfig/hypr/UserScripts/RofiBeats.sh61
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
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage