💾 Archived View for lark.gay › posts › personal-tech-debt.gmi captured on 2024-02-05 at 09:32:36. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Taking care of some personal tech debt

I maintain a backlog of what I call personal tech debt; quirks and inconveniences with my setup that I would like to fix when I have the time and energy.

This month I've churned though a good chunk of it, and I'm quite happy with the results.

Ansible

I use Ansible to manage my dotfiles—synchronizing them between machines, bootstrap new machines, backing up and tracking changes, etc. It's probably not worth the amount of time and energy I put into it, but it is fun to mess around with.

For months my Ansible config has been a mess, and I finally cleaned it up and fixed some issues that have been bugging me:

To be clear, it's all still a bit of a hack. My Ansible config is *self-modifying*, if that gives you an idea. It synchronizes my vim English-word dictionary between devices by combining the version checked into the repo with the one in my dotfiles, and then replacing both with the result.

Vim

For months, I've been contemplating rewriting my ~/.vimrc in Lua. Neovim supports Lua as a first-class alternative to vimscript, and now I've finally gone through and migrated it all.

I've stubbornly refused to learn vimscript for something like 10 years, and now I never have to! The Lua API makes much more sense to my brain than whatever's going on with vimscript.

While I was at it, I treated myself to a new color scheme and a new statusline plugin to change things up.

Neovim Lua guide

Wezterm

I've been using Alacritty as my terminal emulator for a few years now. I was drawn in by the minimalism and the lower input latency (I was sold after a friend set up a blind comparison for me).

Because Alacritty doesn't support tabs, I started using tmux to fill that need.

There were a few reasons why I wanted to try something new:

So I decided to try Wezterm after a friend (who apparently used to work with the author) recommended it. After playing around with it for a while, I think this is an excellent piece of software.

The configuration is all Lua—much like Neovim—and it has a rich API for doing all sorts of cool stuff. For example, it doesn't natively support renaming tabs interactively, so I just implemented it myself in a few lines of Lua.

{
    key = "r",
    mods = "ALT",
    action = wezterm.action.PromptInputLine {
      description = "Enter new name for tab:",
      action = wezterm.action_callback(function(window, pane, line)
        if line then
          window:active_tab():set_title(line)
        end
      end),
    },
},

It has a bunch of other niceties I appreciate as well:

I'm very much appreciating the pretty ligatures as I'm writing this.

Wezterm - Wez's Terminal Emulator

Conclusion

It's very satisfying to get something off your plate, especially when it's something that will make your life easier and computing more fun.

Footnotes

[1]: I discovered that this does not work with the Flatpak distribution.

wez/wezterm#2783

─────────

Posts

Home