User configuration files for unix-y utilities traditionally are named with a leading dot in order to hide them from regular directory listings. Hence: dotfiles.

See mine at https://gitlab.com/d10n/dotfiles. These pages break down and discuss why I have what I have.

Shell config: zshrc and bashrc

It's easy to get overwhelmed when reading other peoples' dotfiles. These pages focus on explaining individual parts of my bashrc and zshrc, with independent copy-pastable snippets. No more stressing about all that scary context!

Vim configuration: vimrc

See:

Patterns and best practices

The source .local pattern

  • Use .local files for machine-specific configuration
    • This allows the same base configuration to be used on all computers while also allowing easy deviation from the base configuration on a per-machine basis

A successful philosophy for software configuration

General approach

  • Take advantage of the tools you have
  • Work with tools, not against tools
  • Preserve expected default behavior (principle of least surprise)
  • Augment tools with optional convenience functions
  • Degrade enhancements gracefully
  • Protect yourself from PEBKAC

Is it worth the time?

https://xkcd.com/1205/

I've arrived here after years of adjustments, fiddling, and tweaks, but I continue to refine my tool configuration as I encounter more ways to be productive.

It's worth the time to me.

  • Each time you use automation, you save time. You only need to spend time automating something once.
  • Reducing friction of reaching my goals when I am focused is critical.
    • Spending time to make the process smooth later will help me keep my train of thought running when it matters most.

There are also some more indirect, but still significantly impactful payoffs:

  • Time spent automating a task is also time invested in learning experience for creating more automation.
  • Time spent on personal satisfaction is not time wasted.
    • Working in an environment that gives me satisfaction makes me more productive.