
Brett Terpstra
Brett is a writer and developer living in Minnesota, USA. You can follow him as ttscoff on Twitter, GitHub, and Mastodon. Sign up for the email newsletter, and keep up with this blog by adding it to your favorite news reader.
This post will only be of interest to those using the Ultimate Hacking Keyboard (UHK), specifically with the lefthand key cluster module. I recently added some customizations I thought might be worth mentioning to those who happen to have this setup. For those who don’t, maybe read on and be tempted by the possibilities…
Thanks to Sanebox for sponsoring BrettTerpstra.com this week! Sanebox has just introduced a new feature called Deep Clean, a way to reclaim your storage quota with smart batch deletes of old emails. Check it out for free and save yourself the headache of running out of space.
Is your email close to going over its storage limit? With our new free tool Deep Clean, you’ll never have to worry again. Use Deep Clean to quickly sort and delete unnecessary emails in bulk so you never have to pay for extra storage again. The best part? It’s free.
Thanks to TextExpander for sponsoring BrettTerpstra.com this week!
ChatGPT is eating the world, but it’s still in its infancy. There are times when the service isn’t available or you don’t have time to wait as the AI slowly churns out an answer.
Here’s a thought: pair ChatGPT with TextExpander. Generate your content with ChatGPT, save it as a TextExpander Snippet, and then you can edit it to your liking and deploy it at any time with a short abbreviation or our Inline Search.
We wrote a blog post about how you can use ChatGPT to generate customer service responses and save them as TextExpander Snippets.
You can simply go to ChatGPT and tell it something like:
Pretend you are a customer success manager for a utilities and energy company. Write 5 different emails responding to a customer about their inquiry about an incorrect monthly utilities bill. Write the emails with a happy, helpful, and professional tone of voice.
ChatGPT dutifully writes 5 emails you can use in this scenario, which you can then copy and paste into TextExpander as Snippets. From there, you can edit them and easily share them with your team.
Note from Brett: you can also use TextExpander fill-ins to generate new prompts. Change “an incorrect monthly utilities bill” into a fill-in where you can change the problem to solve, and presto, custom ChatGPT prompt without repeating yourself.
Of course, you can adapt this technique for any line of work where you need a library of standardized messages, like IT, recruiting, or sales—anywhere you can automate routine tasks so you can focus on what matters. TextExpander is great for handling routine messages like a customer referral email, new employee welcome notes, or a job offer email.
Check out TextExpander today and get 20% off using the code TERPSTRA
.
Not so long ago I wrote a little script that would generate an HTML playground of any MacOS app’s menu bar, primarily for the purpose of generating screenshots. It has a full automation API and you can script screenshots with fuzzy name matching, meaning menu items names and positions can change and your automated screenshots will still work. It’s a very specific use case, but I shared it because it took way too much time and I would love it if it helped even one other person.
Yesterday I updated the menu styling to match Ventura, which uses new submenu indicators, slightly smaller font sizes by default, and slight changes to background opacity and hue. The results should look like a passable rendition of the latest operating system now. You can check out the demo here.
NiftyMenu also got its own project page on this site, with full documentation and installation instructions.
Web excursions brought to you in partnership with Backblaze. Back up everything.
Backblaze securely backs up your entire computer to the cloud, affordably and reliably. I trust it with all my data. Check it out today.
Thanks to SaneBox for sponsoring BrettTerpstra.com again this week! I don’t know what I would do without it.
Ever feel like you’re drowning in a sea of emails? You’re not alone. We know the struggle of managing important emails while fighting spam messages with flashy sales. For every 10 emails from sources you don’t even remember subscribing to, you get one important one. When you find it, it feels like you’ve already finished a long task, doesn’t it?
Finding important messages shouldn’t feel like a battle between you and your inbox. In fact, why do you have to sort through all these unimportant files in the first place?
In a world of relentless digital communication, email overload is a common struggle. But SaneBox can help you to conquer your inbox once and for all! Using AI, SaneBox learns your email habits and sorts incoming messages precisely, so you can achieve the ultimate victory: a perfectly organized inbox.
Let’s explore this service in a quick overview!
When it comes to pricing, Sanebox is an inexpensive choice. You can get a free trial to experience the difference in email management without any commitment. Plus, the app offers flexible monthly plans starting at just $7. It’s really that affordable!
Check out SaneBox today, sign up today and save $25 on your subscription.
Web excursions brought to you in partnership with Backblaze. Back up everything.
Swell AI automates writing articles, summaries, social posts, time-stamped show notes and more for your podcasts and videos.
Luciole (French for “firefly”) is a new typeface developed explicitly for visually impaired people.
DuckDuckGo add-on that brings the magic of ChatGPT to search results.
Backblaze securely backs up your entire computer to the cloud, affordably and reliably. I trust it with all my data. Check it out today.
I use FeedPress to handle this blog’s RSS feeds. It reads my statically-generated RSS feed and gives me subscriber stats, as well as the ability to send new posts to social media endpoints. But it lacks Mastodon integration, and I’m spending most of my time on Mastodon lately (find me at @ttscoff@nojack.easydns.ca). So I wanted my new posts on this blog to automatically post to Mastodon. The script in this post could be used with any blog that generates an RSS feed, but is mostly geared toward static blogs.
I got started with a post from Dr. Drang called “Announcing New Posts on Mastodon”. It included a Python script that I referenced to create a Ruby script for my needs. Thanks to the Doc for getting me started!
You can find the script here. See below for configuration and usage.
I’m liking outlining in Jesse Grossjean’s latest app, Bike, for my outlining needs. It’s a simple outliner that can save the content of its outlines to Bike files, OPML documents, or plain text. And its native document format is plain HTML that’s easy to work with.
As an aside, Jesse just released Shortcut actions for Bike, making it possible to do some automation of Bike and Bike documents. I haven’t played around with it much yet, but if you’re into Shortcuts, check out what’s available.
One thing that Bike lacks is an easy way to convert Markdown lists to Bike outlines. It can actually read indented plain text just fine, but the list markers are included in the node text, and blank lines become empty nodes instead of being compressed. Running a list through a Markdown processor and saving as .bike
can often create an invalid file, as Bike requires every list item to contain a paragraph tag, not bare text.
Over 20 years of writing scripts and apps I’ve collected a lot of “snippets” of code that I save whenever I solve a problem and think I’ll want the solution again in the future. I like these snippets to include notes and links, and I need to be able to easily search them and grab the code when I need it without much effort. That’s why I wrote Snibbets back in 2020.
I’ve now refactored Snibbets as a gem and vastly improved its capabilities. I wanted the simplicity of creating snippets in nvUltra and searching them quickly from the command line, getting just the code I need with a few keystrokes. I keep iTerm in Visor mode, so it’s a hotkey away, and just as convenient as any quick find panel in a dedicated snippet management app.
Snibbets now has its own project page where you can read all about its features and options. You can also see all the code, file bug reports, and make feature requests on GitHub.