From fc678f176677acab3f751e10366e97e26f4f2b17 Mon Sep 17 00:00:00 2001 From: elenapan Date: Tue, 1 Apr 2025 16:50:14 +0300 Subject: [PATCH] media: Optionally use rofi to save the current song in the chosen playlist --- config/eww/scripts/do-sidebar-keybind | 1 + config/eww/scripts/media-add-to-favorites.sh | 19 +++++++++++++++---- config/eww/windows/sidebar.yuck | 3 ++- config/sway/eww | 1 + 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/config/eww/scripts/do-sidebar-keybind b/config/eww/scripts/do-sidebar-keybind index e58da83..1142e39 100755 --- a/config/eww/scripts/do-sidebar-keybind +++ b/config/eww/scripts/do-sidebar-keybind @@ -42,6 +42,7 @@ case "$eww_sidebar_page" in declare -A keybinds=( ["q"]="$eww/playerctl-current stop" ["f"]="$eww/media-add-to-favorites.sh" + ["F"]="$eww/media-add-to-favorites.sh select-playlist" ["space"]="$eww/playerctl-current play-pause" ["p"]="playerctl -a pause" ["slash"]="$eww/rofi-playerctl-switch.sh" diff --git a/config/eww/scripts/media-add-to-favorites.sh b/config/eww/scripts/media-add-to-favorites.sh index 3057b26..303aae4 100755 --- a/config/eww/scripts/media-add-to-favorites.sh +++ b/config/eww/scripts/media-add-to-favorites.sh @@ -1,7 +1,18 @@ #!/usr/bin/env bash -# This script assumes you are saving your favorite songs in a text file like a +# This script assumes you are saving your favorite songs in text files like a # caveman. -favorites_file="$HOME/mus/playlists/songs" +rofi="$HOME/.config/eww/scripts/rofi-with-mode-restore sidebar" +playlists_dir="$HOME/mus/playlists" +if [ "$1" == "select-playlist" ]; then + selected="$(find "$playlists_dir" -mindepth 1 -type f -exec basename {} \; | $rofi -dmenu -p "Select playlist to save to >")" + if [[ "$selected" == "" ]]; then + exit 1 + fi +else + selected="songs" +fi + +full_path="$playlists_dir/$selected" # Get current media information displayed in eww eww_media_json="$(eww get media-json)" @@ -9,6 +20,6 @@ artist="$(jq -r '.artist' <<< "$eww_media_json")" title="$(jq -r '.title' <<< "$eww_media_json")" line="${artist} - ${title}" -echo "$line" >> "$favorites_file" +echo "$line" >> "$full_path" -notify-send.sh -u low -R /tmp/eww-media-favorites-notif "Added to favorites" "$line" +notify-send.sh -u low -R /tmp/eww-media-favorites-notif "Added to $selected playlist" "$line" diff --git a/config/eww/windows/sidebar.yuck b/config/eww/windows/sidebar.yuck index acab19b..4ea8045 100644 --- a/config/eww/windows/sidebar.yuck +++ b/config/eww/windows/sidebar.yuck @@ -377,7 +377,8 @@ (box :class "container gameboy-a" (eventbox :cursor "hand2" - :onclick "${eww-scripts}/media-add-to-favorites.sh" + :onclick "${eww-scripts}/media-add-to-favorites.sh &" + :onrightclick "${eww-scripts}/media-add-to-favorites.sh select-playlist &" (box :class "button favorite" :valign "center" (box :class "symbol" "๎กพ"))))))))) diff --git a/config/sway/eww b/config/sway/eww index 9dba033..5ee60ed 100644 --- a/config/sway/eww +++ b/config/sway/eww @@ -80,6 +80,7 @@ mode "_sidebar" { o exec "$eww/do-sidebar-keybind o" q exec "$eww/do-sidebar-keybind q" f exec "$eww/do-sidebar-keybind f" + Shift+f exec "$eww/do-sidebar-keybind F" m exec "$eww/do-sidebar-keybind m" v exec "$eww/do-sidebar-keybind v"