dotfiles define settings in Unix environments, and have maintained a certain importance throughout the past few decades for computer nerds around the world. There are lots of different things you can do in a dotfile.
Make command aliases:
alias s='git status' alias d='git diff' alias l='git log' alias e='emacs -nw'
Maybe the alias needs to do something slightly different based on what operating system family you're using:
if [[ "$OSTYPE" == "linux-gnu" ]]; then alias ls='ls -F --color' elif [[ "$OSTYPE" == "darwin"* ]]; then alias ls='ls -FG' fi
For turning off my laptop's touchpad tap behavior,
I have this script at
#!/usr/bin/env bash synclient MaxTapTime=0
Over the years, collections of dotfiles, and the contents of
these files, evolve slowly and steadily - particularly
the often-used ones like
To manage my dotfiles, I chose to use a tool called homeshick because it only requires bash to be installed, no dependencies like python or ruby. It works for me, but I've always wondered if there's a better way to do it. The reasoning behind having a central place to store my dotfiles is that I can make a single change to be used on the handful of computers and servers I use regularly.
I don't always want or need to clone my central dotfiles wherever I ssh to, though. I don't have them set up on cunix, because all I do here log in and use emacs to write blog entries once in a while. It would be nice to have the same emacs configuration that I use everywhere else when writing these posts, but the version of emacs on cunix is a few years old, and it just doesn't matter enough to put in the work of making my emacs configuration compatible with it.