[PLUGIN] Glass - Phoenix risen from the PeppyMeter Screensaver ashes

Hey @Lee.Yan,

Two questions, two answers, and one mix-up to untangle first: there are two different glass-evo files, for two different machines.

  • glass-evo-0.2.0.zip is the component for the player, Volumio itself. That is the one you downloaded.
  • glass-evo-0.2.0-windows-x64.zip is the remote for your Windows machine: the bundle, Glass’s remote with the Glass interface in it.
  1. Does the player need glass-evo for the glass-evo remote?
    The remote draws the face itself; it brings the look from the player. What it shows is set on the remote’s own settings page, under “This remote shows”:
  • “the Glass interface while glass-evo holds the player’s screen” (as installed): the face only while glass-evo holds the player’s screen. That needs glass-evo installed on the player and on its screen. Otherwise you see the theme alone.
  • “the Glass interface always”: the face whoever holds the player’s screen.
  • “the theme alone”: the same as the standalone remote.
    The player needs Glass 0.8.20 or later either way.
    To install the remote on Windows: unpack glass-evo-0.2.0-windows-x64.zip whole, then in PowerShell:

powershell -ExecutionPolicy Bypass -File glass-evo-0.2.0-windows-x64\remote\windows\install.ps1

It takes the standalone’s place under the same Start menu entries, and your settings stay.

  1. Installing glass-evo on the player by hand
    No. The component is installed only from the Manager’s System tab, “Get glass-evo”. The Manager downloads it from GitHub and checks it against the release’s checksum before installing. A zip on your PC cannot go that way.
    The good news for a slow line: since Glass 0.8.62, a download that breaks is tried again by itself rather than giving up. If it still fails, that is a report for post 80, with the log, and we will see where the line breaks.

The details:

Kind Regards,

I know how to install the glass-evo-remote on Windows. I just want to confirm whether the remote control program needs to be used in conjunction with Glass-evo on the player.
so that I can troubleshoot the current issue.
So, am I correct in understanding that the Glass-evo on the player and Glass-evo-remote are independent of each other?

The Most Beautiful Template Ever

October 2026.

I had one simple task:

“Can you make the best high res template for Glass?”

Most people would download a few images and finish in 20 minutes.
I decided that was unacceptable.

First, I upgraded my PC to 192 CPU cores, 8 high-end GPUs, and enough RAM to cache the entire internet twice.

Then I announced:

“We’re doing this properly.”

Every part in the template was rebuilt in 3D.

Then in 4D, because I convinced myself that true beauty requires rendering across space and time.

The computer rendered for 17 straight hours.
The fans sounded like a Boeing preparing for departure.

At one point, my electricity provider sent me a thank-you card for single-handedly boosting quarterly revenue.

Finally, the template opened.

A boy in a blue hat appeared.
Then a kid in a green ushanka.
Then a chubby kid with suspiciously high confidence appeared, complete with cinematic lighting, ray tracing, volumetric fog, and enough polygons to render a small moon.

Everyone sat in silence.

The GPUs got louder.
One of them briefly disconnected from reality.
And just like that, I started Render #247 for a change of exactly two pixels.

The template was perfect.

But everyone agreed it was the most computationally expensive children’s cartoon-inspired template ever created. :laughing:

Summary

2 Likes

Hey @Lee.Yan

Yes, independent, with one switch to know about.

The glass-evo remote on Windows draws the Glass interface itself. It does not need glass-evo installed on the player. What it does need from the player is Glass: 0.8.20 or later, with “Serve remote displays” on in the Remotes tab. That is where the meters, the theme, the fonts and the icons come from, exactly as for the standalone remote.

The one link between the two is the remote’s own setting, “This remote shows”, on its settings page:

  • “the Glass interface while glass-evo holds the player’s screen” (as installed): shows the interface only while glass-evo holds the player’s screen. Without glass-evo on the player that is never, so you see the theme alone, which looks like nothing happened.
  • “the Glass interface always”: the interface whatever the player does. Without glass-evo on the player, it uses its built-in look.
  • “the theme alone”: the same as the standalone remote.

The look follows the player’s Screen tab only where glass-evo is on the player; otherwise it is the built-in look.

