Schlez
2024

Things I Use (2024 Edition)

Software and hardware that made 2024 to be not that bad.Published .

Last year, there was a wave of people sharing their favorite tools on their blogs and websites. Because I have no self control, I wrote a similar draft to share with my crowd of followers (∅). This draft was never published, but it's late December 2024 now, and I thought--why shouldn't I share what I am using this year?

Mac Setup

I just received a new MacBook Pro M4 Max. This replaced my MacBook Pro M1 Pro that I had for the last ~3 years at Vercel. Nothing too special here. What's special is what's inside!

I am using a Keychron K2 I bought on their kickstarter campaign years ago. I switched to Keychron from Vortex Race 3 as it broke when I was in IDF reserves. Recently I ordered a NuPhy Halo75 with silent switches as my wife started to work on the same home office as me, and I need to be quieter.

I have a lot of recording studio gear (I dreamt about being a musician growing up). It never works reliably on my video conferences though. Can't really understand why, but I also don't really care.

👀ohhh btw

I do not use nix, even though it's very on brand with me to use it. I wanted to, and tried to use it, but frankly, I can get off with just a small amount of shell scripts.

Setting up my Mac should be a matter of cloning a repo and running a setup script:

mkdir -p ~/Code
git clone https://github.com/schniz/dotfiles ~/Code/dotfiles
cd ~/Code/dotfiles && ./setup

Eventually, I'd want to have the same dotfiles running for my homelab too, so once I set it up it, the bash scripts might get hairy. For now, having a very easy to understand bash script it better than having Nix doing all of its magic.

Still excited about nix-shell though. I'd be very happy to avoid global installations.

Software

My computer usage is fairly basic (to my eyes)! I mostly use a browser and a terminal. Although I do have custom keyboard configuration that allow me to type and use the computer faster.

I use Karabiner Elements to customize my keyboard behavior:

  • I map Caps Lock to ^ Ctrl so ^C will be easier to press without flexing my palm. I do not need Caps Lock in my life. There is no need to shout!
  • I map Left ^ Ctrl to Apple's Fn, as it's useful to have it on external keyboards too (and Caps Lock already gives me a Ctrl key)
  • Right ⌘ Command is my language switcher if pressed alone, as I regularly switch between English and Hebrew input sources
  • if Right ⌘ Command is pressed with multiple keys, it is mapped to ⌘⌥^, enabling complex keybindings in Aerospace. More on that later.

I'm using Ghostty as my terminal emulator. I switched to it from Alacritty and to be honest, it doesn't really matter to my use case. I do love what Mitch is doing and I'm a big fan of everything he does so I immediately migrated once I had the opportunity.

That being said, I'm running a zsh shell with tmux as my terminal multiplexer. Been doing that for a good amount of time. I've been continuously thinking of making a small tmux-like wrapper for my shells that will map my tmux commands into native Ghostty commands, so I won't be running a terminal emulator (tmux) within a terminal emulator (Ghostty).

My editor of choice is Neovim (btw). Nothing too special here. Been using Vim since 2013/2014 and switched to Neovim when it was announced. Never looked back.

I used to run Vivaldi as my daily browser but they had a sync outage for more than 2 weeks since migrating to my new mac, and I am now using a plain Google Chrome. Might go back to Vivaldi though. My default browser app is actually Velja, which is a sick app by Sindre Sorhus (the open source whisperer). I use it to automatically route URLs to the browser profile that fits best, or to manually choose one. For instance, 𝕏, Bluesky or other social platforms will always open my personal browser profile, while everything related to my work at Vercel will open in the work profile.

I take notes in Obsidian. I love the fact these are plain Markdown files. I can randomly edit them in Neovim if I need to, but I can also edit them on the go on my phone. I used to take notes and write blog posts in Notion, but it became extremely slow for me. Maybe it's because I live in the Middle East. All my notes are backed up to Git. I love the local-first mentality here, but it took a long way to make it sustainable due to all the conflicts. Maybe there will be a better approach in the future.

I recently started using Aerospace as a tiling window manager for MacOS. It's pretty dope. Makes me feel faster overall and that's the reason my new laptop is 16" and not 13-14" as all my laptops in the last decade were. I can use the most of the screen space!

Notable apps/CLIs:

  • I love Raycast. A must install on every new Mac installation. At this point, Spotlight feels like the worse ripoff. Can't go back.
  • Notion Calendar and Mimestream are good desktop apps for things that I'm very had at: Calendar and Email. I need an actual app and not a webapp because I can't be trusted on not closing their respective tabs. I tried to use the Apple alternatives but they don't have the tight integration to the Google Workspace, which is very important when the #1 reason for these apps to be used are in a workplace environment.
  • Most of my own scripts are piping data into the general purpose fuzzy finder, fzf. A command line app that is perfect.
  • I use ripgrep as an alternative to grep, most of the time.
  • fd is a great alternative to find that makes more sense and easier to use.
  • I alias ls to eza (formerly exa). Nicer output. Not going back!
  • I also use dust to find where I have too much crap on my hard drive (damn you target and node_modules directories!)
  • I obviously use fnm to mange my Node.js versions.

Homelab

I'm running a small mini computer (Beelink S12 Pro) I purchased off AliExpress for cheap. It replaced a pair of Raspberry Pis (4 and 3), which had power issues and weren't close in terms of performance. It's running Ubuntu and configured with Ansible and a simple Docker Compose file. I tried to go the k3s way but I failed and didn't need the extra complexity.

I run Home Assistant as the "brains" of my smart home. Really recommend it to anyone who wants to start with this kind of stuff. It can bridge so many devices and services, like my cheap relays into HomeKit--so my iPhone and my wife's iPhone can control our lights and switches remotely.

I am a huge fan of Tailscale. I don't really understand how NAT traversal works and therefore it's mindblowing to me I can access my private data, and even SSH my machine without opening a single port. Pure magic!

All my local apps are proxied with Caddy through an HTTPS endpoint, which is so easy it feels like cheating. I'm using the DNS01 challenge as my home DNS points to a local IP within my network.

Recently I installed an ethernet cable going from our apartment into our building's shelter, connecting it to our home network with a guest WiFi. The ethernet cable is connected to a stupid unmanaged switch, that is connected to our router. The unmanaged switch power supplier is controlled with a smart plug, so it's disconnected from our network by turning the switch off. There is an automation that turns on the smart plug as soon as there's a missile rocket alarm in our area--then the shelter gets an internet connection. This was a fun (but also sad) automation to set up!


So that was my 2024 in software. My setup, like myself, is always a work in progress. Let's see what 2025 will bring. 😇

Read more