It’s starting to become more popular for some hiring companies to request your
“dot” files to show how you configure your environment.
I figure this is probably intended to be something akin to a signalling mechanism,
meaning that you’re into the weeds enough to know that on *NIX systems you have
configuration files for each user on the system, typically prefixed with a “dot”.
Hence we have files like
.bashrc that gets executed when you open a new bash
session and sets up the environment for you.
Same for vim, where you have the
You can potentially have many more (including “dot” folders, like
depending on what software you use on a regular basis on your *NIX system.
So I want to show and explain a few of my “dot” files here, but first, I have a gripe.
The point of having systems that, to whatever extent they may, conform to POSIX
standards is to facilitate interoperability.
Not only of systems, but users also.
That’s why things like
gnu-utils are pretty uniformly auto-installed
on *NIX systems.
That makes it easy for me, Sue the Admin, or Joe the Developer to log in to a
system they never have and at least know the tools available to them.
For that reason, I’m not a huge fan of doing a lot of customization of my “dot” files
and I try to encourage people to know the defaults quite well prior to customizing.
End of gripe.
Table of Contents
So I just finished up my gripe about not using the standard tools and I’m about to start
tmux, neither of which fall into that “ubiquitously installed”
Well, there’s a reason for that.
vi well enough and can definitely use it without any troubles.
vim gives me some added functionality that is really useful for doing
development work, particularly
syntastic for syntax checking/linting,
and some additional keybind functionalities that are just missing from
screen is perfectly good and I can use it well enough, but there were just
some things that didn’t work the way I was hoping.
screen requires a lot more combination keybinds to do things that
I would hope would be much simpler, such as splitting panes.
tmux’s configurability is quite a bit stronger.
.bashrc is fairly plain-jane.
The only things that I’ve added are to put a few things in
$PATH that are not
enabled by default, like snaps (I’m on BunsenLabs Helium/Debian Stretch).
I don’t have any special aliases for things that I use a lot because I value
that muscle memory of being able to quickly use the standard built-in tools.
.bashrc is the standard
.bashrc that you get when creating a new user
on a Debian system, with the following two lines added at the end.
export PATH=$PATH:/snap/bin export EDITOR='vim'
.vimrc has a bit more customization for things like
solarized color scheme.
Still no special aliases for doing special things.
You’ll notice nothing about
EDITORCONFIG here, but it’s being brought in by
Again, not doing much special with tmux.
I’ve considered setting up my usual pane layout to automatically be used when I
start a new
tmux session, but I just haven’t gotten around to it.
Most of these are the defaults.
The only ones I’ve changed are to have a 256 color terminal (because baller),
change the pane index to be 1-based instead of 0-based because it makes it easier
to switch panes one-handed, letting tmux now that I use vim, and making the pane
numbers display a bit longer on screen to give me a second to decide which pane
I want to switch to.
My standard setup is 3-panes, with my main pane vertical on the right, and the other
two panes split horizontally on the left.
I like this better since it puts the vertical center line between the panes near the
middle of my screen, and therefore the left edge of my text editor is pretty close
to the middle of the screen as well.
tmux actually has a layout preset that’s pretty similar to this called
however it puts the large “main” vertical pane on the left instead of the right.
Putting my main pane closer to the middle of the screen is definitely a bit more
natural since that’s where my attention will naturally be drawn.
set -g default-terminal "tmux-256color" set -g pane-base-index 1 set-window-option -g mode-keys vi set -g display-panes-time 3000 set -g display-time 3000 set -g status-fg cyan # ThG original was: white set -g status-bg default set -g status-attr default set -g status-left "" if '[ -z "$DISPLAY" ]' 'set -g status-left "[#[fg=green] #H #[default]]"' if '[ -z "$DISPLAY" ]' 'set -g status-right "[ #[fg=magenta]#(cat /proc/loadavg | cut -d \" \" -f 1,2,3)#[default] ][ #[fg=cyan,bright]%a %Y-%m-%d %H:%M #[default]]"' if '[ -z "$DISPLAY" ]' 'set -g status-right-length 50'