For your troubleshooting: set “the Glass interface always”. Then the player’s glass-evo is out of the picture, and whatever remains - meters not moving, fonts - is between the remote and Glass on the player. For that, the report per post 80 or the full story per post 2, as before.

All of the above is written in the wiki pages, detailed.

Kind Regards,

CD Touch 1920x1080

You know the 20 minutes was just a joke, with zero reference to anyone. :slight_smile:

As the creators of South park didn’t want anything perfect but just “oh well” it’s OK. So the complete post is over the top…

1 Like

About Glass Update

Neither the VU meter nor the spectrum analyzer is working correctly. I had originally looked for the toggle switch in the plugin’s settings page, not realizing it was located in the manager.

There is a display issue with the fonts in the remote interface; I selected the desired fonts under Glass-Manager-Appearance-Fonts, but the changes had no effect.

In Player

Glass-Manager-Update: Regarding the network issues I mentioned earlier, the update package failed to download even after a long wait.
Could you add an option to the update interface to perform the upgrade using a locally downloaded archive file?

Regarding “Get glass-evo”: Is it also possible to upload a locally downloaded archive?

@nerd

What an incredible and poetic release update! 91 releases in 8 days is truly a historic surgery for the community.

I’ve updated to the latest Glass 0.9.5 and glass-evo 0.2.4, and everything is running wonderfully on my setup! The weather forecast looks fantastic, and the screen fade/timeout feature works like a charm for my 5.5" AMOLED screen.

Huge thanks and respect to @nerd, @Gelo5, @Wheaten, and the whole team for your incredible dedication.

By the way, I noticed a minor issue with Portrait (vertical) custom background images:

  • Images without EXIF metadata: Display normally according to the default orientation on both preview and Glass screens.
  • Images with EXIF metadata (e.g., vertical phone photos): The small preview in settings displays normally, but on the actual Glass/Face screens, the EXIF Orientation data seems to trigger an unexpected/incorrect rotation, displaying the image rotated 90 degrees (Landscape / sideways).
  • Possible Cause: It seems the Glass/Face rendering engine handles EXIF orientation differently from the Web UI preview, resulting in an unintended rotation when EXIF tags are present.

Could you take a look at how EXIF orientation data is processed on Glass screens when you get a chance?

Thanks again, and please get some well-deserved rest, surgeons!

Hi everyone,

I created a quick, simplified guide on choosing the right Glass Interface & Control Modes based on your setup. Hope this helps anyone configuring their display!

:open_book: Glass Interface & Control Modes Guide

Choose the setting that best fits your setup:

1. Full Control on Both Local Screen & FACE / Anyremote

  • **Use Case: You want full playback controls (volume, next track, etc.) directly on your primary touchscreen (e.g., Pi 5 display) without interrupting the Theme Show display. When the player is idle or paused, the primary screen can also display the clock and weather forecast.
  • Setup:
    1. Install glass-evo.
    2. Enable “Use glass-evo on the screen”.
    3. Under “The Face tab and Anyremote show”, select:
    • the Glass interface while glass-evo holds the player's screen

2. Control Interface on FACE / Anyremote Only

  • Use Case: You only need UI controls on the web/mobile FACE interface, and do not need local screen UI integration.
  • Setup:
    1. No need to install glass-evo.
    2. Under “The Face tab and Anyremote show”, select:
    • the Glass interface, always

3. Minimal / Display-Only Mode (For FACE & Remote Displays)

  • Use Case: You want a clean display of the theme (album artwork, meters, track info) on the FACE interface and Remote displays, completely hiding Glass’s built-in UI control overlay (buttons, menus, etc.).

Note: This setting only removes Glass’s own built-in UI controls. If a specific theme has built-in interactive control icons defined within the theme itself, those will still function as designed by the theme author.

  • Setup:
    • Under “The Face tab and Anyremote show”, select:
      • the theme alone

Please note: This guide is based on my own testing. If there are any mistakes or if you have additional insights, please feel free to correct or add to it!

1 Like

Hey @Lee.Yan

Pictures of a screen show that something is wrong. They do not show why. A report does.

