Learning my tools - Winter 2025
I am a big fan of deeply learning my existing tools before shopping around for replacements. I’ve mentioned it before and I’ll keep saying it, constantly researching and testing different apps is a form of procrastination. You just need to learn your tools and get to work.
Each year we close down our construction contracting business during the coldest time of year. I call this my hibernation period. This year I wanted to spend more time learning more about the tools I already use and push myself to do more with them during my hibernation.
I figured I would share what I’ve learned.
yazi
I don’t have enough words to describe how much I love using yazi. I wrote about it last summer and I was barely scratching the surface.
- Instead of
mv, it does cut/paste method. Hitxto cut, thenpto paste. - Hit
zforzoxideand navigate straight to a directory. - Hit
Zto usefzfto search for a file or directory. - I updated my
keymap.tomlfile to add a shortcut to open the current directory in a new Terminator window. I don’t prefer using the shell command option inyaziand want a new terminal pane. This setup works fine. - I also added a keyboard shortcut to do the same, but also launch
gitui. I like this workflow much better as then I’m have a new workspace for my task.
Here is my keymap.toml file:
[manager]
prepend_keymap = [
{ on = "T", run = "shell --orphan --confirm 'terminator -M -b'", desc = "Open terminal at current dir" },
{ on = ["g", "i"], run ="plugin lazygit", desc = "run lazygit" },
{ on = ["g", "I"], run = "shell --orphan --confirm 'terminator -M -b -e gitui'", desc = "Open directory in gitui" },]
]
rsync
I am such a beginner when it comes to rsync even though I use it almost ever day. It feels like the stuff I learned the winter I should have known a long time ago.
- You can exclude a directory with
--exclude. So, if you want to transfer/mnt/foobut exclude/mnt/foo/baryou dorsync -azv --exclude='bar' /mnt/foo /some/new/path - Before starting a transfer, do
--dry-runto make sure its all okay.
chezmoi
I realized I am not using my dotfile manager to its full capacity. Even how I use it now feels like I am under-utilizing it.
- You can create a installs script and chezmoi will automatically install what’s on in the script, in addition to pulling the dotfiles. My script adds and removes some directories in my
$HOME, installs packages fromapt, and sets up Docker and Distrobox.
Stew
This was a recent discovery for me. I love it when a project has a single binary to run instead of a PPA, flatpak, or snap. Don’t even get me started on brew, cargo, and npm. Using stew helps with installing and managing these binaries.
Here is some extra stuff I learned about stew this winter:
- I can put the
stewconfig and the binary path inchezmoiand it will pull those when I pull my dotfiles. - Pulling the files with
chezmoidoesn’t work if you change architectures. Rather than mapping the config and binary path, I created aStewfile.lock.jsonforx86andarm64.
Docker
Originally I thought I was going to spend more time learning LXC so I could minimize the resource allocation to virtual machines in my homelab. Instead, I went deeper and deeper into Docker. I love Docker and I think I’m ready to start writing my own containers.
- Switched almost all of my configs to
composeand learned how to write acomposefile. I had been usingdocker runfor everything and was resistant tocomposebecause I just couldn’t wrap my head around how it worked. Now I get it. - Can use
compose pull,compose restart,compose stop, andcompose startwhen working with the files. This was my biggest mental barrier and I was mixingdocker runanddocker composecommands. I feel way more comfortable withcomposenow. - I learned that [[Forgejo]] can be used as a container registry and makes it easier to save and use containers in my archive. For example, instead of using
sigoden/dufsin acomposefile, I can usemy.git.instance/$USER/dufsand it will pull it from my own server. I have this set to automatically update, too. I wrote a lot more about this in a recent blog. - I migrated three virtual machines to Docker and cut the resource allocation by 90% while still keeping things easy to manage and backup.
- - - - -
Did you like this post? Give it an upvote by clicking on the arrows below! Sending me an upvote is like you and I giving each other a high five.
🙏 😎
Thank you for reading! If you would like to comment on this post you can start a conversation on the Fediverse. Message me on Mastodon at @cinimodev@masto.ctms.me. Or, you may email me at blog.discourse904@8alias.com. This is an intentionally masked email address that will be forwarded to the correct inbox.If you enjoy the random stuff I write here, post to Mastodon, or watch on YouTube, and are feeling generous, I am open to tips of Ko-fi.