If I have seen further it is only by standing on the shoulders of giants.
– Isaac Newton
This repo contains my entire system configuration. The Dockerfile is a simulation of my personal Debian installation which I use to continually verify that my configuration works.
All dotfiles in this repo are installed using minimally invasive commands and most will not overwrite any existing data on your system.
visualize how the install will affect your system:
$ make simulate
install all dotfiles with
$ make dotfiles
install a single dotfile with
$ make dotfiles pkg=emacs
Bash configuration files and scripts.
This package contains some miscellaneous scripts I use. It also serves as an install dir for user-specific scripts.
dotlocal is a git repo I use to manage “private” dotfiles. I try my best to
minimize the number of files contained in this repo in favor of using
much as possible.
I use emacs for 95% of my work.
C-x dload a new project directory
C-x C-dopen an existing project
once a project is opened:
C-x fload a file
C-c lreload current module in ghci
C-c ;load/reload project in ghci repl
stack-tag can compile a
single etags file for a stack project including all transitive
All font configurations. This configuration mostly relies on Xresources to handle fonts but some applications still require higher-level support.
GHC and related Haskell configuration files.
Git configuration files.
GNU Global configuration for source code tags.
NOTE: The gpg-agent pinentry doesn’t interoperate well w/ Emacs 25. Because of this, some GPG Agent queries might use the GTK pinenty popup.
Although I use Emacs’
sql-mode for most postgresql maintenace, I still
psql directly. This package contains a decent
ssh config files used to configure ssh-agent, identity files, and the
~/.ssh/config.d directory for private drop-in configurations.
My configuration files to the
stack build tool. I rely on
`stack extensively for most Haskell development.
services. I find it’s much easier to manage services in
systemd user services
as opposed to starting them in the background from my
X11/X.Org configuration files. For most windows I use standard X11 and GTK when necessary.
To install or reinstall xmonad/xmobar:
$ make xmonad
Win-f1open new terminal
Win-f2open new emacs session
Win-SHIFT-f2open new emacsclient session
Win-popen any program
xmonad can also be re-compiled on the fly using
Win-qrecompile & reload xmonad/xmobar.
Load these scratchpads on any workspace:
Win-kopen floating terminal
Win-jOrg agenda (hit
f8when the emacs terminal opens)
Get a list of themes:
$ make theme theme=chalk
Install a theme:
$ make theme q=chalk
Which will take effect when an application, or the entire X session is
restarted. Themes are generated using Xresources. Default settings can be
flycheck-haskellin stack projects