It has been another super busy month at work, but the weather shows signs of improvement and in the UK we have skipped from Greenwich Mean Time to British Summer Time. As the first quarter of 2026 closes out it is time for me to take stock of what I have been up to this past month. The answer as usual, is not as much as I had hoped, but far more than I had expected.
ThoughtAsylum
I had hoped to write a couple of blog posts on ThoughtAsylum this month, but the one I did write took me more than a smidge longer than I had originally planned. I had decided it was time to have a bit of a tidy through on my Keyboard Maestro macros, and I thought my approach might make an interesting post. Specifically I explained about the macro groups I am using to organise my macros and why I have them.
I often post about solutions and not processes, so this was a slight divergence from the pattern I have settled into, but I had a few people reach out and note how much they enjoyed it, so maybe I’ll weave a few more of them in over the coming months. Do let me know if you would like to see more of that type of post.
Just to give you a sense of how I’m organising hundreds of Keyboard Maestro macros, here’s a tree map of my groups - sized based on number of active macros that they contain. I have more than handful of groups, but there is a method behind them.
Forums
This past month, I have continued to check in on a couple of my favourite forums and pitch in where I feel I had something worthwhile to share.
Drafts
The first Draft entry this past month was helping out a user who wanted to better understand when to use a draft vs an editor objects in scripting Drafts. I tried to give a brief answer, but when you start applying even the basic rules, sometimes you do end up with a bit of nuance that might mean you want to switch.
A query about a broken link toggle at the bottom of Drafts led to an interesting set of tests of Markdown syntaxes that I had not explored that deeply before.
Lastly, an unwanted syntax change for Drafts with iOS automation turned out to be something that could have been very quickly identified if one of my usual bugbears had been considered - always provide code (or your actual Apple Shortcuts shortcut) up front.
Automators
Not a perfect solution, but I did give what I hope was a useful suggestion for someone trying to open Audio Routing settings using Shortcuts.
A Shortcuts request for “Working a text expression over and calculating dates from it” was quite fun, but only because I basically took a guess at what was actually being asked for - there was a good set of detail in the original post, but I just didn’t understand what was being said.
It seems that “slow-loading” in Scriptable persists - as do the steps to resolve it I outlined previously.
Other
What else have I been up to this month? Well, there have definitely been some new tech-hardware purchases, some deep work on one of my Alfred workflows, some new software uses, and it is definitely time for me to touch on a video I did with MacSparky.
Networking
This past month I have been doing some upgrades around my computer networking. First I decided it was time to replace my old PR2000 Trek N300 Netgear travel router. I bought this over a decade ago as a way to allow me to connect multiple devices to Wi-Fi access points, such as those in hotels, where they would only typically allow me to hook up one device at a time. The last I used it was while I was taking a holiday in the Netherlands last year, and it worked, but the rubberised outer shell had become sticky and even a rub down with isopropyl alcohol didn’t help matters. Given that it was just over a decade old at this point (I purchased it in mid-2015 apparently) it was due a replacement.
The reason for the replacement now was because we were planning on visiting my in-laws this Easter break, and one of the rooms in their house has weak Wi-Fi, and happens to be a room one of my children likes to hang out in for a bit of privacy while he online games with his friends. He often burns through data allowance on his phone doing this as the Wi-Fi drops out, and so I figured I could use a travel router to boost the reception a little by bridging to the house network.
I have only managed to try it out at home at this point, but I picked up a GL-SFT1200 (Opal) travel router, and while potentially a little bigger overall that the PR2000, the ease of use and performance look pretty good. It was quite inexpensive relatively speaking, and I’m sure it will have paid for itself in a few trips where we would otherwise be shelling out for more hotel Wi-Fi for a wide range of family digital devices or for multiple data package boosts on phones.
The next thing I did was migrate the UniFi OS Server controller app from my Mac Studio to my Synology NAS, where I could run it in a Docker container. The family had complained about some home Wi-Fi issue recently and I wanted to gather some data - so rather than having it running all the time on my Mac, I decided to put it onto the NAS and go from there. It turned out to be a bit of a glitch with a couple of iPads that were resolved by a reboot after a recent update, but the result was I could now log in and check my Wi-Fi utilisation history … and then everything changed.
If you have been reading my monthly updates for a while, you may recall that where I live, Internet access is relatively slow. After living with 8 Mbps down for quite some time, a replacement of the BT primary socket (the main connection into the house for the copper phone line) got me up to the just over 20 Mbps. A world of difference, but it still causes challenges when you have gamers in the family who want to download huge game updates, and people like me who want to grab an LLM model.
But we have been biding our time until fibre came to the area. It was due to be put in this year, and in late February, we saw engineers laying a lot of new cabling in the area, so that was a good sign. I had not expected it to have happened so quickly, but towards the end of March I spotted in one of my usual broadband checks that fibre was now ready to order for my home.
After a bit of deeper research I decided who I was going to select as the provider, and what we were going to need in place to support it. Most providers would give us a 900 Mbps service, but I did find one that would give us a 1.6 Gbps service. I wasn’t sure how that could be if they were all using the same OpenReach fibre network, but it turns out there is a legitimate way, and the cost of that on a special deal was actually only a few pounds more than what we were actually paying our current ISP for our out of contract connection. Note, I specifically let the contract lapse as I wanted to be able to go fibre in 2026 and a new contract would have taken us into the second half of 2027.
Now, my experience with every ISP who has provided me with equipment to connect to their network has been pretty poor. Their gateway routers have left a lot to be desired, and in every case I have ended up swapping it out for a higher quality device I purchased myself - with the partial exception of when we got Internet via a cable provider when I switched the cable router into a pure modem mode instead. While I would hope that this particular ISP has got their home router technology sorted, I am not taking that chance and I have expanded my Ubiquiti networking.
I have now switched out my wonderful little MikroTik hAP ax2 router for the Ubiquiti UDG-Fiber, a UniFi cloud gateway with 2.5 Gbps and 10 Gbps data ports. In theory, and from what I have read from others with the same ISP, I should be able to plug this straight into the fibre connection, add my ISP settings, and it will give me full access to that > 1 Gbps speed. At the moment it is plugged into the same Draytek Vigor 167 modem for the ADSL connection I get from my current ISP, and that was very quick and easy to get working. The UCG-Fiber also brings with it the monitoring suite, so in the end the migration to the Synology was rather short-lived.
While I mostly have 1 GB networking in place, the plan has always been for shared throughput amongst people rather than trying to get all that bandwidth across to one device. In time, I expect that I will swap out various cables and switches, but there is no rush for that. However, one place that does have some limitation is the Ethernet over power, or Powerline connections I have set up. UK homes are all brick work, so running cabling usually involved knocking holes in walls, pulling up floor boards, etc. This is far too invasive right now, so we had resorted to using connections for a couple of places where the networking piggy-backed on the home power cabling. It has worked fine, but from my research, it suggested that it would likely be a significant bottleneck for a higher speed Internet connection.
Wiring in is best, but if you can’t wire in, and you need high throughput, I was surprised to see that the common recommendation was to use a Wi-Fi mesh. Now having had major issues with my previous mesh networking foray, I was not so happy at this prospect. However, it seems that the UniFi access points can be locked to one another in a particular mesh way such that it can work very well. This was not just marketing hype, but actually from people discussing the pros and cons and what you can realistically expect.
The result was I also purchased a couple of Ubiquiti U6 Mesh Access Points and I have set these up as Wi-Fi access points locked directly to an existing Unifi 6 Pro Access Point that I have mounted in my hallway, and plugged directly into the UCG-Fiber. The U6 Mesh devices are located on the floor above the hallway, and provide wired in access in my children’s bedrooms so that they can use their Ethernet connected gaming devices. For one of the rooms, this also needed a switch, and while I did have a switch in place there, power sockets were at a premium, so I also added a UniFi Switch Lite 8 PoE to power the U6 Mesh and provide the required networking. It also allows me to see which particular console in that particular bedroom might be hogging the bandwidth.
The wired and UniFi Wi-Fi setup now looks broadly like this.
Once the new fibre Internet connection is in place (due at some point in April), I will be experimenting with whether the one remaining Ethernet over power connection, to the Apple TV in the living room, is worth keeping or if I should switch the Apple TV to using the hallway access point. That hallway access point is going to be handling a good portion of the high bandwidth traffic, so do I want to add the Apple TV to it, or is the wired connection sufficient and somewhat protected simply by being managed over a different port with its own isolated bandwidth?
If that connection is retired I will also be able to retire the Mercusys switch from the hallway as it is only effectively providing one extra port now - previously it was powering the Wi-Fi access point too.
Alfred Workflow Updates
This past month I have been busy working on some updates to my suite of Alfred workflows. The main recipient of updates was Conductor, my workflow for supporting Keyboard Maestro - definitely a Keyboard Maestro heavy month this one.
Conductor relies heavily on a set of Python scripts to function as it not only works with Keyboard Maestro directly for some of its functionality, but also with the configuration and operation files that sit behind Keyboard Maestro. These Python scripts had been on my list to rework for quite some time now, and this month I ripped them apart and rebuilt almost all of them. This time with a structure to allow me to maintain them more easily - something that I’d moved away from in previous evolutions, and why it was on my list to go back and fix. They also got faster to run. I revised some logic to streamline things, so for anyone with a huge library or a slower Mac, you should notice a little speed bump there.
I also added some fixes for things that were annoying me. Given that I have the odd macro group where I force the macro order using numeric prefixes (ref. sorting characters), and include separator macros. In Keyboard Maestro, the numeric prefixes get stripped from the macro name when displayed, so I replicated that in Conductor. It is much cleaner like that. I also added an option where you could specify macros that are just menu spacers, and filter them out from the listings in Conductor - as long as you define the separators consistently that is. Again, a much cleaner listing as a result.
There were also a couple of bug fixes and new options to directly paste as well as just copy Markdown lists of groups/macros/etc.
One other change I incorporated was to deprecate the full diagnostic utility within Conductor in favour of House, my diagnostic workflow which is what I intend to hook in as a diagnostics option to all of my workflows. The functionality is still there and can be run, but it will offer you the chance each time to download and install House. If installed, it will automatically run a full House diagnostic. The user also gets a quick splash screen noting that another workflow is being called thanks to a revision I made to House to allow for nicely integrated support with other workflows.
The MacSparky Video on Mac Automation
As noted in my last round up post, back in January I recorded a video with David Sparks for the MacSparky Labs on my “Mac Automation” plugin for the Elgato Stream Deck. The plugin provides a wealth of ways you can interact with scripting and automation utilities on your Mac all within one plugin. It is purposefully a little opinionated as it was addressing my own needs for some issues I had encountered with others plugins and Elgato’s own actions. In fact, it is so feature-rich, David asked if I could do a demo session for lab members.
For my own test suite for the plugin, I had created a lot of audio-based checks that I could use to confirm I had coded things correctly and that whenever I made changes, things were working. But the listing was a bit dry, and the tests did not exactly lend themselves to an online demo session.
It was not just the sets of tests. Even the action entries were very utilitarian in name and look.
Plus how could I show off what I was actually doing without another camera showing my Stream Deck? Fortunately, Elgato had released an update that allowed you to have virtual Stream Decks. Stream Decks you could display on your screen, and that was perfect for me for the demo. All I needed to do was to come up with a new set of visual demonstrations that I could load up into the virtual Stream Deck.
With the help of SF Symbols, it was pretty straight forward for me to create a more interesting set of buttons for my demo group buttons under which to keep the sets of macros. Far more engaging than the buttons for my test sets.
Within each one I built out a set of tests that would help me demonstrate all the nuances of the plugin, along with giving people some ideas about the sorts of things it allowed me to do and to give them ideas of what it could do for them. A couple of dozen demonstrations in all, so you can imagine, it actually took me the best part of an hour to talk through the background to the plugin, some key features of the functionality, and to show the full range of features available in the latest release at that time.
In the demo I change things like the look and feel of elements in the operating system, view and modify the clipboard, and even throw up fancy live web pages like the one I created below just for this session. I even used one call to manage the Home Assistant enabled LED lights I have behind me when I was on camera.
I had quite a few positive messages after the video was released to lab members in early March, which was much appreciated. I know that my creations are out there helping people every day, but it is always so much nicer to hear first hand about it.
Mac Automation is not exactly new at this point, and according to the analytics I see in Elgato’s Maker Console, I am optimistic that it will cross the 4,000 user mark by the time a full year’s release comes around. But, if you are a Stream Deck user and have not tried it yet, I would encourage you to do so. If you are already a user, why not consider telling your friends and colleagues about it? It is a free plugin, and I believe it really does unlock something quite special for controlling your Mac from your Stream Deck.
The Return of Bartender
Since moving to Apple Silicon about a year ago, I had ditched my use of Bartender. I had a clean start and I just didn’t seem to have a need for it. Until now. I noted this past month that I had more menu bar icons than I was happy with, to the point where I was starting to hunt for icons when I wanted to use them. Even after hiding icons I never used in app settings I found I still had too many.
I know a lot of people had moved from Bartender, but I have a perpetual licence and from what I can see, it remains the most fully featured menu bar management app. I have used it to really pare down what is constantly on display.
Here on my Mac Studio I have the following showing:
An icon to expand Bartender’s hidden row.
DropZone for various folders, plugins and drop bar access.
Cleanshot X, because I can never remember all the hotkey differences for taking screenshots.
Tot for quick access to my scratch pads.
Tailscale so I know it is active - it is important for me to be able to safely connect back to my Mac Studio from my MacBook Air when I am out and about.
Control centre for various bits and pieces.
All my other favourite apps with menu bar entries are tucked away should I need them, but these are the ones I need most often or are important for me to know are still enabled.
Syncthing for Syncing GitHub Repos
One workflow change I have applied this month is the use of Syncthing to synchronise my GitHub repos between my two Macs. While I wanted to just manage the repos separately on each machine, I would find that sometimes I was moving between machines and wanted to work on something I had been working on but not finished on the other device. If I was committing and pushing frequently this would not be an issue, but I don’t. I commit not as frequently as I should, and I push only when I have to.
By allowing repos to sync between my Macs I can seamlessly move between them and not have to get access to the other to grab the latest working copy of something. I am sure this isn’t good practice, but let’s call it “good enough practice”. The friction and risks are both very low and this allows me to keep working on things no matter what Mac I am at.
For those of you who may be saying “okay, I get it, but why Syncthing and not just use iCloud Drive?”
Syncthing is fast, being peer-to-peer, and does not take up any of my limited iCloud Drive space.
Syncthing lets you keep your files anywhere, not in a specific folder structure, and I don’t really want to move my repos from the logical location I currently have them
Syncthing seems to be a more resilient sync service - it is what I had to use previously to safely get my Alfred preferences to sync between Macs.
It has worked seamlessly over the last few weeks, but I’ll be keeping an eye out for any issues that may arise.
Links
This month I have the usual extra links for some things I have found useful or interesting.
Headless Sync for Obsidian
I currently ensure my Mac Studio is up-to-date on my main Obsidian vault by having it open the app for a short while each night to give it chance to sync. When I saw Obsidian had a headless sync solution, I was interested to see how I could use it to more easily to keep things in sync or trigger sync, without having the Obsidian app open all the time.
Unfortunately, there can be issues if you are running the app and the headless sync, so the advice from Obsidian is not to do this. I did look at the Obsidian CLI to see if that could help me, but it is very much for controlling the Obsidian app itself.
While it wasn’t suitable for my needs, you may find if you are experimenting with AI agents and locking things up on another dedicated device, then headless sync might fit a very particular need you encounter.
bat
I do love a good bit of shell scripting, and while I do try and keep to vanilla tools as much as I can, so I can reshare to others with the fewest possible prerequisites, this little tool is a drop in for an existing one, cat. bat is a souped-up version of the standard concatenation tool. In particular, I have found it useful as it automatically pages content and has support for syntax highlighting.
It actually does a fair bit more than this, but particularly so when you see how it integrates with other tools. I [set up man to use bat as the pager] (https://github.com/sharkdp/bat?tab=readme-ov-file#man), though I was also quite tempted to set it up as the separate command.
Dropzone
On 22 March, Aptonic released version 5 of Dropzone, one of the most used apps in my menu bar. Apart from the updated look and feel, there is now support for multiple grids, custom sections in grids (categories), and the command line tool allows you to switch grids and more, making this utility much more automatable, which is like catnip to someone like me.
As a long term user, I got a discount on my update, but there is a 30% launch discount as I write this, and it is available as part of SetApp if you subscribe to that service.
A top tip is that as well as the “pro actions” (plugins) created by the Dropzone developer, there are more actions available on the untested actions page of the Aptonic website - the “Rename and Move Files” is one I created, and I assure you I did test it and have been successfully using it for almost five years now.
Upcoming
At work, things are afoot, and I may have a bit of a change in direction coming up. I have had several conversations over the last couple of months and there seems to be some traction in what I might do next. I may be in a position to share that next month, I may not. Time will tell, but one thing is for certain, things are about as quiet now as they will ever be for the next few years; which is to say not very, but the pace is about to quicken once again which might limit my time over the course of the coming months.
The big change in my house this April will surely come with the connection to fibre for our home Internet access. I suspect there will be a few activities and testing around that and finishing off the remaining networking tweaks. If there is anything particularly interesting, I will report back on it next month.
I have also been reading and watching quite a bit of content recently about OpenClaw, the Nvidia NemoClaw announcement, and I have been catching up on the Docker episodes of Programming by Stealth podcast. My aim is now to spend some time trying this out (while taking appropriate security precautions) as I really want to get a clearer view on the broader personal autonomous AI agent scene. While I currently have a high level understanding, and know a few areas of deeper details, I have not spent any hands on time with any of it. I need to make the time to do that now to ensure I keep up to date and don’t end up scrabbling to catch-up later. It feels like there is a definite inflection point here, and I can clearly see the potential for change it presents.
As always, thank you for reading, and I hope you have found something informative and or interesting amongst this past month’s activities. Thank you to everyone who has bought me a coffee in the last month or even years ago. I truly appreciate it, and I’ve had three or four in compiling this post the last few days. Have a great April and I’ll be back in early May with my April update.
