Blog

Back to simplicity

I've been treading water the last months, spending too much time on Linux computer setups and other things that clearly does not speak to my core wishes of simplicity.

Lately I've been reading books on Warren Buffett and Charlie Munger, and one thing that I deeply respect from them both is their ability to be reflective and self-critical without it being a negative thing.

They realize their mistakes, change course of action, learn from it, and reflect on it.

It all sounds trivial, but all too often people get stuck in a situation of sunk cost fallacy and don't properly evaluate the path they are going.

I've realized now that I've spent too much energy on this whole Linux direction, and that Mac simply is a better direction for me to stick with. I'm not the person to tinker most of my day in the terminal.

Anyways, "Onwards and upwards" is an idiom I love, and I will use that in this case!

Where are we at now then?

In my getting "back to basics" I've refound the joy in simple focussed web apps.

Things that really fascinate me are products like those from goodenough.us, like Pika, Albumwhale and Letterbird.
I really like these kind of focussed apps. And also the whole theme of "good enough". It's kind of saying "We don't try to be best at everything", and that resonates with me a lot.

Other creators I really enjoy:

iA Writer have long been up there.
I still love Kirby CMS for its simplicity in the CMS Realm.
As much as I really like the thoughts and business model of Obsidian it feels a bit too complex for my needs, but lately I've been enjoying Nota. Again, the whole concept of file-based-storage goes across both Kirby, iA, Obsidian and Nota, so that's definitely something I like a lot.

I really find Seb fascinating. All his work with Fffuel has amazed me for a long time, and his work at Muted is even upping it all another notch. Crazy stuff. I really wanted to take his course here the other day, but unfortunately it's not purchasable anymore. I think he sold the whole Fffuel site to Syntax/Sentry if I'm not mistaken.

Vincent Ritter makes some pretty interesting small products.

I'm also into well made puzzle games lately. Partly because they are fun to play, but also for the craftmanship, design, functionality and simplicity of them.
Some standout games lately: Clues by Sam, Fields and Stars from Inkwell Games.

Some simple apps from Github I enjoy

Bullet Journal by Bastian Allgeier
This is basically a basic bullet journal with a perfect week-overview and a simple way to add some notes.
It uses local storage and requires no setup really. I just clone the repo to my Herd-folder as "todo" and hit todo.test in by browser.

Journal by Kev Quirk
"A super simple, self-hosted Journal application that's written in PHP." Kev writes, and that pretty much describes it. A tiny bit more of a setup than the journal, since it uses sqlite and has a login panel, but really takes only a few minutes.

Flexoki Playground by Steph Ango
I have this running on flexoki.test, and it gives me a great base to work with color pallettes. They are already great from the get-go, but with the playground tools one can tweak the chroma and curves for fine adjustments. No local storage going on here, but still a cool tool.

Consumption vs. Creation

All of this inspiration is great, but it can't be that all I do is sit and sift through apps. I need to channel the inspiration somewhere.

So I try to start small and begin creating too. Especially inspired by the simplest of toools like the Bullet Journal and Journal, I have a few ideas I want to explore.

I've started with making a basic Wordle-like game in Norwegian for kids, and a super simple Kirby Theme called Index to get the ball rolling.

But honestly, part of this focus is also due to a substantial decline in client work over the last months. Maybe I should rather be working on sales and marketing, but I prefer spending time following my curiosity and building competence in areas I feel lacking. Interestingly the whole Design industry in Norway are going through tough times, with a critical combination of lowering service-prices, more competition, inflation, saturated private market and a public sector that is very much closed for only big firms. Good to know I'm not alone, but still very challenging to deal with.

Peace & Love.

I'm giving up on Aerospace

I continue to use both Omarchy and MacOS as my daily computers. Some days I feel like MacOS, and some days I feel like Omarchy.

I really started to enjoy the tiling window manager in Omarchy (Hyprland), and naturally started to put in work trying to make my MacOS take the best bits from it and still keep all the good things I enjoy with MacOS.

But it didn't work.

I've really tried, and given it close to two months daily, but it just feels too "hacky" for lack of a better word.

