Back on Monday, I finally received some lens inserts for my Steam Frame. I originally registered my interest in getting some back on September 20th, got an email to say they were available for purchase on October 1st, and ordered them the same day. They finally turned up on the 26th (two days ago). Considering that the Steam Frame is still a pretty new device, and I imagine the company were still getting fully set up to handle all of this, this felt like a good turnaround.
The company I used this time around (I've used others for my Quest 2 and PSVR2 headsets) was VR Optician. In my case I was ordering actual prescription lenses. While I am mildly short-sighted, and also have to contend with astigmatism, I can mostly get away with using a headset without correction. It's not ideal, but it's also not impossible to play and read in the headset. In fact, for the last few weeks that I've had the Steam Frame, I've got used to it.
On Monday evening I took a moment to fit the lenses and give them a very quick try-out. Oh, the difference! It's not a surprise, of course, but I was already impressed with how clear the Frame is; with the lenses in place it felt like a whole new headset again.
I ordered the "slim/comfort" versions, as opposed to the "advanced eye-tracking/VRChat" versions1. I don't need advanced eye-tracking (at least for the foreseeable future) and I'm very unlikely to ever need to be doing anything in VRChat. Despite being the "slim" version, they obviously add some extra bulk to the lenses.
I can't say I'm currently noticing a difference in how they feel with respect to my eyes (although this week isn't one that's giving me much opportunity to mess about in VR), but there is a noticeable extra bit of "pinch" on the sides of my nose. Hopefully, with a little more time in the headset, I'll find a sweet spot when it comes to comfort.
As for whether it was worth the £69.00 plus shipping... yeah, for sure. They correct my eyesight, let me get the most out of the headset, and they let me do it in a way that protects the actual Frame's lenses (both in terms of giving them a less-expensive cover and by removing the urge to try and wear glasses inside the headset).
If you're curious why there are two different versions and what the difference is: the page has a pop-out that goes into detail. ↩
Rogallov3.3.0 has been released. This update adds the ability to ignore some types of errors you may encounter when navigating Geminispace.
The update was prompted by the fact that, yesterday, the certificate for AstroBotany expired. Rogallo, quite rightly, alerted me to this and didn't carry on with loading the content. But it got me realising that it's easy enough to inspect the situation, realise that it's just a blip that will be fixed pretty quickly, and meanwhile you just want to get on with watering your plant, etc. At that point, Rogallo didn't allow you to do this.
So v3.3.0 adds the ability to ignore some errors that might crop up when visiting a capsule.
When an error is ignored, it is only valid for that host, that port, and that particular error for the duration of your Rogallo session. If you close Rogallo and start it again, you'll be shown the same dialog when visiting that host/port.
As a reminder, if an error is being ignored for the document you're viewing, the verification icon in the document title will indicate an error with its background colour:
If you click on the icon (if using a mouse), or use the AboutThisPage command (bound to F7 by default), any ignored errors will be shown along with the other document information.
With all this in place, all being well, if AstroBotany has a wee certificate update lag again in the future, I should still be able to visit the Koi pond without a problem.
Another little update to Wasat, this time bumping the version to v1.11.0.
After this morning's change, I made a start on the work I wanted to do on Rogallo and quickly realised that most of what I had planned was better done in Wasat itself. The short version is: rather than maintaining a just-this-session ignore list in the application, it made more sense to handle this in Wasat.
So this release adds an ignore_security_error method to the client that lets you -- for the current session -- ignore a particular type of error for a given host/port pair. This makes for a lot less work needing to be done by the application making use of Wasat. Now it's just a case of1:
Since getting into Gemini, one of my daily rituals has been to tend to my plant in AstroBotany. This morning, when trying to visit there with Rogallo, I was greeted with this:
In other words: the certificate has expired1. At this point, the error dialog isn't that useful. It's pretty much designed for dealing with capsules that are using self-signed certificates -- where TOFU is being used and so it would normally make sense to just forget and re-establish trust. With an expired CA certificate, the act of forgetting does nothing, it'll just fail again.
While it's technically fine to simply refuse to progress, in this case, it's not exactly friendly to the user. What would be sensible would be to allow an "Ignore" option. This would, I imagine, ignore the problem for the current Rogallo session -- ideally with some sort of indication that the capsule is suspicious at the moment. Also, the dialog that gives you this option should show all the certificate details so the user can make an informed decision.
The issue here is that, until now, Wasat has dealt with security-type problems by raising a single SecurityError exception. Aside from dumpster-diving the description in the exception, there's no way of knowing the nature of the security issue. v1.10.0 addresses this by adding and raising many different exceptions:
CertificateExpiredError
CertificateNotYetValidError
CertificateRejectedError
CertificateRevokedError
CertificateUntrustedError
FingerprintMismatchError
HostnameMismatchError
All of these inherit from SecurityError to maintain backward-compatibility.
While this change doesn't alter the way that Rogallo handles this situation right now, it does at least set me up for tackling the work I have planned.
By the looks of things it expired at 2026-10-26T01:52:07+00:00 ↩
Back when the whole new Steam hardware ecosystem was announced, I remember there being a fair bit of talk about how one of the benefits of having a Steam Frameand a Steam Machine would be that you could either play some VR games standalone, or when you wanted to play something a bit more demanding, you could stream from your Steam Machine. While a bit expensive if you were creating your setup from scratch, the idea of a PCVR gaming setup that is all based around one ecosystem was very much appealing.
Fast-forward to the drip-feed availability of the Machine and then later the Frame, we ended up with a pair of devices that actually didn't really work with each other... yet. Reddit was, of course, mad at Valve. Personally, while I did end up with both devices, I was okay with this as it was obvious that work was under way to make this a reality and that it wasn't too far off.
Then, yesterday morning, I noticed that SteamOS 3.9 was released. This entry in the release notes caught my eye:
Improved support for Steam Frame wireless adapter
I had about 90 minutes to kill, so I thought I'd give things a go. I updated the OS on the Machine and updated the Frame too. After that, I "unboxed" (it was still in its little paper jacket) the wireless adaptor and plugged it in, and the Machine recognised it right away. At this point, though, it got a little muddled. I wish I'd kept notes of what I was doing, but from this point on I sort of had to make things up as I went along. What I was expecting was for SteamOS, after I'd paired the Frame (something it prompted me to do), to do anything and everything else to get me playing a game, streamed to the Frame, seamlessly. That part didn't happen. There was no prompt to install SteamVR, it wasn't even clear if I needed to or should. I did anyway just in case (and that took a little bit of faff; I seem to remember that a straightforward search of the store for SteamVR actually didn't show it -- but I forget how I found it in the end).
At this point I tried to follow my nose to see if I could get anything working. My intention was to try out Gunman Contracts, which had been very disappointing as a Frame-native experience. Would it run better with the Machine doing the work? Here's what happened when I tried:
First time I ended up with the game running on the Machine, displaying flat on my TV, and with the Frame saying it had timed out.
Second time I ended up with the game running in 2D/flat mode in the Frame.
Third time I finally got it running on the Machine, but as a VR game streamed to the Frame.
I can't remember the steps I took to get there (again: I only had a short amount of time and hadn't thought to make notes as I went), but once I had this going things seemed to work well. As for the performance of Gunman Contracts itself: eh... it was visibly better than native on the Frame, but it wasn't great. I did some tweaking to the settings and eventually got it running in a way that felt pretty responsive.
I feel it's a game that needs a lot more work to make it run comfortably on the Machine, let alone native on the Frame.
One thing I did seem to notice was that it's really tricky to pull up the game's menu while you're playing it. It seems like you're supposed to press down on the d-pad, maybe. But I found that sometimes it was just a press, other times it was a press and hold for a second or so, yet other times nothing worked. I'm left wondering if it's sensitive to your location in the game. I need to do more experimentation there.
Getting low on time, and battery on the Frame, I decided I had to try another game that I really want to be able to play more of again: VTOL VR. That installed and ran up just fine. In no time whatsoever I was up and in the air.
Things did get a little confused at this point though. In attempting to take this screenshot, I accidentally managed to do the SteamVR "recentre my view" gesture (press and hold the Steam button on the controller). This resulted in me being sat on top of the canopy and turned through 90 degrees. Now, I seem to remember that there is a way to recentre yourself in the VTOL VR cockpit, but I couldn't remember the button combination off-hand. I also seem to remember there's a way to do it via an MFD menu but, given I was sat on top of the canopy, I couldn't reach that.
So, in conclusion: it does seem that we're now at a point where the Steam Machine and Steam Frame will talk to each other, and you can play games on the Frame where the Machine is doing the heavy lifting. This is good news. On the other hand it does seem like there's a lot of tidying up to be done with this new VR ecosystem, and I suspect that plenty of games need to take the new Frame controllers into account too.
When I next get a chance I'm going to go through this process again, and try and keep notes of what I do and what the results are.
I've just made a very small update to blogmore.el to fix a small bug, and also to update some deprecated code.
The blogmore-new command inserts the result of expanding a template into the buffer when making a new post, and I've not touched that template since I started writing blogmore.el. This includes not updating it when I switched much of the frontmatter-handling code over to proper YAML parsing. The problem here was that the title didn't get quotes around it, which became an issue if there was something like a : in the title; any subsequent attempt to modify frontmatter properties would throw an error.
So this release ensures that the title and the date get quoted right away. I guess, at some point, I should rework this code so that it uses the frontmatter-handling code to set up those properties and, instead, just uses the template for the main body.
I've also changed all uses of things like when-let and if-let to use when-let* and if-let*. It seems that, as of Emacs 31.1, the former are deprecated.
Today I learned that there's a version of XScreenSaver for iOS. I haven't used XScreenSaver in years; probably decades at this point. Not because I don't like it or anything; it's just because I've not had a GNU/Linux desktop machine in that long. But the chance to install the app on my phone and scroll through all the different graphics demos is too good to pass up.
I've just bumped Rogallo to v3.2.0. This release has one small new feature and one wee bug fix.
The new feature is something I found myself wanting a short while ago. I was copying some URIs and then turning them back into Gemtext links in another document; after doing that a few times, I realised that it might be handy to extend the "copy URI" facility in the viewer so that there's a "copy URI as Gemtext" version. To this end, I've added gemtext_link.copy_link_as_gemtext as a viewer widget binding, bound to Shift+c by default.
The fix is a small one to how MIME type checks are done. In one particular case, Rogallo wasn't stripping off any parameters where it should have. This is now fixed.
A couple of days ago, thanks to some free time on a Sunday afternoon, I got round to setting up my newly acquired Steam Machine. While I don't have a lot to say about it, I thought I'd note here that the event happened and jot some notes about how it went.
On unboxing, two things struck me: just how small it is, while also how hefty it feels. I'm not a hardware person, as I've mentioned here many times before, so can't speak to the how and why -- but it feels like the whole thing is cleverly and densely packed. Having owned plenty of PCs over the years, especially a lot of towers and mini towers, it was pretty neat to hold in my hands a machine that would put most of them to shame.
I also really appreciate that it can pretty much hide behind a plant pot next to the TV. It's just... there. It's not a feature.
As for setting up, that was dead simple. I pulled the machine and cable out of the box, unboxed the controller that came with it too, plugged an Ethernet cable between it and my router, fired it up and followed the instructions. Logging in was the usual dead-simple QR code scan from the Steam app on my phone.
The only issue I ran into was when setting up the Steam Controller itself. While it worked perfectly with its own puck plugged in, right from the start (so I could do the setup without need for a keyboard and mouse), things didn't go so well when it offered to switch over to the internal puck. When it asked if I wanted to do that, the Pair button (I think that's what it was called) could be pressed but always resulted in an instant error. Then using Retry was an instant error too. I tried a few times, to no success, so then just carried on using the controller's own puck on the end of a cable.
After going through that, it then wanted to do updates on the puck and controller, which I followed. I had hoped that at that point it might repeat the process to move to the internal puck but that wasn't offered as an option.
Once through all that I was all up and running and my library was available. I tried a couple of games and the whole thing felt nice and fast. In fact, it felt like exactly what I wanted: a better-performing Steam Deck that is always plugged into my TV.
After testing a couple of games, I searched online and then dived into the settings and found that, from there, I could swap the controller over to the internal puck. The method for doing this wasn't obviously available in the settings, hence the search online. Annoyingly I can't find the page I landed on, but I seem to remember it simply involved directly plugging the controller into the machine (USB->USB, not connected to the puck) and then messing in the controller settings on the machine.
Overall, while there was that little hiccup, the experience pretty much felt like setting up a console -- which seems ideal to me. As for what I can do with it: the "Great on Machine" tab in my library looks to contain about a fifth of my total library, and a lot of that is made up of games I'm happy to play. I've not paid too much attention to the what and why of the other four-fifths -- I also imagine there are a good few in there that would also work but which haven't had the seal of approval yet.
Would I recommend this to anyone? Eh, if you're a full-on "PC master race" type who loves to build their own kit and cares about the hardware and stuff... I would imagine not. On the other hand, if you're someone who has a reasonable library on Steam and wants a low-to-no-maintenance PC that's almost invisible in your living room: I'd say it's ideal. Sure, the price isn't great, but that's the way stuff is at the moment1. Additionally, you're getting a desktop Linux machine and something that can be tweaked and tailored how you like, if that's your thing.
Next up on my list of things to do with it, aside from playing on it more (currently low-key obsessed with Iron Nest and am also enjoying having more runs in Vampire Survivors), is to figure out the easiest and best way to record video (with audio and voice) and, ideally, also stream to YouTube. Given the nature of the machine (Linux box with gaming UI) I imagine it's as "simple"2 as adding OBS and setting things up. To be fair to the consoles though: this is where they do win just a little; on both my Xbox Series S and my PS5 there are dedicated tools for streaming. I wish the Steam Machine came with similar built-in functionality so I could be extra lazy and also have a setup that is very unlikely to be disturbed by random updates.
While a year old at the point of saving this, it's still a pretty good collection of details of problematic things related to DHH. It's only got worse since.
A good toot-sized argument against the "both sides balanced" take on the current state of AI use. Or, rather, it's a good argument in favour of the "it's unethical so I won't use it" approach not being stupidly stubborn.