<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Joel Town Road</title>
    <description>The latest articles on DEV Community by Joel Town Road (@hippi345).</description>
    <link>https://dev.to/hippi345</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1251159%2F290d1cc5-76a1-43db-92d1-1396e31fe4fa.jpeg</url>
      <title>DEV Community: Joel Town Road</title>
      <link>https://dev.to/hippi345</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hippi345"/>
    <language>en</language>
    <item>
      <title>I made my desktop wallpaper a frosted-glass "now playing" tile for Spotify</title>
      <dc:creator>Joel Town Road</dc:creator>
      <pubDate>Thu, 12 Nov 2026 06:53:52 +0000</pubDate>
      <link>https://dev.to/hippi345/i-made-my-desktop-wallpaper-a-frosted-glass-now-playing-tile-for-spotify-30lf</link>
      <guid>https://dev.to/hippi345/i-made-my-desktop-wallpaper-a-frosted-glass-now-playing-tile-for-spotify-30lf</guid>
      <description>&lt;p&gt;I built a little open-source app for myself, and I have been really enjoying it, so I wanted to write down how it came together.&lt;/p&gt;

&lt;p&gt;It is called nowPlayingDesktops. When something is playing on Spotify, your actual desktop wallpaper becomes a frosted-glass now-playing view: a blurred album-art backdrop, a glass panel, the cover, and the track and artist. It is the wallpaper itself, not a floating window, so it sits behind your icons and is still there when the desktop is idle or on the screensaver. Pause or quit, and your original wallpaper comes back.&lt;/p&gt;

&lt;p&gt;I did not want another always-on-top widget. I wanted the now-playing view to feel like part of the desktop. The app composes that frame and then sets it through the normal wallpaper APIs — Windows (including multi-monitor when it can), macOS, and Linux (GNOME, KDE, XFCE, or feh/swaybg/nitrogen).&lt;/p&gt;

&lt;p&gt;There are two ways to learn what is playing. Local mode reads the OS media session on this machine, which is enough if the Spotify desktop app is running here. On Linux, other MPRIS players may work too. If you want it to follow playback on your phone or another device, there is an optional Spotify Web API mode that needs a one-time Developer Dashboard login. I use local mode most of the time.&lt;/p&gt;

&lt;p&gt;I also cared about leaving the desktop alone when music stops, and about not turning this into a tracker. There is no analytics. It just looks for what is playing and updates the wallpaper. By default, local mode may ask Apple's public iTunes Search API for a sharper cover when the system thumbnail is small; you can turn that off with &lt;code&gt;--no-online-art&lt;/code&gt; if you want it fully offline.&lt;/p&gt;

&lt;p&gt;I built this mostly in Cursor, as a lot of small pull requests: the glass compose path, the Windows/macOS/Linux wallpaper backends, packaging, and the two playback sources. I kept steering it back toward a quiet wallpaper tile instead of a mini player. It is still a work in progress — I am iterating on how it looks and how reliable the apply/restore path is — but I use it every day and it still makes me smile when the art changes.&lt;/p&gt;

&lt;p&gt;If you want to try it:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pipx install now-playing-desktops &amp;amp;&amp;amp; now-playing run --source local
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Windows users can also grab &lt;code&gt;now-playing-windows.exe&lt;/code&gt; from the Releases page. The repo is &lt;a href="https://github.com/hippi345/nowPlayingDesktops" rel="noopener noreferrer"&gt;https://github.com/hippi345/nowPlayingDesktops&lt;/a&gt; (MIT). Testers, issues, and PRs are welcome, but mostly I just wanted to share it in case someone else enjoys it too.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>spotify</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