It's all kinds of janky and frustrating at times, and I can't get the shortcuts set up in a way that feels natural to me because of how Mac uses the CMD key mixed between system-wide shortcuts and app-specific shortcuts. In Omarchy it feels very natural: CMD is only for system-wide operations, whereas CTRL and ALT are app-specific. It feels very natural. But in Mac it all gets blended together and I don't like it.

I've tried everything from a complete adaptation of the Omarchy shortcuts, to a more mac-workaroundy solution, but it all just ends up feeling muddy.

The same goes for JankyBorders and Sketchybar. They are really great apps and they do get you very close. But still, its not quite there for me, and ends up feeling more noisy than helpful.

So now I'm going back to a plain old MacOS setup for a while, and just use Omarchy as intended, and MacOS as intended.

Less time spent fiddling around with configs, which is always a good thing.

Switching back and forth between my Mac and Omarchy

Decisions decisions.. I have been using both my Omarchy machine and my MacOS (now Tahoe) the last weeks.

In the beginning I really enjoyed Omarchy, and I only reluctantly used my Mac when nescessary.

However after the honeymoon phase where Omarchy was such a fresh breath I hit a few obstacles that made me switch over to the mac again as a daily driver this week.

The reason for these obstacles were not on the OS-end though. Omarchy was not at fault per-se, but the combination of Omarchy on my macbook was the issue. Specifically two main reasons:

  1. I have no sound on the Omarchy machine. Kind of annoying.
  2. Suspend (sleep) doesn't work. I cannot wake it up again after.

These issues were still not holding me back in the beginning. I just ran music from my mac og phone, and turned off the machine after my days work.

But it began getting annoying after a while. And since I ruminate for ever about wether or not buying a Beelink or Framework makes sense I still am stuck with this sort of half-functioning Omarchy-machine.

I feel its an unfair fight though. My MacOS machine is substantially better specced, and has none of the two issues above. Whereas a dedicated linux machine (like Beelink or Framework, or mostly anything outside the mac-world I guess) would likely run much better. Especially regarding the two issues above.

So how would thing look if the comparison was more fair? That's the big question. I go a bit back and forth, but I do believe Omarchy is a substantially better fit for most of my work-related tasks.

The MacOS is however a better fit for my private life, as the rest of my family use it and everything that comes with it. But to be honest, I don't use the computer much for private stuff anyway. I mainly use the computer during work hours for work (duh), and most of private stuff is anyway on the phone, which for now is an iPhone.

And it's not like the macbook goes away anyway. I have that, but I am very tempted to go all in on Omarchy as my daily system. But I'd like a better machine for it than my broken flexgate-ridden butterfly-keyboarded issue-prone macbook. Currently eyeing the Beelinks.

The case for ephemeral workstations

I'm about a week into using Omarchy (on a 2017 Macbook), and I've been thinking a lot about how much customization or not I want to be doing on it, seeing that it's more of an exploration than a long-term plan to use this almost decade-old machine.

One thought that has stuck with me, came from hearing DHH talk with Adam Wathan a few weeks ago:

DHH: "I don't have anything on an individual computer that I care about. That computer will at most have a minute or two of local state that's not disposable. And that's just until I hit "git commit" or whatever.

The second I've done that, I could take that box and I could chuck it out the window. It can be stolen, it could get lost, it could burn down, and none of my data is gone. None of my configurations are gone. I have everything reproducible.

So I knew the second I started on Omarchy that I wanted that again."

The whole process with setting up Omarchy as a work station has made me very aware of every aspect along the way, and the value in making the whole setup reproducible.

It's an interesting learning experience, and it definitely also affects how I work on the MacOS. Instead of mindlessly letting the downloads folder etc. growing, I've become more aware of cleaning up and sorting things where they should be. Both as an effect of switching between the mac and omarchy machines daily now, but also as a result of starting out on a clean install again and wanting to keep it as close to that as possible.

I always felt a bit icky about setting up a new mac machine based on an old one. It's easy, but it always feels like I drag along a lot of old stuff I no longer need. Better to start fresh each time and keep the setup to a minimum.

Seeing how nice of a setup I have on the Omarchy as a first time user, in less than one week (on an old machine) has made me realize that maybe I'm not as dependent on my macbook as I previously thought.

Connecting Omarchy with MacOS locally

