aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/UserScripts
diff options
context:
space:
mode:
authorJaKooLit <jimmielovejay@gmail.com>2024-05-13 01:25:37 +0900
committerJaKooLit <jimmielovejay@gmail.com>2024-05-13 01:25:37 +0900
commit0a59d4b9fd14384c5f726504d363ccd2cb213d09 (patch)
tree16e420d2d65ef8d17c51503b492c1aa9185a0402 /config/hypr/UserScripts
parent74287585507ca3dbd1801554f506f29f418e534b (diff)
updated rofi.beats. initial boot, wallpaper copy.sh in preparation for the upcomming release
Diffstat (limited to 'config/hypr/UserScripts')
-rwxr-xr-xconfig/hypr/UserScripts/RofiBeats.sh52
1 files changed, 29 insertions, 23 deletions
diff --git a/config/hypr/UserScripts/RofiBeats.sh b/config/hypr/UserScripts/RofiBeats.sh
index c6fbb06d..76634a1a 100755
--- a/config/hypr/UserScripts/RofiBeats.sh
+++ b/config/hypr/UserScripts/RofiBeats.sh
@@ -1,18 +1,10 @@
#!/bin/bash
-# Directory for icons
-iDIR="$HOME/.config/swaync/icons"
-
# Directory music folder
-mDIR="$HOME/Music/*"
+mDIR="$HOME/Music/"
-# Local Music
-declare -A local_music
-# Populate the menu_options array with music files from the Music folder
-for file in $mDIR; do
- filename=$(basename "$file")
- local_music["$filename"]="$file"
-done
+# Directory for icons
+iDIR="$HOME/.config/swaync/icons"
# Online Stations
declare -A online_music=(
@@ -30,6 +22,17 @@ 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=()
+ filenames=()
+ while IFS= read -r file; do
+ local_music+=("$file")
+ filenames+=("$(basename "$file")")
+ done < <(find "$mDIR" -type f \( -iname "*.mp3" -o -iname "*.flac" -o -iname "*.wav" -o -iname "*.ogg" \))
+}
+
# Function for displaying notifications
notification() {
notify-send -u normal -i "$iDIR/music.png" "Playing: $@"
@@ -37,26 +40,30 @@ notification() {
# Main function for playing local music
play_local_music() {
+ populate_local_music
+
# Prompt the user to select a song
- choice=$(printf "%s\n" "${!local_music[@]}" | rofi -i -dmenu -config ~/.config/rofi/config-rofi-Beats.rasi -p "Local Music")
+ choice=$(printf "%s\n" "${filenames[@]}" | rofi -i -dmenu -config ~/.config/rofi/config-rofi-Beats.rasi -p "Local Music")
if [ -z "$choice" ]; then
exit 1
fi
- file="${local_music[$choice]}"
+ # Find the corresponding file path based on user's choice
+ for (( i=0; i<"${#filenames[@]}"; i++ )); do
+ if [ "${filenames[$i]}" = "$choice" ]; then
+ file="${local_music[$i]}"
+ break
+ fi
+ done
notification "$choice"
- # Play the selected local music file using mpv and shuffle the rest
- mpv --shuffle --vid=no "$file" && \
- for file in $mDIR; do
- if [ "$file" != "${local_music[$choice]}" ]; then
- mpv --shuffle --vid=no "$file"
- fi
- done
+ # Play the selected local music file using mpv
+ mpv --shuffle --vid=no "$file"
}
+
# 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")
@@ -76,8 +83,8 @@ play_online_music() {
# 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" "Online Music stopped" || {
- # Prompt the user to choose between local and online music
- user_choice=$(printf "Play from Music Folder\nPlay from Online Stations" | rofi -dmenu -config ~/.config/rofi/config-rofi-Beats-menu.rasi -p "Select music source")
+# Prompt the user to choose between local and online music
+user_choice=$(printf "Play from Music Folder\nPlay from Online Stations" | rofi -dmenu -config ~/.config/rofi/config-rofi-Beats-menu.rasi -p "Select music source")
case "$user_choice" in
"Play from Music Folder")
@@ -91,4 +98,3 @@ pkill mpv && notify-send -u low -i "$iDIR/music.png" "Online Music stopped" || {
;;
esac
}
-
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage