Wandering Thoughts archives

2013-09-12

I am not a (Unix) purist

Someone from outside looking at my environment and what I use and do might think that I'm a Unix purist; after all, I use an odd and limited shell, a stripped down and custom desktop environment, and I persist in reading my email with MH (which is a very Unixy thing in the abstract) instead of a modern IMAP client. I could go on, but I think you get the general drift. That impression would be a mistake. I am not really a Unix purist.

Oh, I certainly have a tinge of it (along with the upturned nose that goes with it, which I try not to let show much these days). I feel genuine attraction to the ideals of Unix and much of their embodiment. But ultimately I'm a pragmatist who is interested in getting things done, not an idealist. I use all of the minimalistic, Unix-purist things that I do because they work well for me, not because I'm intrinsically opposed to their alternatives and refuse to touch them because they're impure.

One consequence of this is that I'm perfectly happy to depart from the straight and narrow path of Unix minimalism and purism when the result works better for me. I have in the past, I do right now in various ways, and I undoubtedly will do so in the future. It's just that I tend not to talk about these departures because usually they're not interesting (because non-minimalism is increasingly the default state of things on Unix, for good reason).

Sidebar: my latest non-minimal departure

As one might guess from a recent interest, I turned on filename completion and command line editing in my unusual shell. Previously I had two or three reasons for not doing this: it wasn't efficient on old machines, I thought it was impure, and it clashed badly with 9term, one of my terminal emulators. Well, old machines are long gone, a Linux kernel change broke 9term, and using bash (by default) on some systems around here had slowly sold me on the real and seductive convenience of filename completion. I found myself missing it in my regular shell then realized that now that I'm not using 9term there was no reason not to build a version with GNU Readline support.

So far I rather like it and actually think that I should have done this some years ago. (This is often how changes in my environment go.)

IAmNotAPurist written at 00:01:22; Add Comment

2013-09-09

A slow realization: many of my dotfiles don't need to be dotfiles

Like many Unix people, I have a slowly accumulating drift of dotfiles (and dot-directories) cluttering up my $HOME. It has recently struck me that a certain amount of these dotfiles are in fact a self-inflicted injury, by which I mean that they don't actually have to be dotfiles in $HOME and I could move them elsewhere if I wanted to. There are two variants of this injury.

The first variety is where I have simply made a file a dotfile in $HOME out of reflexive habit. There is no system-supplied program that expects to find it there; I have simply needed a file for some purpose and made it a dotfile because it seemed to make sense. For example, I have a set of X resource files that I made into dotfiles basically just because. Since it's my X startup script that loads them into the X server, they could perfectly well live in, say, $HOME/lib/X11 under some set of sensible (and visible) names.

(Often there is some sort of vague link to something that was a necessary dotfile back in history.)

The second variety is where a program defaults to using a dotfile but this can be changed with a command line option and I already run the program in some automated way (through a cover script or the like). Here I can perfectly well change my automation to relocate the dotfile to some better place. There are probably a number of programs I'm running like this.

(Similar to this is things that can be moved with an environment variable, like $INPUTRC for $HOME/.inputrc.)

Certainly going forward I think my rule is going to be that I won't create any new dotfiles unless I have absolutely no choice. Relocating existing ones, well, I have a lot of inertia and my existing setup works, it's just got a massive clutter in $HOME that I can't see unless I do an 'ls -a'.

(Why dotfiles are a bad idea is probably not necessarily obvious, but that's another entry.)

PS: what brought this realization on was building out a version of my environment for Cinnamon on my laptop. When I was copying dotfiles over to the laptop and working on them I started asking myself why they actually were dotfiles instead of being organized somewhere sensible where I could see them.

UnnecessaryDotfiles written at 01:03:43; Add Comment


Page tools: See As Normal.
Search:
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.