Welcome to my personal collection of weirdish—sometimes unmaintained—configuration and lose organization of cool scripts!
These are the setup I have on almost all machines I work in, and because I work on many tildes, I make this set of configuration as cross-platform as possible.
Table of Contents
These are more like "what I tend to do" in this repo
tmux source ~/.tmux.conf
dot <type> <target>such as
dot setup fish
Here are detailed information for each compenent of my dotfiles
I don't track
bash_profile because I like to keep it to the system's defaults.
The fish shell configuration is at
config.fish doesn't really anything specific,
it just sources the shared environment variable file (
.exportenvs.fish) and the shared aliases (
.exportenvs.fish file is generated by
.exportenvs and translates it into fish syntax. Instead of
using bass to source
.exportenvs on the fly during fish's startup, fish can
source the generated
.exportenvs.fish directly which improves performance signifanctly.
I have a symlink
.bash_aliases pointing to
.aliases because bash likes to look for that file.
.exportenvs is basically a bunch of environment variables exports. A whole ton of installation scripts
on the internet likes to add
export something=something to
bashrc, so when that happens I tend to just
move it into my
oh my fish is like a plugin manager for fish, I don't have a lot of plugins, just these utilities:
z: quickly access a common dir
bass: source bash scripts and expressions in fish (I use this for sourcing
pj: access projects
fish theme is based entirely on the terminal and the prompt is copied from a particular pre-existing prompt style that shows error status and git status.
fish functions (located at
.config/fish/functions) are mostly aliases that require some checking or
cat, rm, ll are aliased to ccat, trash, and exa respectively if those programs are installed.
.config/fish/config_local.fish file is for configuration specific for a computer, this could
be setting a special $EDITOR, etc.
The bin/nv script is an alias to neovim, and runs vim if neovim is not installed.
For vim I use Vundle as my plugin manager just because I discovered vim before
nvim and Vundle before Plug. My
vimrc is largely unmaintained
pieces of configuration copied from other people's configs. The set of plugins
are mostly maintained (as in me modifying what plugins to use), except for
auto-pairs if I remember correctly.
Sometimes when I change a plugin for nvim and change it for vim too, if I have extra time.
I use vim-plug as my plugin manager for nvim because it is shorter to type. Completion with CoC is set up for languages that I commonly work in. CoC keybinds configuration is mostly copied from their readme.
My nvim config directory (
.config/nvim) has separate files for different
types of configuration.
general.vim has mostly the same content as
The isWSL function checks whether the system is WSL in my (n)vim configs I rebind some keys to make it work on WSL, but I don't use it much anymore.
I use chemacs2 for switching emacs profiles and it allows me to use both
vanilla emacs and doom emacs at the same time. See
dotscripts/setup/emacs. This script is mostly tested and it should
set up everything you need to start using both emacs and doom normally. It
installs chemacs and doom if not already.
They should probably work for version 26 too, but I use 27+ on almost all my machines.
.config/emacsd are largely copied from various emacs distributions
to suit my needs. The
modules directory is
Doom itself requires at least emacs 27+ and git 2.23+ among other things. More info on the github repo.
There isn't much personal configuration in
.config/doom yet, it's mostly just
enabling or disabling doom modules and add some packages.
The emacs directory would be at
.emacs.d is for
My amfora config at
.config/amfora uses the default theme with mostly default
settings. I don't use amfora all that often because I also use elpher,
lagrange, and gelim. I plan to have a custom newtab page as well as a custom
theme in the future. Because gelim doesn't support client certificates yet, I
only mostly use amfora for capsules that want a client certificate.
gelim config is at
.config/gelim. gelim is my own gemini and spartan client
for the terminal that isn't a full-blown TUI and tries to stay simple whilst
offering many features and extensibility. It's still WIP so there won't be much
configuration in there yet.
g@mapping for LSP format)