Create a Safari Extension to Extract Article Content

In this article, I’ll show you how to access a web page’s content, alter it using JavaScript, and display it using your Safari extension’s UI. Specifically, I’ll demonstrate how to display an article’s content in a popover. I often use Large Language Models (LLMs) to summarize articles when I’m unsure if they’re worth reading. Without the extension we’re about to build, I’d need to manually trigger Safari’s reader mode (⌘ + ⇧ + R), copy all content, and paste it into Claude or ChatGPT. This extension is a handy tool that reduces friction! ...

December 18, 2024 · Bartosz Kunat

Single-Key App Launching with Karabiner and Hammerspoon

For years, I wanted a way to launch my most-used apps with single-key shortcuts. While I knew tools like Hammerspoon could make this possible, I never found a key combination that felt right. I’d always end up disabling the setup, missing the functionality of keys like right control, caps lock, or escape. Everything changed when I discovered Karabiner Elements’ ability to create distinct mappings for different key events, such as short presses and long presses. The setup I’m about to share lets you launch any mapped app by pressing caps lock plus a specific letter. The best part? You don’t lose the caps lock functionality—it still works as normal when pressed on its own. ...

September 13, 2024 · Bartosz Kunat

Keeping Safari Windows Open: A Tab Group Workaround

tldr: In order to keep the current Safari window open when you close the last tab, use tab groups. Last month, I once again switched my default web browser to Safari. It has its quirks, but I missed it in a weird way. I initially switched to Firefox because of its stellar support for vim keybindings and some other extensions I started to enjoy. Even with all those improvements, I began to miss some niceties that Safari has built-in. ...

May 18, 2024 · Bartosz Kunat

Quitting Reels: Unveiling Instagram Deep Links

I’ve noticed that I’ve been wasting a lot of time watching Instagram Reels lately. This would not be a problem if I actually enjoyed the time spent doing it. However, this was not the case. I’m not only angry at myself after the fact, but I also usually feel miserable while mindlessly scrolling. It’s just that sometimes I lack the discipline to avoid it altogether. Ideally, I’d completely delete it from my phone, but I still need it for texting. It’s borderline impossible to convince some of my friends to switch to a different platform. Also, some of Instagram’s messaging features are just nice to have. ...

March 31, 2024 · Bartosz Kunat

Alfred Snippet Converter

A few months ago, I wrote about Alfred Snippets on iOS. In that article, I described the manual process of converting Alfred text snippets into macOS text replacements. Since then, I’ve had time to refine this project and add some new features. You can download the final Command Line Interface (CLI) or the macOS app from this link. Next on my list is the complete automation of the process of synchronizing Alfred text snippets with macOS text replacements. I’m not sure if it’s even possible, but there’s only one way to find out. I’m keeping my fingers crossed that it will take me less time than it did before. ...

December 27, 2023 · Bartosz Kunat

NextDNS: Breaking Bad Habits

My story begins with a quest for a reliable ad blocker for Safari. I used Wipr for years, but it started performing poorly. I tried AdGuard, but it required a root certificate for HTTPS traffic, which was a dealbreaker. PiHole seemed complex to configure, so I found NextDNS, a DNS-level content blocker promising effective ad and tracker filtering. I decided to try it. NextDNS: The Game Changer NextDNS turned out to be a game-changer for several reasons. First of all, it’s fairly cheap. The pro plan costs around $2 a month and the free plan is more than enough to try out this product. The setup couldn’t be easier. They offer a few different ways to set it up on all of your devices. The final thing is reliability. I’ve been using NextDNS on all of my personal devices for the past six months without encountering any issues. It almost sounds too good to be true. ...

September 30, 2023 · Bartosz Kunat

My Alfred Setup

Last updated: 13/08/23 I’ve relied on Alfred as my daily driver for boosting productivity for years. However, I didn’t switch from Apple’s Spotlight overnight. It took three attempts before I truly embraced its capabilities. In this article I’ll share my Alfred setup and explain my most frequent workflows. Let’s dive in! The Initial Setup I’ve already described the initial setup in detail in New Mac Setup article, so be sure to check it if you’re interested. ...

August 13, 2023 · Bartosz Kunat

New Mac Setup

Last updated: 20/05/25 This note describes the steps I take when setting up a new Mac. This process could be mostly automated, but I can’t get myself to do it. It takes me around 90 minutes to go through all the steps. Let’s get started! I. Prerequisite Files to Import Before diving into installations, I make sure to have these configuration files ready: .gitconfig .zshrc II. Software Installation Apps marked with “🌕” emoji are optional (it depends if it’s a work or a private Mac). ...

May 15, 2023 · Bartosz Kunat

My Productivity Setup

Today, I wanted to give you a high-level look at what tools I use to organize my work and life and how I use them. The setup I’m about to show you is a product of 5 years of refinement. I still tweak some things, so there’s a high chance it will evolve further in the coming months. Before we start, I wanted to mention that I’m deep into the Apple ecosystem. Some of the tools I’ll discuss might be Apple-specific, but I’m sure there are alternatives on other platforms. With that out of our way, let’s jump in! ...

February 18, 2023 · Bartosz Kunat

Alfred Snippets on iOS

Alfred allows you to save your frequently used text clips as Snippets. Over the past few years I’ve created hundreds of them. There’s one problem. Alfred snippets only work on your Mac. Today we’ll focus on how we can convert them into macOS snippets. That way, you’ll be able to use them across all your Apple devices! How Alfred stores snippets as a Zip archive. On macOS, you can open it with the Archive Utility app that’s shipped with the system. After successfully exporting it, you’ll need to convert it from Alfred’s data format to the one used by the system snippets. macOS allows to import keyboard snippets in bulk with Property List format files (plist). ...

January 25, 2023 · Bartosz Kunat