Glass 0.9.15 and glass-evo 0.2.15 are on public releases now, and comes to everyone once it has been tried. It gives the remote the same diagnosis the player has, aimed at exactly your two symptoms. On the remote’s own settings page:

  • Connection: every path to the player tested from the remote’s side, with a sticker for each: green works, orange fails. The frames path, which is what moves the needles and the bars, is checked from both ends: the player sends probes and the remote says whether they arrived. If something is blocked, it names the side and prints the firewall rules for this remote. The remote now takes frames on one fixed port, 5585, so a rule can name it.
  • Assets: what the theme on show needs, each item marked as brought from the player, failed (with the reason), or missing on the player. The fonts are in this list.
  • Report: one line on what you did and what you saw, then Make a report. It collects the Status, Connection, Assets, Prerequisites and Version panels, the player’s side as far as the remote can read it, and the remote’s own last log lines. Then Copy for the forum, or Download the report and attach the file.

On the player, Find a problem and Make a report, per post 80, as before. One report from each end, and the conversation can start.

For the record: the Windows remote runs here on Windows 10 and 11, Home, Pro, Enterprise and Workstation. Meters, spectrum and fonts all work. What differs on yours, the reports will say.


On installing from a local archive, for Glass or for glass-evo: no. Do not confuse Volumio Srl own infrastructure with community members individual resources.
Everything in this project comes from GitHub, from my account, free of charge and public, the moment it is built. I write it in time taken from work, family and every other commitment, and I have neither the means nor the funds to run a download service with the consequences that come with one. If someone in the community has the time, the funds and the will to host a mirror, the releases are public as they are produced, and a simple fetch job would do. I am out of that, and will stay out of it, unless you find a reasonable sponsor to reimburse the costs of it.


Kind Regards,

The challenge I face is the slow download speed for installation packages within the player system itself. Since I encounter no speed issues when downloading via a specific setup on Windows, I prefer to download all the necessary Glass & Glass-evo ZIP archives from GitHub beforehand.

This leads to the idea I mentioned earlier:

Glass-Manager-Update: In addition to automatic online fetching, allow the user to upload the pre-downloaded ZIP archives from a local source.

I know this is entirely feasible and presents no technical difficulty.

Get glass-evo: Could this also support uploading pre-downloaded ZIP archives from a local source?

For security purposes, you could verify the ZIP archives after the upload is complete.

Have I explained myself clearly this time?

This process would not incur any additional network resource consumption.

Hey @Lee.Yan,

Yes, clearly, and for the third time. The clinic heard you the first two times as well. Hearing is not the problem. Agreeing is. In generic terms, this discussion becomes Off-Topic.


On “entirely feasible and presents no technical difficulty”: in software, those five words have launched more late nights than coffee ever has. The upload itself is the easy part. Trusting it is not. Today the Manager installs nothing it cannot check: every zip is verified against the checksum GitHub publishes with the release, before a single file is unpacked. A zip handed in through a browser carries no such word from anyone. Opening that door means a second install path to build, test and support, on every release, for every board, and an unchecked one at that.

Hold on - I may have an idea.


What already exists, and needs no new code:

  1. Glass on the player, by hand

    Download glass-.zip on your Windows machine, and copy it to the player’s home directory with scp or a USB stick. Then, with Glass already installed:

    ssh volumio@volumio.local
    mkdir glass && cd glass
    miniunzip ../glass-<version>.zip
    volumio plugin update
    

    For a first install, use volumio plugin install as the last line instead. Answer yes to Volumio’s warning about plugins installed by hand.

    The System tab’s upgrade hands the zip to the same plugin manager, but wraps it: a settings backup first, the old version kept for going back, your configuration put back after the install, and the backend restarted. By hand you get none of that. So make a named backup on the Backups tab before you start, restore it afterwards if anything looks different, and restart the backend if Glass does not come back by itself. There is no “Go back” button for a version you installed by hand.

  1. The remote on your Windows machine

    Installed from the zip you download there, exactly as you prefer. Unpack it whole, then in a PowerShell window, as the user who will run the display.

    The standalone remote, from Glass’s releases:

    powershell -ExecutionPolicy Bypass -File glass-<version>-windows-x64\remote\windows\install.ps1
    

    The remote with the Glass interface, from glass-evo’s releases:

    powershell -ExecutionPolicy Bypass -File glass-evo-<version>-windows-x64\remote\windows\install.ps1
    

    Either one takes the other’s place under the same Start menu entries, Glass Remote and Glass Remote Settings, and your settings stay. Allow glass when Windows Defender Firewall asks.

  1. glass-evo on the player

    From the System tab only, from GitHub only, checked against its checksum. No by-hand path, by design.


