my computing environment
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.
Use make
to:
visualize how the install will affect your system:
$ make simulate
install all dotfiles with stow
:
$ make dotfiles
install a single dotfile with stow
:
$ 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 pass
as
much as possible.
I use emacs for 95% of my work.
C-x d
load a new project directoryC-x C-d
open an existing projectonce a project is opened:
C-x f
load a fileC-c l
reload current module in ghciC-c ;
load/reload project in ghci replstack-tag
can compile a
single etags file for a stack project including all transitive
dependencies.
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
occassionally need psql
directly. This package contains a decent
.psqlrc
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.
Local systemd
user
services. I find it’s much easier to manage services in systemd
user services
as opposed to starting them in the background from my .xsession
.
X11/X.Org configuration files. For most windows I use standard X11 and GTK when necessary.
To install or reinstall xmonad/xmobar:
$ make xmonad
or, type Win-q
.
keybindings:
Win-f1
open new terminalWin-f2
open new emacs sessionWin-SHIFT-f2
open new emacsclient sessionWin-p
open any programxmonad
can also be re-compiled on the fly using stack
:
Win-q
recompile & reload xmonad/xmobar.Win-[0..9]
switch workspacesWin-SPC
switch layoutLoad these scratchpads on any workspace:
Win-k
open floating terminalWin-j
Org agenda (hit f8
when the emacs terminal opens)Win-r
My agendaGet 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
found in x11/.Xresources
.
flycheck-haskell
in stack projects