While `/bin/bash` is the default in many systems, it cannot be relied
upon for _all_ systems, particularly ones such as MacOS where the
default `/bin/bash` is a very old version. Instead, use the `bash`
executable from the system's PATH.
While these configs are useful in the event that I want to `git pull` on
feature branches and have them update from their source branch, I find
that in practice I rarely use this workflow. I generally only pull on
branches which track a remote branch directly, and I normally reach for
`git rebase` when updating feature branches from their source. These
configurations also interfere with my workflow of `git push` creating
the branch in my origin if absent.
Rather than re-constructing PS1 each time the prompt is called, it can
be built once. The portions of it which call functions are still called,
so there is no drawback to setting it and forgetting it.
When running as root (via `sudo su`, for instance), XDG_RUNTIME_DIR is
usually not set, which causes some warning messages to be printed prior
to screenfetch's output. I don't care about this, so I don't want to see
it.
In the interest of not messing with colons in filenames (among other
characters), this function has been changed to only remove control
characters and convert '/' to '-'. In the future, this should be updated
to check the current filesystem and use the appropriate munging for it.
Ref: https://stackoverflow.com/a/35352640/540162
Setting the `LESS` environment variable overrides the defaults used by
core.pager, which are FRX. Because `-R` is set in .bash_profile, only
`-FX` need be provided to provide the same option coverage.