Today, after applying latest update of macOS Monterey, I restarted my laptop.
But Firefox won’t start 😢
No error, no nothing, no window either.
At first, I uninstalled existing version, downloaded a fresh one from internet (using Vivaldi). I assumed that maybe my OS update broke something, and reinstalling might help.
It didn’t.
Then, I started Firefox from the terminal hoping to see error, if any 1.
Didn’t help.
Next, I decided to remove the cache.
Today, I accidentally found out that instead of using {:?} to debug print, if one just adds an extra # like {:#?} the variable is pretty printed.
This makes sense for struct rather than simple data types like numbers or strings.
The interesting part (for me at least) is how I “discovered” it 😄
When I was printing a struct (for debugging 🙈) VS Code (I think rust analyzer plugin) showed a popup how the struct does not implement Display 1
TL;DR: When inserting a link (especially of the image) one can add pipe followed by size. This size is used for displaying embedded image inside the note.
For example, I have a markdown and excalidraw mixed note named Dashboard
It references itself (for the excalidraw image on the back of the note) like ![[Dashboard]] 1
This results into an image that just shows small preview that is not useful, especially if image is wide (and/or tall).
I have been using macOS for almost 9 years, and never used the workspaces
feature (Not sure when it was introduced)
But after looking at Omakub I started using this feature.
Essentially, I divided the apps as follows. (Or at least that is what I
wanted 😄) Each app (window) on its own workspace.
Alacritty
Firefox
Vivaldi
Whatsapp and Telegram (Social apps) together on separate workspace.
But somehow, some of the browser windows (I think new ones, after I moved
existing windows to different workspace) moved to different ones.
Suddenly, it started feeling “jumpy”
(I think) I eventually figured out how to ensure that all the firefox windows
remain in the same workspace 1
While looking at all these, I came across Amethyst (Still exploring, maybe
upcoming post) and also WhichSpace (finally app mentioned in the title of this
post 😆)
This is really tiny utility. It shows the desktop number (like 1, 2, 3, 4) that
is all.
But it is useful (at least I think so)
In the dock, right click on Firefox icon -> Options -> Assign to -> This
Desktop. The default is None hence the seemingly erratic behaviour. ↩︎
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” ↩︎