I finally managed to get my 2017 Macbook up and running on Omarchy. (Yippie!)

One of the first things I wanted to get sorted was syncing files quickly between my main Macbook (M1 2020 Macbook) and my Omarchy (the 2017 Macbook)

This article goes through how I did it.

First I needed to allow for external login on my Mac, and figure out the hostname. See my previous article on this.

After you have found out and activated remote access on the mac, it's time to find thje Omarchy hostname. In my case it was "archlinux".

Find out by running hostnamectl in the terminal and grabbing the "Static hostname" and adding a ".local" afterwards.

So in my case it was like following:
My MacOS host name was: macbookpro.local
My Omarchy host name was: archlinux

To simply connect from the Omarchy to my mac, i could do the following:

ssh eddie@macbookpro.local where eddie is my username, and typing my password when prompted.

How about the other way? Connecting to my Omarchy from the MacOS?

First I needed to install openssh. I did it via the alt-super-space - «install» - «package» and «openssh».

Start the SSH daemon (immediately)
sudo systemctl start sshd

Enable SSH at boot (optional but recommended)
sudo systemctl enable sshd

Confirm it’s running
systemctl status sshd

Then I can connect from the MacOS like this:

ssh eddie@archlinux.local where eddie is my Omarchy user and typing my password when prompted.

Moving files from the MacOS to Omarchy

First off I install rsync. On Omarchy I do that via the install packages solution again, and on the MacOS I use Homebrew.

Now, as an example I'll mode the folder /Documents/example from my MacOS into my /Documents folder on my Omarchy. 

In this case I am in the /home/eddie directory on my Linux - meaning one level above the /Documents folder.

Running the following rsync command syncs the folder from the MacOS to the Linux machine, and now I have the example folder within the Documents folder on my Linux. (tips: run the rsync command with --dry-run as a parameter to test before running it)

rsync -av eddie@macbookpro.local:~/Documents/example Documents

Making it better. ssh-key instead of typing password every time

For this you’ll need an ssh key on each computer.

To create, run: ssh-keygen -t ed25519 and continue to add a passphrase if you want.

Once created on the Linux machine, add it to the mac like this:

ssh-copy-id eddie@macbookpro.local

Now the Linux ssh-key is inserted to the mac, and allows access without the password.

Test like this:
ssh eddie@macbookpro.local
Now it should work without password prompt.

How about the other way? Connecting to the Linux from MacOS?Same process. Make ssh key and add it the other direction:

I made a new dedicated ssh key for this:
ssh-keygen -t ed25519 -f ~/.ssh/ided25519arch -C "mac->arch"

Add a clean SSH config entry

Edit ~/.ssh/config on the mac and add this:

Host omarchy
   HostName archlinux.local
   User eddie
   Port 22
   IdentityFile ~/.ssh/ided25519arch
   IdentitiesOnly yes

Copy the key (will ask for your Linux password once)
ssh-copy-id -i ~/.ssh/ided25519arch.pub omarchy

After this now I can just type ssh omarchy and it should work without password prompt.

That same setup from the linux to mac:
edit the ~/.ssh/config

And add:

Host mac    
   HostName <YourMacName>.local    
   User <YourMacUsername>    
   IdentityFile ~/.ssh/id_ed25519    
   IdentitiesOnly yes

After this just type:
ssh mac to connect to the mac from the linux machine.

Adding simple commands for sending back and forth

Now we can create simple bash commands for sending to and from the Desktop on the mac / linux machine (inspired by Derek Sivers)

On my Linux machine, I have now created two files:

  1. Create the bin folder (if needed):

mkdir -p ~/bin

  1. Create tomac and tolinux scripts:
echo '#!/bin/bash
rsync -av --delete --remove-source-files ~/Desktop/ mac:~/Desktop/  && \

# Delete empty directories on Linux source after rsync completes successfully
find ~/Desktop -type d -empty -delete && \

# Log completion
echo "Sync to Mac finished at $(date)"' > ~/bin/tomac



echo '#!/bin/bash
rsync -av --delete --remove-source-files mac:~/Desktop/ ~/Desktop/ && \

# Delete empty directories on Linux source after rsync completes successfully
ssh mac "find ~/Desktop -type d -empty -delete" && \