And if the dream will not let go: this is still an open-source project. Clone the repository, build what you need, prove the security and the integrity of what it installs, test it on the players, and raise a pull request. The clinic reads every one that arrives with its homework done.

Kind Regards,

Hey @dewen

Thank you, and well spotted. Your diagnosis was right, which is rarer in a waiting room than you might think.

The phone was not lying, the screen was not listening. A portrait photo from a phone is stored on its side, with a tag that says “turn me upright”. The Manager’s preview is your browser, and browsers read the tag. The display decoded the picture as stored and ignored the tag.

Fixed in Glass 0.9.17 and glass-evo 0.2.17. Every picture the screens draw is now decoded with the tag applied: the picture when nothing plays, the theme’s backdrop, album art, animated pictures, theme pictures, and the tailor’s resampling. A picture’s size is also read as it is shown, so a portrait photo counts as portrait. The face and the remotes draw through the same loaders, so they stand upright too.

Both are on test releases now: tick “Offer test releases” on the System tab to have them today, or wait for them to reach everyone.

As for “surgeons” in the plural, the clinic owes you a correction, so nobody thanks the wrong person:

  • The surgeon: one. Every line of Glass and glass-evo, the wiki, the releases and the 03:00 shift come from one dutiful pair of hands. The sleep debt is singular too.
  • @Gelo5: the skin and theme collection, over twelve hundred skins, and the dreams that turn into features. The clock and the forecast were his dreams. He does not touch the code, which may be why he still sleeps sometimes, or touches grass, or drives me mad, or serves a coffee exactly when it is needed most.
  • @Wheaten: testing across a fully fledged museum of boards and screens, and keeping the forum sane. Makes insanely joyful themes, and I suspect he lives in South Park. Also not in the Glass code. Keeps me awake at intervals of twenty minutes or so, then tells me to slow down and get some sleep. Right, with so much left to do…
  • GitHub: always a step behind the releases, holding an honest queue of jobs and slowing things down. But reliable and predictable: the one constant that will not go any faster. On the other hand, picky: one character out of format and all hell breaks loose. Like a receptionist, there is no way around it.
  • The patients: testers and reporters like yourself. A clear report like this one is half the operation.

So the thanks are gratefully received and fairly shared. The rest has been noted. The clinic remains, however, open.

Kind Regards,

2 Likes


It’s been over 10 minutes, and there is absolutely no progress.

The player’s Wi-Fi is set to automatically obtain an IP address, and the 5G connection speed is 390 Mbps.

I am aware that the actual downloading process takes place on the player.

@Lee.Yan

Last time, short.

A download that does not move is your network’s problem, not Glass’s. Two ways forward, both given to you multiple times already:

  1. Make a report: Status tab, Find a problem, Make a report, and post it. Without one, nothing will be looked at.
  2. Install by hand, from the zip you download on Windows, as the Quick Start describes.

Anything else is not on offer, not now. If you know better, you are on your own. Perhaps other members of the community will have better luck, and more patience, explaining the same things to you over and over again.

Kind Regards,

I understand where the problem lies; I’m just showing you the current situation.


However, accessing GitHub on Windows is smooth.

Hey @Lee.Yan

Understood. Your line to GitHub is between you and your provider. Nothing on this side can fix it. If there is your provider proxy service in-between - this is for you to find-out.

