Files
dotfiles/hypr/scripts/spotify-menu.sh
2025-11-13 23:48:27 +03:00

86 lines
2.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# --- ИКОНКИ (требуется Nerd Font) ---
# Вы можете заменить их на любые другие символы или эмодзи
ICON_PLAY="" # Play
ICON_PAUSE="" # Pause
ICON_NEXT="" # Next
ICON_PREV="" # Previous
ICON_SHUFFLE="" # Shuffle
ICON_REPEAT="" # Repeat
ICON_ARTIST="" # Artist
ICON_TITLE="" # Title (custom icon, could be  for music)
# Проверяем, запущен ли Spotify
if ! playerctl -p spotify status &> /dev/null; then
wofi --show dmenu -p "Spotify" <<< " Spotify не запущен"
exit 1
fi
# --- Получение текущего состояния плеера ---
STATUS=$(playerctl -p spotify status)
SHUFFLE_STATUS=$(playerctl -p spotify shuffle)
LOOP_STATUS=$(playerctl -p spotify loop)
ARTIST=$(playerctl -p spotify metadata artist)
TITLE=$(playerctl -p spotify metadata title)
# --- Формирование пунктов меню ---
# Строка с информацией о треке
INFO="$ICON_ARTIST $ARTIST\n$ICON_TITLE $TITLE"
# Кнопка Play/Pause
if [ "$STATUS" = "Playing" ]; then
PLAY_PAUSE="$ICON_PAUSE Пауза"
else
PLAY_PAUSE="$ICON_PLAY Воспроизвести"
fi
# Кнопка Shuffle
if [ "$SHUFFLE_STATUS" = "On" ]; then
SHUFFLE="[Вкл] $ICON_SHUFFLE Перемешать"
else
SHUFFLE="[Выкл] $ICON_SHUFFLE Перемешать"
fi
# Кнопка Repeat
if [ "$LOOP_STATUS" = "Track" ]; then
REPEAT="[Трек] $ICON_REPEAT Повтор"
elif [ "$LOOP_STATUS" = "Playlist" ]; then
REPEAT="[Плейлист] $ICON_REPEAT Повтор"
else
REPEAT="[Выкл] $ICON_REPEAT Повтор"
fi
# Остальные кнопки
PREV="$ICON_PREV Пред. трек"
NEXT="$ICON_NEXT След. трек"
# --- Отображение меню Wofi ---
# Собираем все опции в одну переменную, разделяя их новой строкой
options="$PLAY_PAUSE\n$PREV\n$NEXT\n$SHUFFLE\n$REPEAT"
# Вызываем Wofi, передавая ему опции и информацию о треке в качестве заголовка
# Используем кастомные файлы конфигурации и стилей
choice=$(echo -e "$options" | wofi --show dmenu -p "$INFO" --conf ~/.config/wofi/spotify/config --style ~/.config/wofi/spotify/style.css)
# --- Обработка выбора пользователя ---
case "$choice" in
"$PLAY_PAUSE")
playerctl -p spotify play-pause
;;
"$PREV")
playerctl -p spotify previous
;;
"$NEXT")
playerctl -p spotify next
;;
"$SHUFFLE")
playerctl -p spotify shuffle Toggle
;;
"$REPEAT")
playerctl -p spotify loop Playlist
;;
esac