# Log completion
echo "Sync to Linux finished at $(date)"' > ~/bin/tolinux
  1. Make the scripts executable:

chmod +x ~/bin/tomac ~/bin/tolinux

  1. Add ~/bin to your PATH (if it isn’t already):

export PATH="$HOME/bin:$PATH"

Then reload:

source ~/.bashrc # or ~/.zshrc

Now you can just type:

tomac     # Send from Linux to Mac
tolinux   # Pull from Mac to Linux

Because I both use a mac and a linux, this way it's easy for me to just dump files to the desktop, and transfer over to the other computer as needed.

My mac tiling setup inspired by Omarchy

Things I really like about Omarchy

  • The tiling via Hyprland (at least in theory)
  • Keyboard driven usage of the Operating System
  • Straight sharp corners/edges
  • No animation, or adjustable animation between workspaces
  • Frameless web apps
  • Snappiness

My current mac setup inspired by Omarchy

Homebrew

Homebrew is ground zero. This is where we start. Install it by opening a terminal and pasting the install script from https://brew.sh/

JankyBorders

Install via Homebrew: https://github.com/FelixKratz/JankyBorders

This will be used afterwards to clearly show which window is active.

Karabiner Elements

Karabiner-Elements is a powerful and stable keyboard customizer for macOS.