What can be done on this side is on the operating table now, in preview:

  • Install from a file: on the System tab, an “Install from a file” switch, off unless you turn it on. You give it the zips you downloaded on Windows: glass-.zip, plus glass-evo-.zip when the Glass needs it. Nothing is installed until each zip has been checked against its release. For that check the player fetches only a few kilobytes from GitHub, never the zip itself.
  • Signed releases, with the project’s own keys. Every release carries SHA256SUMS, the digest of every file in it, and SHA256SUMS.sig, an Ed25519 signature over that list. It is made in the release workflow with the project’s private key, and checked there against the public key before anything is published. The public key travels inside Glass itself (keys/release-signing.pub in the repository). Before installing anything, the Manager checks the signature over the list, then the zip’s digest against its signed line, whether the zip came from GitHub or from your file. If either fails, the release is refused and nothing is installed. Remote displays check their own upgrades against the same signature. Releases made before signing carry no signature and install as they always did, on the digest GitHub states, so going back to an older release keeps working.

It will be ready when it is ready, and when I have the time to finish it. Not before.

Your player is on 0.8.65, which has none of this. When it is released, you will need to get there once by hand, as the Quick Start describes, and use the button from then on. Until then, the Quick Start’s by-hand install is the way.

Kind Regards,

Thank you very much! This is exactly what I needed.

Dear Volumionauts,

A bulletin from theatre, written at the end of a long day. The surgeon’s brain has been operated on once too often; what is left is mostly brine. Proceed with the reading anyway.

Today’s procedure: a transplant. The clinic’s trust has been moved out of the network and into the files themselves.

Glass 0.9.27 and glass-evo 0.2.27 are out for everyone, and they carry all of it. Use them.

Signed releases
Every release is now signed with the project’s own key, an Ed25519 signature made in the release workflow and checked there before anything is published. The public key travels inside Glass. Before it installs anything, the Manager checks the signature, then the file against what was signed. If either fails, the patient is refused at the door and nothing is installed. The remote displays hold their own upgrades to the same signature.

The signature inside the archive
Every archive now carries its own MANIFEST, the digest of every file in it, and MANIFEST.sig, the manifest’s signature. A zip brought by hand is verified with no network at all: the signature with the key Glass carries, then every file against the manifest, both ways, and only then installed. A proxy, a mirror, a USB stick or a cousin’s laptop can carry it. None of them can change it unnoticed.

Install from a file
For the players that cannot reach GitHub, or reach it slower than continental drift:

  • On the player: System tab, turn on “Install from a file” (off until you do), and give it glass-.zip, plus glass-evo-.zip when the Glass needs it. They go in as the online upgrade does: backup first, the previous version kept for going back, the backend restarted.
  • On a remote display: the Version panel has the same switch, for the remote’s own archive, Linux, Windows or Android alike. The bundle remote has it too.
  • The files to download are the same ones as for anyone else. Nothing extra to fetch or keep.

And in passing: a remote now waits for the persist period before showing the face, as the player’s own screen does.

The small print, because a clinic has to have some:

  • A release made before signing carries no signature inside. Brought by hand, it is looked up on GitHub as before, and refused where GitHub cannot be reached.
  • A player older than these releases has none of this. Get to 0.9.27 once, online or by hand as the Quick Start describes, and use the button from then on.

The surgeon is now going to lie down in a darkened room, next to the crystal ball, which is still in for repairs.

Kind Regards,

3 Likes

Your movements are lightning-fast!

The only remaining issue concerns the fonts:
There are no issues when using the built-in Glass fonts; the player and remote displays match. However, when using the font I uploaded, the player displays the intended effect, whereas the Glass remote shows a fallback effect—using a simple substitute font because it failed to locate the specific font file.

Font-related report:
“face”: {
“frames”: false,
“hops”: 217,
“pages”: 0
},
“fonts”: {
“styles”: {
“bold”: {
“kind”: “custom”,
“value”: “fzsz_gbk.ttf”
},
“digi”: {
“kind”: “builtin”,
“value”: “builtin”
},
“italic”: {
“kind”: “custom”,
“value”: “fzsz_gbk.ttf”
},
“light”: {
“kind”: “custom”,
“value”: “fzsz_gbk.ttf”
},
“regular”: {
“kind”: “custom”,
“value”: “fzsz_gbk.ttf”
}
},
“uploaded”: 1
},

Since the Peppymeter screensaver is written in Python, I could normally trace the cause myself, but in this instance, I am at a loss and have to turn to you for help.

@nerd