Installed openSUSE on Macbook Pro (Intel)

My Macbook Pro (early 2015) isn’t getting any OS updates for some time. Only version it supports is Monterey (which is already couple major versions behind the latest) brew has also started complaining as This version is not supported So I’ve been considering installing linux on it for some time anyway. I finally pulled the trigger and installed openSUSE Tumbleweed I had tried the live version, and knew and it generally works.

Continue Reading »

Omakub : Lazyvim

As I wrote earlier, I skipped over neovim initially, but then got curious. I installed Neovim and configured it to use Lazyvim. I was blown away by how nice it is. My last serious affair with neovim was two years ago. 1 Lot has changed since then. Lazyvim wasn’t even born when I stopped using neovim 2 It is quite polished.3 The hotekys are mnemonic and intuitive (coming from doom emacs, at least)

Continue Reading »

Omakub : Pinta

While Omakub was mainly intended for developers (and thus has focus on terminal based programs like alacritty, zellij and neovim), it does come with few GUI programs. I think this is mainly because DHH was trying to switch to Linux as his primary machine, and requires some non-terminal tools. Choice of Pinta and Xournal app were interesting, so I installed both of them. I assumed Pinta to be MS Paint replacement.

Continue Reading »

→ Omakub

Yesterday, I came across this new script released by Basecamp.

The one-line pitch is:

Turn a fresh Ubuntu installation into a fully-configured, beautiful, and modern web development system by running a single command.

This was started by DHH, but now has a lot of contributors.

Since I’m not on Ubuntu, I can’t directly use it. But I’m tempted to set up Ubuntu on a spare (?) machine just to try this out.

Since this is how DHH wanted his machine to be setup, it installs apps like Zoom and Signal etc among others.

But as the intro post says :

the heart of the pre-configuration lies in the terminal

Since I also spend a lot of time in the terminal on macOS, it was something I could try. Luckily, most of the tools are available for macOS too.

I really liked tokyo-night everywhere.

Here is what I have done so far.

  1. Switched to Alacritty from Wezterm
  2. Configured Alacritty and Zellij 1 based on omakub config
  3. Installed flameshot. Earlier, I used to use Zappy for annotating screenshots (To be shared with bug report or a fix.)
  4. Installed eza replacement for ls I had tried exa - before eza was forked out of it since exa was unmaintained, and for some reason, forgot to install it when I reinstalled macOS recently.
  5. Made same font as omakub my default for Alacritty

Things I did not install:

  1. mise : I already use asdf, so I don’t see much use switching. mise also has task runner functionality, but I use just in place of make, so I’m good.
  2. Neovim 2 : Happy with Emacs and Helix. Thank you very much. Update
  3. Lazygit : I tried to use it. But I couldn’t learnt the keybindings and felt like I can’t use it. For now, I’m happy with magit when in Emacs, and just plain ol’ terminal when writing in Helix
  4. lazydocker seems interesting. I might try it when I need to interact with docker a lot
  5. Typora: Since I use Helix for markdown (like these posts), I skipped that section of the demo video. omakub also installs VScode (which I already have) which can very easily be used for markdown, why an editor just for markdown ? It might make sense for DHH - who I assume writes lot more text than me.

Overall, this exploration was much fun.


  1. Since I was already using Zellij, this was nothing more than theme change. ↩︎

  2. It is not like I’ve not spent enough time configuring neovim “just right” 😄 ↩︎

Install LetsEncrypt certificate

Today I installed LetsEncrypt certificate on one of the production server. I can not believe it is so simple to secure a website running on an Ubuntu server sudo apt-get install certbot python-certbot-nginx sudo certbot --nginx -d mydomain.com -d www.mydomain.com It even configures nginx (or apache) server for you. To manually renew run the following: certbot renew --quiet But you don’t have to, cause certbot is so awesome that it automatically adds an entry into crontab so that certbot runs twice daily.

Continue Reading »

Configure `rsyslog`

Today, I configured rsyslog on Ubuntu server to collect logs from remote application server. syslog using UDP seems straight forward, but I wanted to set up using TCP (TCP being more reliable and all) At first, it did not work because I needed to tell SysLogHandler that we are using TCP using SOCK_STREAM as optional param. (Default is UDP) So in a standalone test script, remote logging worked. Turns out because of how TCP works, the logs are not flushed to the remote server till the application server closes the socket connection.

Continue Reading »