Today, I was trying to create a banner for my (upcoming) YouTube channel.
I used Canva to get started. It has a lot of templates to get started.
This can be a rabbit hole 😄 But I finalized the one I liked.
After customizing the template to my liking, I was ready to upload it to youtube.
But ..
Turns out, depending on the device where are watching YouTube, different parts of the banner are visible.
What is direnv direnv is a tool that allows you to change your environment based on the configuration in that folder.
e.g. You can set different environment variables for different folders.
The reason I revisited direnv is because for python project, we need to switch to different virtual environment each time we change a project.
Wouldn’t it be nice if correct virtual environment was activated when you change to that directory
One of the workflows I used in vi/m over last 2 decades is : vertical selection and edit
So much so that it is part of my muscle memory and I needed to learn the equivalent in helix.
After some searching, I found it. Here are the steps:
Go to the column you want to select. Press v to enter select mode. Select the column and to go down and up in the column selection use Shift-C or Alt-Shift-C You can repeat the Shift-c command using the numeric operator if needed, like 10-Shift-C to select the column 10 rows vertically.
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)
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.
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.
Instead, (as the README suggested) I added my own “pairs” (This is also given in
the README, I just copy/pasted it)
By default, this adds to the existing list.
Not what I wanted.
Luckily, adding "LOAD_ZELLIJ_BINDINGS" "false" to the config will disable
automatic keybinding loading.
The README has example of buy eggs 😄. Personally, I don’t think it is
very good example. If you remember to look it up, you’ll also remember to buy
eggs anyway. IMO, this is meant for things that one does not use frequently, and
needs to “look up” ↩︎
If you can afford, please pay!
On the other hand, paying to read articles is expensive for you, here is an option (among many others, I’m sure) for you
Install extension like Click to remove element from the Chrome Web Store. It works with others Chromium based browsers as well, like Edge, Vivaldi, Arc and many more 1
When you see a popup blocking the article, you can use extension like Click to remove element and remove the popup 😄
Configured Alacritty and Zellij 1 based on omakub config
Installed flameshot. Earlier, I used to use
Zappy for annotating screenshots (To be shared with
bug report or a fix.)
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.
Made same font as omakub my default for Alacritty
Things I did not install:
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.
Neovim 2 : Happy with Emacs and Helix. Thank you very much.Update
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
lazydocker seems interesting. I might try it when I need to interact with
docker a lot
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.
Since I was already using Zellij, this was nothing more than theme change. ↩︎
Emacs 1 has this command fill-paragraph (Usually M-q) which will auto format long uneven lines to make them look even by adding a hard wrap.
But I use helix for writing these blog entries. That is how I discovered reflow command in Helix.
It is simple really
Select the blocks of text you want to format (by typing x and repeating for as many line as you have). Then :reflow. That’s it!
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.