I will probably never give my shell dotfiles the major reform they could use

May 23, 2019

I've been using my current shell for what is now a very long time, and over that time I've always carried forward the core structure of my Unix $HOME, including my shell dotfiles. One of the consequences of this is that my dotfiles have accumulated a great deal of historical cruft. Another is that if I was starting from scratch with a clean slate, I probably wouldn't structure and code my dotfiles the way they currently are; my tastes and views have changed from the long-ago person who first wrote those files and set the basic approach that I've followed since then.

Some people would take a period of vacation or a move to a new system or whatever as a reason to rip everything out and start from scratch (perhaps even with a new shell, one that's more popular, active, and widely available by default). I applaud the energy of these people, but I've come to realize that I no longer have that sort of enthusiasm. These days I'm a pragmatist about any number of things, and one of those things is that I just don't care enough to go in and do anything to perfectly working shell dotfiles.

(I don't even care enough to delete all of the sections for long dead systems and system types. Well, in theory I don't care, but now that I'm writing this entry my fingers have a bit of an itchy urge.)

There is still a bit of me that would like to start all over again from complete scratch, with a bare $HOME and no history. Perhaps someday I will have a completely new system that I want to make my new home and I'll get to do that, but for now that seems unlikely. I do admire the people who run around doing lots of experiments and customizations and so on with their shells, though.

(I theorize that one thing that leads to restarting your $HOME is changing jobs in the commercial world, where in many cases you're not going to export things out of your old job or into your new job. A personal Unix system probably often functions as another 'job' for these purposes. Part of the advantage of being at a university for all of these years, even using different systems, is that I could freely propagate my dotfiles around between different systems, including my home system.)

PS: There are some systems where I don't have my usual shell or dotfiles set up and I just use Bash with an almost stock setup. But these systems are also ones that I don't care about enough or use actively enough to set up what I consider a 'real' environment on. If I did care, I'm not sure I'd create a new Bash based setup or just propagate a variant of my usual shell setup. Propagating over my current environment is certain a fast way to get set up, since everything just drops in in one go.

Comments on this page:

By Some Anon at 2019-05-24 01:29:45:

Ironically, it was one of your posts that persuaded me to do the opposite: AncientHOMEPerils. Between that and ReinstallVersusUpgrade I decided to make a point of occasionally wiping my system clean, and only restoring dotfiles and configuration that I'd explicitly saved elsewhere, with notes on the customizations I'd made and why I made them.

This has of course caused me more work, and I can't prove that I've avoided actual problems by doing so. I suspect that I have (or someday might) though, since I've found and removed things that were no longer needed. And it certainly gives me the same kind of confidence that good backups do.

I use vcsh to manage my home dir. It makes me a bit more willing to experiment and delete things.


I'm impressed how you manage to write blog posts about not changing configuration---I'm the opposite. I change stuff all the time, and rarely find motivation to blog about it. ;)

By Twirrim at 2019-05-26 11:19:06:

Every couple of years or so I nuke my dotfiles and start rebuilding them from scratch. I've a few useful bits I drag around from wipe to wipe, but I try to keep that extremely minimal (e.g. in my current .bashrc there's a set of functions I use to figure out if I'm on the network at work, and if so update some git repos if they're more than 24 hours stale).

Along the way I often find I'm able to eliminate those few niggles that I never did get to the bottom of before, but which haven't been annoying enough to dedicate some time to.

Written on 23 May 2019.
« On programming languages belonging (or not) to their community
The problem of paying too much attention to our dashboards »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Thu May 23 23:49:32 2019
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.