Browse Source

Tweaked Rofi Beats

pull/293/head
JaKooLit 2 years ago
parent
commit
8f5c2af4cf
  1. 34
      config/hypr/UserScripts/RofiBeats.sh

34
config/hypr/UserScripts/RofiBeats.sh

@ -1,12 +1,14 @@
#!/bin/bash #!/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/" mDIR="$HOME/Music/"
# Directory for icons # Directory for icons
iDIR="$HOME/.config/swaync/icons" iDIR="$HOME/.config/swaync/icons"
# Online Stations # Online Stations. Edit as required
declare -A online_music=( declare -A online_music=(
["AfroBeatz 2024 🎧"]="https://www.youtube.com/watch?v=7uB-Eh9XVZQ" ["AfroBeatz 2024 🎧"]="https://www.youtube.com/watch?v=7uB-Eh9XVZQ"
["Lofi Girl ☕🎶"]="https://play.streamafrica.net/lofiradio" ["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" ["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 array with files from music directory and subdirectories
populate_local_music() { populate_local_music() {
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 # 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 for (( i=0; i<"${#filenames[@]}"; ++i )); do
if [ "${filenames[$i]}" = "$choice" ]; then if [ "${filenames[$i]}" = "$choice" ]; then
notification "$choice"
notification "$choice"
# For some reason wont start playlist at 0 # For some reason wont start playlist at 0
if [[ $i -eq 0 ]]; then if [[ $i -eq 0 ]]; then
# Play the selected local music file using mpv # Play the selected local music file using mpv
mpv --loop-playlist --vid=no "$mDIR" mpv --loop-playlist --vid=no "$mDIR"
else else
file=$i file=$i
# Play the selected local music file using mpv # Play the selected local music file using mpv
@ -69,6 +71,14 @@ play_local_music() {
done 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 # Main function for playing online music
play_online_music() { play_online_music() {
choice=$(printf "%s\n" "${!online_music[@]}" | rofi -i -dmenu -config ~/.config/rofi/config-rofi-Beats.rasi -p "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" 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 # 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" || { pkill mpv && notify-send -u low -i "$iDIR/music.png" "Music stopped" || {
# Prompt the user to choose between local and online music # 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 case "$user_choice" in
"Play from Music Folder") "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 from Online Stations")
play_online_music play_online_music
;; ;;
"Shuffle from Music Folder") "Shuffle Play from Music Folder")
shuffle_local_music shuffle_local_music
;; ;;
*) *)

Loading…
Cancel
Save