Clean a huge tar file in place - without extracting the contents

This is one of those options you don’t know exists till you need it (or sometimes you don’t know even when you need it because you were too afraid to ask lazy to search)

Continue Reading »

Taming Zellij Keybindings on macOS: A Journey Through Conflicts and Dead Ends

If you use Zellij as your terminal multiplexer on macOS, you’ve probably hit the same wall I did: the default keybindings are built around Ctrl, but on macOS inside a modern terminal like Ghostty, Ctrl is a warzone. This post documents the full journey of finding a setup that actually works — including all the wrong turns.

The Problem with Ctrl on macOS

Zellij’s defaults use Ctrl as the modifier for every mode-entry key: Ctrl+T for tabs, Ctrl+P for panes, Ctrl+O for sessions, and so on. On macOS, this causes immediate conflicts:

Continue Reading »

→ Oh My Posh

I had heard about Oh my Posh several years ago. It was in the context of Oh my Zsh 1 Oh My Posh was its Powershell cousin.

Since (AFAIK) Powershell is on Windows, and I haven’t used Windows in so many years, I had no use of it.

Then few days ago, I came across XeroLinux 2

The shell prompt looked very nice. I had assumed it must be starship which was my prompt engine till that point. But looking at XeroLinux’s github, I could not find starship.toml but I found Oh my Posh config instead.

Continue Reading »

Solved: unknown terminal xterm-ghostty

Add the following to your (platform specific 1) config file

shell-integration-features = ssh-env, ssh-terminfo

Now reload the configuration.

The configuration can be reloaded at runtime by pressing ctrl+shift+, (Linux) or cmd+shift+, (macOS).


Update: (13 April 2026)

Here is another solution, maybe generic, does not involve updating Ghostty’s config file

infocmp -x xterm-ghostty | ssh YOUR-SERVER -- tic -x -

This would work for other unknown terminal type errors as well. Just replace xterm-ghostty with other terminal type which is giving unknown terminal type error.

Continue Reading »

Better History Search

No, I’m not talking about Atuin. 1

I improved my search experience with just one tool - fzf

As you might know, fzf is a general purpose fuzzy finder. 2

But adding just source <(fzf --zsh) at the end of ~/.zshrc (and/or running it in your existing session) improves your Ctrl+r experience.

See the demo yourself.


  1. I must confess that I’m tempted multiple times. But I think their USP is history sync, which is not my use case right now. For now, I’m happy with my current solution. ↩︎

Continue Reading »

Terminal : How to copy files showing progress

While copying large amounts of files (lots of photos) I used to use Finder in the macOS. Good ol’ drag-n-drop

Usually it is reliable, but lately I’m facing some problems when copying files to external disk.

Finder itself would become unresponsive.

So I decided to use terminal instead.

It worked (kinda) but it took 51 minutes to finish the copy (There were a lot of files)

and as you know traditionally cp does not show progress.

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)

I have not used it a lot.

Continue Reading »

→ Zellij Plugins : zellij-forgot

I didn’t even know Zellij had such extensive plugin system.

I’m going to explore more of those in coming days.

Let me start with Zellij Forgot

While the main (original?) purpose was (I assume) to remember various Zellij Keybindings, it can be extended to remember anything. 1

While default/out of the box config will load the existing keybindings, it is a bit weird. It shows things like Some(Down, None) which seems more of Rust internal code and may not be directly useful to the user.

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.

Continue Reading »

macOS: How to render thin(ner) strokes in Alacritty

After going through omakub 1 and its source, I wanted to recreate it on macOS as much as possible.

The first thing was to use Alacritty.

I had tried it in the past, but moved to Wezterm.

The reason I stopped was because there was no support for panes or tabs (which is by design) But now that I’m anyway using Zellij for that, I decided to give Alacritty another chance.

But default rendering looks fat (or bold) which I didn’t like.

Continue Reading »