#!/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