Masz dość aplikacji Spotify na Linuxa? Ten niestandardowy widżet jest rozwiązaniem

Aplikacja Spotify na Linuxa może być problematyczna dla bardziej wymagających użytkowników. W artykule pokażemy, jak stworzyć niestandardowy widżet, który poprawi doświadczenia związane z odtwarzaniem muzyki.
Streamuję muzykę na Spotify tak często jak każdy inny, ale niestety, korzystanie z aplikacji klienckiej na Linuxa nie jest najprzyjemniejszym doświadczeniem. Nie zrozumcie mnie źle; jeśli potrzebujesz tylko podstawowego strumieniowania muzyki, prawdopodobnie nie będziesz miał żadnych skarg. Niestety, gdy Twoje potrzeby wykraczają poza to, szybko zauważysz, że aplikacja Spotify na Linuxa wciąż potrzebuje trochę pracy.
Na początek, jak donieśli niektórzy członkowie społeczności Spotify, aplikacja desktopowa może doświadczać dziwnych błędów, takich jak nierespensywna przycisk zamykania, błędne powiadomienia na pulpicie dla lokalnych plików muzycznych oraz problemy z renderowaniem/tematyką na niektórych dystrybucjach Linuxa. To może być spowodowane tym, że Spotify dla Linuxa nie jest już w aktywnym rozwoju. Innym niefortunnym elementem jest brak oficjalnego widżetu desktopowego "teraz gra". Szczególnie frustruje mnie ten ostatni fakt, ponieważ za każdym razem, gdy potrzebuję wiedzieć, jaka piosenka leci, muszę otwierać aplikację Spotify, co jest dużym rozproszeniem.
Po tym, jak zdenerwowałem się tymi frustracjami, postanowiłem przekształcić Spotify w narzędzie zwiększające produktywność, tworząc zintegrowany z pulpitem, niestandardowy widżet, który daje mi szybki wgląd w aktualnie odtwarzaną piosenkę bez potrzeby otwierania Spotify. W tym samouczku pokażę Ci, jak to zrobić na Twoim systemie Linux.
Jeśli kiedykolwiek zastanawiałeś się, dlaczego Linux to najlepsze miejsce do nauki programowania, to dlatego, że łączenie narzędzi i ich używanie do tworzenia unikalnych aplikacji jest bardzo proste. Do tego projektu będziesz potrzebować trzech podstawowych narzędzi: Playerctl, skryptu Python, który możesz po prostu skopiować i wkleić do swojego ulubionego edytora tekstu w terminalu oraz Conky. Conky tworzy czysty widżet "teraz gra", który wygląda jak część tapety; Playerctl to kontroler, który interpretuje surowe dane wymieniane między odtwarzaczami multimedia jak Spotify a skryptem Python.
Skonfigurujmy te narzędzia oraz folder dla projektu. Na początku użyj poniższych poleceń, aby zainstalować Playerctl.
sudo apt update -y sudo apt install playerctl -y Jeśli używasz Arch lub Fedory, użyj poniższych poleceń:
Fedora: sudo dnf install playerctl Manjaro/Arch: sudo pacman -S playerctlIlustruję na Linux Mint. Jeśli nie zainstalowałeś Spotify i innych narzędzi, użyj menedżera pakietów lub Centrum Oprogramowania, aby je zainstalować, a następnie zaloguj się przy użyciu dowolnej z dostępnych metod. Kod QR jest najłatwiejszym sposobem, jeśli masz Spotify na swoim smartfonie.
Następnym krokiem jest stworzenie "mózgu" projektu, ale zanim to zrobimy, przetestujmy Playerctl, aby upewnić się, że komunikuje się z Spotify i może wyświetlić metadane aktualnie odtwarzanej piosenki. Uruchom Spotify, odpal piosenkę, a następnie wykonaj poniższe polecenie. Jeśli Playerctl skutecznie komunikuje się z Spotify, powinno wydrukować nazwisko artysty i tytuł piosenki.
playerctl -p spotify metadata --format "{{ title }} by {{ artist }}"Zanim przejdziesz dalej, użyj polecenia mkdir, aby stworzyć nowy katalog o nazwie "Projekt widżetu Spotify". Po jego utworzeniu, przejdź do folderu, aby zacząć budować mózg projektu.
mkdir -p ~/"Spotify Widget Project"cd ~/"Spotify Widget Project"A teraz przejdźmy do zabawnej części, na którą prawdopodobnie czekałeś:
Będąc w folderze projektu, użyj swojego ulubionego edytora tekstu w terminalu, aby stworzyć plik Pythona o nazwie spotify_now_playing.py, a następnie skopiuj i wklej skrypt, który zamieściłem poniżej. Ilustruję korzystanie z nano, ponieważ jest przyjazny dla początkujących. Po zapisaniu skryptu użyj polecenia chmod, aby uczynić plik wykonywalnym.
nano spotify_now_playing.py#!/usr/bin/env python3 import subprocess import textwrap import sys def get_prop(prop): try: return subprocess.check_output(["playerctl", "-p", "spotify", "metadata", prop]).decode("utf-8").strip() except: return "" def main(): try: status = subprocess.check_output(["playerctl",-p", "spotify", "status"]).decode("utf-8").strip() except: status = "Offline" # Conky uses the arguments: 'title', 'artist', or 'percent' to call this script arg = sys.argv[1] if len(sys.argv) > 1 else "" if status in ["Playing", "Paused"]: if arg == "title": title = get_prop("title") return textwrap.fill(title, width=22) elif arg == "artist": return get_prop("artist") elif arg == "percent": try: pos = float(subprocess.getoutput("playerctl -p spotify position")) length = float(get_prop("mpris:length")) / 1000000 return str(int((pos / length) * 100)) except: return "0" else: return "Spotify Offline" if arg == "title" else "" if __name__ == "__main__": print(main())
chmod +x spotify_now_playing.pyW edytorze nano użyj kombinacji Ctrl + O + Enter, aby zapisać skrypt, a następnie Ctrl + X, aby opuścić edytor.
Conky to najlepszy sposób na tworzenie i wyświetlanie widgetów pulpitu, które wyglądają jak naturalna część tapety. Jeśli jeszcze tego nie zrobiłeś, zainstaluj Conky przy użyciu menedżera pakietów swojej dystrybucji.
Linux Mint/Ubuntu: sudo apt install conky-all -y Fedora: sudo dnf install conky Arch/Manjaro: sudo pacman -S conkyNastępnie wróć do folderu projektu (jeśli z niego wyszedłeś) i użyj terminalowego edytora tekstu, aby utworzyć plik konfiguracyjny o nazwie spotify-widget.conkyrc. Na koniec skopiuj i wklej poniższy skrypt do tego pliku.
nano ~/"Spotify Widget Project/spotify-widget.conkyrc"conky.config = { alignment = 'middle_right', gap_x = 40, gap_y = 60, own_window = true, own_window_type = 'desktop', own_window_transparent = false, own_window_argb_visual = true, own_window_argb_value = 100, own_window_colour = '#1DB954', -- Spotify Green own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', minimum_width = 280, minimum_height = 140, border_inner_margin = 25, use_xft = true, font = 'Ubuntu:bold:size=10', double_buffer = true, update_interval = 1.0, default_bar_height = 5, } conky.text = [[ # 1. Ustawienia tytułu utworu ${font Ubuntu:bold:size=16}${execi 2 python3 "/home/htg/Spotify Widget Project/spotify_now_playing.py" title}${font} # 2. Ustawienia artysty z przesunięciem pionowym ${voffset 5}${color #E0E0E0}by ${execi 2 python3 "/home/htg/Spotify Widget Project/spotify_now_playing.py" artist}${color} # 3. Ustawienia paska postępu ${voffset 15}${execbar echo $(python3 "/home/htg/Spotify Widget Project/spotify_now_playing.py" percent)} # 4. Ustawienia stopki ${voffset 10}${font DejaVu Sans:size=9}O_O Widget Pulpitowy Spotify Teraz Gra${font} ]]Po zapisaniu pliku konfiguracyjnego użyj poniższego polecenia, aby przetestować, czy połączenie między Playerctl, mózgiem Pythona a widgetem pulpitu Conky działa poprawnie. Jeśli skonfigurowałeś wszystko poprawnie, na pulpicie powinien pojawić się widget informujący o aktualnie odtwarzanym utworze.
conky -c ~/"Spotify Widget Project/spotify-widget.conkyrc"Na GNOME i w kilku innych środowiskach pulpitowych kliknięcie na pulpit może spowodować zniknięcie widgetu. Jeśli doświadczysz tego problemu, edytuj plik conkyrc i zmień own_window_type = 'desktop' na 'normal.'
Krok 4: Włącz opóźnione uruchamianie przy rozruchu
Ostatnim krokiem jest ustawienie widgetu tak, aby uruchamiał się za każdym razem, gdy komputer się uruchamia. Aby to zrobić na Linux Mint, Ubuntu lub Fedora, przejdź do menu aplikacji, wyszukaj Aplikacje uruchamiane przy starcie i otwórz je. Użyj przycisków, aby dodać nowy wpis niestandardowego polecenia, wypełnij szczegóły, skopiuj i wklej poniższe polecenie, a następnie zapisz/zamknij. -p 30 dodaje 30-sekundowe opóźnienie, które pozwala najpierw załadować tapetę.
conky -p 30 -c "/home/htg/Spotify Widget Project/spotify-widget.conkyrc"Alternatywnie, możesz utworzyć plik .desktop, który na pewno zadziała z każdą dystrybucją. Użyj terminalowego edytora tekstu, aby utworzyć plik, skopiować i wkleić te ustawienia konfiguracyjne, zapisać i zamknąć.
nano ~/.config/autostart/spotify-widget.desktop[Desktop Entry] Type=Application Exec=conky -p 30 -c "/home/htg/Spotify Widget Project/spotify-widget.conkyrc" Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name=SpotifyWidget Komentarz=Teraz odtwarzany widget desktopowy Spotify dla systemu Linux
Oprócz tego, że jest to szybki i zabawny projekt na weekend, widget desktopowy Spotify dla systemu Linux, który właśnie stworzyłeś, może dodać godziny produktywności do Twojego dnia. Pomyśl o tym: jak dużo bardziej produktywny możesz być, gdy nie musisz otwierać Spotify, aby znać tytuł aktualnie odtwarzanej piosenki? Zaczynaj odnawiać swój pulpit Linux już dziś!
Jeśli ciekawią Cię artykuły podobne do Masz dość aplikacji Spotify na Linuxa? Ten niestandardowy widżet jest rozwiązaniem, zajrzyj do kategorii Linux i odkryj jeszcze więcej interesujących treści.
Dodaj komentarz

Możesz być zainteresowany