I mainly just want it for one task: creating a so-called HYPER-key. A combination of left-shift, left-ctrl, left-cmd and left-alt by the keypress of CAPS-LOCK (Which I don't really need otherwise)

Install here: https://karabiner-elements.pqrs.org/

Boot it up, and go to Settings -> Complex Modifications -> Add pre-defined rule and enable caps_lock to command+control+option+shift.

remember to grant permissions as per documentation: https://karabiner-elements.pqrs.org/docs/getting-started/installation/

Aerospace

Aerospace is the most integral part of the tiling setup. Install it via Homebrew: https://nikitabobko.github.io/AeroSpace/guide#installation

My config file can be found here

Sketchybar

Sketchybar aims to create a highly flexible, customizable, fast and powerful status bar replacement for people that like playing with shell scripts.

I don't really like to play with shell scripts, but I find the customization straight forward for my needs.

Install here: https://github.com/FelixKratz/SketchyBar

My sketchbar config can be found here.

Make decisions regarding workspaces

Window tiling can be nice, but in my personal experience, its very rarely positive with more than two windows in the same screen. I even mostly prefer it at one.

This means that you need to use workspaces dedicated for different purposes.

This is my setup:
Workspace 1: Browser
Workspace 2: Design (Mostly Figma)
Workspace 3: Code (Terminal + editor)
Workspace 4: Mail
Workspace 5: Music
Workspace 6: Project Management Tools
Workspace 7: Empty
Workspace 8: Empty
Workspace 9: Empty

On my empty three last slots, i juggle things like Notes, Discord, Whatsapp, Messenger and other random apps I don't dedicate a workspace for (yet).

As you can see from this setup, its actually only workspace 3 that per default has two tiles. Most others are mainly one. Why? Because many of the UI's are clunky. Take Spotify as an example. Even on my 27" screen on a 50% tiled layout, it feels crammed. Same goes for Mail or Figma.

Does it mean window tiling system is the wrong approach? Maybe. Time will tell. But the instant switching of workplaces are the main key useage for me. This ties back to my initial point on "things I like" regarding window tiling. I like it in theory, but I'm not sure yet if I actually like working with tiles all that often.

It's a bit similar to the "multiple screens or one screen" discussion. I had two screens in the beginning of my career, but quickly found out that it was not a good thing for my focus or for my neck. I've been using one screen for most of my life, and prefer it that way. I focus on one thing at the time, and don't like noise on other screens. The same applies to tiles. I don't want live updates from my CPU processes while I'm writing a blog post.

My most used commands

cmd + 1 = Workspace 1
cmd + 2 = Workspace 2
cmd + 3 = Workspace 3
...
cmd + pageUp = Previous Workspace
cmd + pageDown = Next Workspace
cmd + home = Workspace 1
cmd + end = Workspace 9

cmd + shift + 1 = Move selected window to workspace 1
cmd + shift + 2 = Move selected window to workspace 2
cmd + shift + 3 = Move selected window to workspace 3
...

cmd + left = focus to left window
cmd + down = focus to below window
cmd + up = focus to above window
cmd + right = focus to right window

ctrl + shift + left = focus to left window
ctrl + shift + down = focus to below window
ctrl + shift + up = focus to above window
ctrl + shift + right = focus to right window

alt + f = fullscreen (toggle on/off)
cmd + j = horizontal / vertical split (toggle)
hyper + f = floating (toggle on/off)
hyper + d = reset the tiles back to default

hyper + m = switch to merge mode
arrow keys = merge with [direction] (in merge mode)
space or esc = escape merge mode

hyper + w = workspace mode
left/right = go to workspace [direction] (in workspace mode)
shift left/right = move window to prev/next workspace
up/down = go to prev/next monitor
space or esc = escape workspace mode

hyper + r = resize mode
left = decrease width (in resize mode. add shift to have bigger increments)
right = increase width (...)
up = increase height
down = decrease height
space or esc = escape workspace mode

Wishlist

Straight borders, but thinner. The Jankyborders solution needs to have thick enough borders to cover the rounded ones from Apple. Kind of meh.

Ability to freely decide if a window should be centered, tiled etc. without regards to other tiles. ie. one window on the workspace should be able to be tiled regardless of being alone on the workspace. Lets say I just want to drag a file from the desktop into another window. Then I'd like for the window to just be on the left side, leaving the desktop visible.

Even though I don't use more than two tiles often on the screen, when I do it's likely 3, and then I want a bento-style and not three columns or rows. It'd be very cool if the third frame in a workspace would combine with the second in a similar way to Omarchy automatically as a default.

Final thoughts

I'm giving this setup some time now, but it will be interesting to see if I prefer it over the previous Rectangle-based setup and old-fashioned cmd-tabbing between apps.

Link to my config files

How does it look?

The obligatory screenshot: "very busy work-person doing very important things"

Convenience over purism

I’m fascinated by photographers using film cameras, guitarists on plain old tube amps, authors writing books with pencil on paper, and the list goes on.

The same goes for Vim (and Neovim) for programmers. It's very pure and inspiring to watch.

However, I have found that I am more of a "convenience-over-purism"-type of person.

Modern guitar modellers are close enough to tube amps for my needs.

A digital Fujifilm has enough manual controls to get close to that «film-feeling» for me.

This is also the reason why Omarchy might be a step too far in customization for my liking. (update from a week later into the future: it's not)

Sure, Apple and macOS have their issues, but it’s close enough for most of my needs.

That being said I draw a lot of inspiration from Omarchy, integrating some of its elements into my macOS setup. And I also really like DHH's energy. It's very captivating and almost had me buying a Framework laptop I don't really need.

Omarchy inspired Mac setup

I'm really inspired by DHH and the push for Linux and Omarchy.

I even installed Omakub last year on an old mac to get a taste of Linux. Omarchy takes everythin a tad further in customization in a way I really enjoy the looks of. I'll probably wipe the Omakub and try out Omarchy soon, but that is not ment as a work computer. Just as an exploration.

Because, even as inspired by it as I am, I try to pragmatically think first; "What is it that speaks to me?" and "Would it be possible to get close enough to it without such drastic measures as changing the OS?"

This is currently the path I'm on. I'm working on getting my Mac close enough to the Omarchy look and feel, but still keeping most of what I enjoy and use on the daily in the Apple ecosystem.

I've come to realize that what I want are mainly two things:

  1. Better window tiling and spaces-management
  2. A more keyboard driven usage of the computer

To try to get closer with my Mac, I started by adding Yabai and skhd.
This got me pretty close, but the process got into a halt when I realized that even with all the configging and adjusting done, I still needed to boot in recovery mode and disable SIP to get where I really wanted.

What did I really want? Mainly instant switching between spaces (screens). The native spaces (Mission Control) from Apple has default swipe-animations between them (which can be disabled), but even in a disabled state it has an annoying fade. Furthermore without disabling SIP the keycommands for moving application screens between spaces didn't work.

So I reached a crosspoint. Either I'll go further down the Yabai+skhd route, or I'll try the alternative: AeroSpace, which has some alternative ways of dealing with this issue without needing SIP disabled.

I chose AeroSpace, and this turned out to be a massive improvement in what I looked for.

Now I have instant switching between spaces, simple commands to move windows between them, and good window tiling.

Along the way I've also installed:

Raycast, which I'm still evaluating if I really need or not.

Karabiner Elements (for making my Caps Lock a hyper-key).

JankyBorders to better highlight the selected window.

I might also dive into Sketchybar, but for now I'm happy without it.

Yey, your CMS has an update!

(But no one cares… except you.)

Exciting? Maybe for you.
Your client? Not so much.

They probably won’t notice.
They definitely won’t ask for it.
And they almost certainly won’t want to pay for it.

After all, the site still works, right?

But you as a developer know what happens if you don’t keep up

• Bugs creep in
• Plugins break
• Security holes widen
• And soon you’re knee-deep in technical debt

Still not sexy. Still not billable.

Maybe your clients are more forward-thinking than mine, but personally I’ve found this kind of work really hard to get paid for.

Meanwhile, the update notifications pile up

Each one adding a bit more guilt to your day. And guess who’s to blame if things go sideways? Yep — you.

You’re stuck maintaining tech that no one wants to maintain, for a fee no one wants to pay, on a schedule no one respects.

But here’s the kicker

Ignoring updates might save money now, but it often leads to bigger, more expensive problems later.

By the time things break — or the site gets hacked, or a plugin stops working, you’re not just updating anymore.
You’re rebuilding. Troubleshooting. Firefighting.
And that costs a lot more.
Both in time, money, and client trust.

“This maintenance task you didn’t want to pay for six months ago?
Now it’s an emergency fix that’s five times the cost.”

– Not a fun conversation.

(written with help from ChatGPT)

Slow development

Over the last days I have found it interesting to follow the thread on Reddit regarding the direction Laravel is heading.

I am not using Laravel a lot myself, so I follow it rather from the perspective of general software – or even company – development. Simply seeing the fact that a lot of long-term users slowly long back to simpler times. Some even ask straight up for suggestions on Laravel 5-like frameworks out there.

In a software sense, I draw some parallels between the Laravel situation to my own experience with Craft CMS, which I've used a lot the last 7 years. Already back with the introduction of Project config back in Craft 3.1 I felt it switched from being a very simple CMS I could co-work with designers and non-tech people on small to medium sized sites in a very lean way. We could both edit and modify CMS fields on the go, and it made for a very frictionless way of working.

The optional project-config soon became non-optional and have been a source of many headaches since. Most have been solvable and probably – as the reddit post also points out – just points towards myself (and my colleagues) lack of technical expertise. As the OP writes: "People will probably downvote me for this and say it's a skill issue, and maybe it is..".

Even if it is a skill issue, it's an interesting phenomenon. Updates and incremental improvements are often only thought of in a positive light. "great, new features!". But everything comes at a cost.

Another CMS system I use, which I feel stand out in the matter of slow and steady gradual and highly thought-through development is Kirby CMS. I heard in a podcast about a year ago from its founder something that has stuck with me to this day, which I feel shows a different thought process entirely. Since the podcast is in German (and I'm not even German myself, but know enough to get by) I'll summarize the essence:

In development it’s often tempting to scrap all of the work and start new. But the long term view is important. For Kirby 2 everything was written from scratch. It was so tempting and nice to use new tools, tech stack, code editor and everything around it. But this was something he (Bastian) called a big mistake, and definitely nothing he repeated again for versions going forward. The main captivating idea that stuck for me was the line "thinking like a gardener". It requires patience and gives a different type of satisfaction than the "flashy new tools"-direction, and is something I find very noble.

Unfortunately consumerism and the fast-paced world we live in has no time for slow development. Most small and slower moving projects dont survive. The really little content management system called Perch CMS back in the day was so much fun, but ultimately did not have enough buyers to keep going. Founders, investments and a ton of features would probably have kept the company alive, but to what cost? It would then have resulted in a completely different product in the end, and most likely it would have been worse.

Even though it feels like a losing battle, I cheer for the slow and steady ones out there. But maybe it's just me getting old.