summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranck Cuny <franck.cuny@gmail.com>2018-06-29 14:49:44 -0700
committerFranck Cuny <franck.cuny@gmail.com>2018-06-29 14:50:43 -0700
commitc0368d8e65fd15a1f48de6a01adcb8ec786a72a0 (patch)
treec1dc339235ff11476bec01c36b57bd158314fa6a
parent[emacs] Move back some configs to init.el (diff)
downloademacs.d-c0368d8e65fd15a1f48de6a01adcb8ec786a72a0.tar.gz
[emacs] Massive rewrite
Diffstat (limited to '')
-rw-r--r--emacs.d/config/config-set-path.el9
-rw-r--r--emacs.d/config/fcuny-appearance.el22
-rw-r--r--emacs.d/config/fcuny-basic-settings.el38
-rw-r--r--emacs.d/config/fcuny-basic-settings.el~9
-rw-r--r--emacs.d/config/fcuny-common.el (renamed from emacs.d/config/config-lib.el)11
-rw-r--r--emacs.d/config/fcuny-company.el (renamed from emacs.d/modules/module-autocomplete.el)17
-rw-r--r--emacs.d/config/fcuny-darwin.el14
-rw-r--r--emacs.d/config/fcuny-dired.el15
-rw-r--r--emacs.d/config/fcuny-docker.el7
-rw-r--r--emacs.d/config/fcuny-editor.el55
-rw-r--r--emacs.d/config/fcuny-elisp.el13
-rw-r--r--emacs.d/config/fcuny-flyspell.el9
-rw-r--r--emacs.d/config/fcuny-go.el35
-rw-r--r--emacs.d/config/fcuny-ibuffer.el26
-rw-r--r--emacs.d/config/fcuny-json.el11
-rw-r--r--emacs.d/config/fcuny-magit.el29
-rw-r--r--emacs.d/config/fcuny-make.el9
-rw-r--r--emacs.d/config/fcuny-markdown.el (renamed from emacs.d/modules/module-markdown.el)9
-rw-r--r--emacs.d/config/fcuny-pants.el15
-rw-r--r--emacs.d/config/fcuny-paren.el13
-rw-r--r--emacs.d/config/fcuny-project.el (renamed from emacs.d/modules/module-ivy.el)52
-rw-r--r--emacs.d/config/fcuny-protobuf.el8
-rw-r--r--emacs.d/config/fcuny-puppet.el12
-rw-r--r--emacs.d/config/fcuny-python.el12
-rw-r--r--emacs.d/config/fcuny-rust.el24
-rw-r--r--emacs.d/config/fcuny-scala.el6
-rw-r--r--emacs.d/config/fcuny-shell.el (renamed from emacs.d/modules/module-shell.el)5
-rw-r--r--emacs.d/config/fcuny-thrift.el (renamed from emacs.d/modules/module-thrift.el)6
-rw-r--r--emacs.d/config/fcuny-vars.el35
-rw-r--r--emacs.d/config/fcuny-yaml.el9
-rw-r--r--emacs.d/init.el136
-rw-r--r--emacs.d/modules/module-appareance.el59
-rw-r--r--emacs.d/modules/module-c.el5
-rw-r--r--emacs.d/modules/module-codestyle.el18
-rw-r--r--emacs.d/modules/module-dired.el17
-rw-r--r--emacs.d/modules/module-docker.el14
-rw-r--r--emacs.d/modules/module-editing.el15
-rw-r--r--emacs.d/modules/module-flycheck.el11
-rw-r--r--emacs.d/modules/module-flyspell.el18
-rw-r--r--emacs.d/modules/module-general.el58
-rw-r--r--emacs.d/modules/module-git.el41
-rw-r--r--emacs.d/modules/module-go.el52
-rw-r--r--emacs.d/modules/module-hydra.el5
-rw-r--r--emacs.d/modules/module-ibuffer.el42
-rw-r--r--emacs.d/modules/module-java.el69
-rw-r--r--emacs.d/modules/module-javascript.el10
-rw-r--r--emacs.d/modules/module-json.el20
-rw-r--r--emacs.d/modules/module-lisp.el14
-rw-r--r--emacs.d/modules/module-make.el8
-rw-r--r--emacs.d/modules/module-pants.el28
-rw-r--r--emacs.d/modules/module-project.el63
-rw-r--r--emacs.d/modules/module-protobuf.el4
-rw-r--r--emacs.d/modules/module-puppet.el7
-rw-r--r--emacs.d/modules/module-python.el20
-rw-r--r--emacs.d/modules/module-rust.el18
-rw-r--r--emacs.d/modules/module-scala.el3
-rw-r--r--emacs.d/modules/module-toml.el3
-rw-r--r--emacs.d/modules/module-yaml.el5
58 files changed, 532 insertions, 766 deletions
diff --git a/emacs.d/config/config-set-path.el b/emacs.d/config/config-set-path.el
deleted file mode 100644
index a22416d..0000000
--- a/emacs.d/config/config-set-path.el
+++ /dev/null
@@ -1,9 +0,0 @@
-(paradox-require 'exec-path-from-shell)
-
-(when (memq window-system '(x mac ns))
-  (exec-path-from-shell-initialize)
-  (dolist (var '("GEM_HOME" "GEM_PATH" "MY_RUBY_HOME"))
-    (unless (getenv var)
-      (exec-path-from-shell-copy-env var))))
-
-(provide 'config-set-path)
diff --git a/emacs.d/config/fcuny-appearance.el b/emacs.d/config/fcuny-appearance.el
new file mode 100644
index 0000000..5c65374
--- /dev/null
+++ b/emacs.d/config/fcuny-appearance.el
@@ -0,0 +1,22 @@
+(eval-when-compile
+  (require 'use-package))
+
+;; Set default font.
+(set-face-attribute 'default nil :height 130 :weight 'normal :width 'normal)
+
+(use-package tool-bar
+  :config
+  (tool-bar-mode -1))
+
+(use-package scroll-bar
+  :config
+  (scroll-bar-mode -1))
+
+(use-package frame
+  :bind ("<s-return>" . toggle-frame-fullscreen)
+  :config
+  (blink-cursor-mode -1)
+  (when (eq system-type 'darwin)
+    (setq ns-use-native-fullscreen nil)))
+
+(provide 'fcuny-appearance)
diff --git a/emacs.d/config/fcuny-basic-settings.el b/emacs.d/config/fcuny-basic-settings.el
new file mode 100644
index 0000000..fe05241
--- /dev/null
+++ b/emacs.d/config/fcuny-basic-settings.el
@@ -0,0 +1,38 @@
+(eval-when-compile
+  (require 'use-package))
+
+;; set utf-8 as the default encoding
+(prefer-coding-system 'utf-8-unix)
+(set-terminal-coding-system 'utf-8)
+(set-keyboard-coding-system 'utf-8)
+
+;; alias yes-or-no to y-or-n
+(fset 'yes-or-no-p 'y-or-n-p)
+
+(setq auto-save-default nil)                   ;; don't auto save files
+(setq auto-save-list-file-prefix nil)          ;; no backups
+(setq create-lockfiles nil)                    ;; don't use a lock file
+(setq custom-file fcuny-custom-settings)       ;; where to save custom settings
+(setq inhibit-startup-message t)               ;; Skip the default splash screen
+(setq inhibit-startup-screen t)                ;; I don't want a startup screen
+(setq make-backup-files nil)                   ;; really no backups
+(setq minibuffer-message-timeout 0.5)          ;; How long to display an echo-area message
+(setq next-screen-context-lines 5)             ;; scroll 5 lines at a time
+(setq require-final-newline t)                 ;; ensure newline exists at the end of the file
+(setq ring-bell-function 'ignore)              ;; really no bell
+(setq tab-always-indent 'complete)             ;; when using TAB, always indent
+(setq visible-bell nil)                        ;; no bell
+
+(setq-default indent-tabs-mode nil)            ;; turn off tab indentation
+(setq-default cursor-type 'hbar)               ;; cursor is a horizontal bar
+
+;; size of the fringe
+(fringe-mode '(8 . 8))
+
+;; show column number in the mode line
+(setq column-number-mode t)
+
+;; Remap join-line to M-j where it's easier to get to.
+(global-set-key (kbd "M-j") 'join-line)
+
+(provide 'fcuny-basic-settings)
diff --git a/emacs.d/config/fcuny-basic-settings.el~ b/emacs.d/config/fcuny-basic-settings.el~
new file mode 100644
index 0000000..2dab7f0
--- /dev/null
+++ b/emacs.d/config/fcuny-basic-settings.el~
@@ -0,0 +1,9 @@
+;; set utf-8 as the default encoding
+(prefer-coding-system 'utf-8-unix)
+(set-terminal-coding-system 'utf-8)
+(set-keyboard-coding-system 'utf-8)
+
+;; alias yes-or-no to y-or-n
+(fset 'yes-or-no-p 'y-or-n-p)
+
+(provide 'fcuny-basic-settings)
diff --git a/emacs.d/config/config-lib.el b/emacs.d/config/fcuny-common.el
index 8896d2f..61a2829 100644
--- a/emacs.d/config/config-lib.el
+++ b/emacs.d/config/fcuny-common.el
@@ -1,4 +1,3 @@
-;; rename a buffer
 (defun fc/rename-this-buffer-and-file ()
   "Renames current buffer and file it is visiting."
   (interactive)
@@ -17,16 +16,14 @@
                (set-buffer-modified-p nil)
                (message "File '%s' successfully renamed to '%s'" name (file-name-nondirectory new-name))))))))
 
-
-;; predicate for checking style only on python files
 (defun fc/check-source-p ()
   "Finds if the current python file is in the `source' repository."
   (and (executable-find "check.pex")
        (buffer-file-name)
        (string-match "src/source/.*\.py$" (buffer-file-name))))
 
-(defun fc/check-gcp-puppet-p ()
-  "Finds if the current file is in GCP's puppet repository."
-  (string-match "gcp-puppet-manifest/.*$" (buffer-file-name)))
+(defun fc/check-work-machine-p ()
+  "Returns t if this is a work machine"
+  (string-match "tw-mbp.*" (system-name)))
 
-(provide 'config-lib)
+(provide 'fcuny-common)
diff --git a/emacs.d/modules/module-autocomplete.el b/emacs.d/config/fcuny-company.el
index abbf162..62e06de 100644
--- a/emacs.d/modules/module-autocomplete.el
+++ b/emacs.d/config/fcuny-company.el
@@ -1,5 +1,8 @@
+(eval-when-compile
+  (require 'use-package))
+
 (use-package company
-  :commands company-mode
+  :ensure t
   :diminish company-mode
   :config
   (global-company-mode)
@@ -11,14 +14,4 @@
         company-tooltip-align-annotations t
         company-require-match nil))
 
-(use-package lsp-mode
-  :config
-  (setq lsp-response-timeout 10))
-
-(use-package lsp-ui
-  :init
-  (add-hook 'lsp-mode-hook 'lsp-ui-mode))
-
-(use-package company-lsp)
-
-(provide 'module-autocomplete)
+(provide 'fcuny-company)
diff --git a/emacs.d/config/fcuny-darwin.el b/emacs.d/config/fcuny-darwin.el
new file mode 100644
index 0000000..fbc95e7
--- /dev/null
+++ b/emacs.d/config/fcuny-darwin.el
@@ -0,0 +1,14 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package exec-path-from-shell
+  :if (memq window-system '(mac ns))
+  :ensure t
+  :config
+  (exec-path-from-shell-initialize)
+  (if (fc/check-work-machine-p)
+      (dolist (var '("GEM_HOME" "GEM_PATH" "MY_RUBY_HOME"))
+        (unless (getenv var)
+          (exec-path-from-shell-copy-env var)))))
+
+(provide 'fcuny-darwin)
diff --git a/emacs.d/config/fcuny-dired.el b/emacs.d/config/fcuny-dired.el
new file mode 100644
index 0000000..8c64c1f
--- /dev/null
+++ b/emacs.d/config/fcuny-dired.el
@@ -0,0 +1,15 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package dired
+  :defer t
+  :bind ("C-x C-d"  . dired)
+  :init
+  (setq-default dired-dwim-target t)
+  (setq dired-recursive-deletes 'always)
+  (setq dired-recursive-copies 'always)
+
+  (let ((gls (executable-find "/opt/twitter/bin/gls")))
+    (when gls (setq insert-directory-program gls))))
+
+(provide 'fcuny-dired)
diff --git a/emacs.d/config/fcuny-docker.el b/emacs.d/config/fcuny-docker.el
new file mode 100644
index 0000000..7ed7b0b
--- /dev/null
+++ b/emacs.d/config/fcuny-docker.el
@@ -0,0 +1,7 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package dockerfile-mode
+  :ensure t)
+
+(provide 'fcuny-docker)
diff --git a/emacs.d/config/fcuny-editor.el b/emacs.d/config/fcuny-editor.el
new file mode 100644
index 0000000..75baa4f
--- /dev/null
+++ b/emacs.d/config/fcuny-editor.el
@@ -0,0 +1,55 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package bookmark
+  :custom
+  (bookmark-default-file fcuny-bookmarks-dir)
+  (bookmark-save-flag 1))
+
+(use-package autorevert
+  :config
+  (global-auto-revert-mode t))
+
+(use-package midnight
+  :config
+  (midnight-mode t))
+
+(use-package autorevert
+  :config
+  (setq global-auto-revert-non-file-buffers t)
+  (setq auto-revert-verbose nil)
+  (global-auto-revert-mode t))
+
+(use-package recentf
+  :config
+  (setq recentf-save-file (expand-file-name "var/recentf" user-emacs-directory)))
+
+(use-package server
+  :if window-system
+  :init
+  (add-hook 'after-init-hook 'server-start))
+
+(use-package hl-line
+  :config
+  (global-hl-line-mode t))
+
+(use-package tramp
+  :custom
+  (tramp-default-method "ssh")
+  (tramp-persistency-file-name (expand-file-name "var/tramp" user-emacs-directory)))
+
+(use-package whitespace
+  :custom
+  (whitespace-style '(face trailing))
+  (show-trailing-whitespace t)
+  :hook (whitespace-mode))
+
+(use-package ispell
+  :ensure t
+  :config
+  (use-package flyspell-correct-ivy :ensure t)
+  (when (executable-find "aspell")
+    (setq ispell-program-name "aspell"
+          ispell-list-command "--list")))
+
+(provide 'fcuny-editor)
diff --git a/emacs.d/config/fcuny-elisp.el b/emacs.d/config/fcuny-elisp.el
new file mode 100644
index 0000000..118eb5b
--- /dev/null
+++ b/emacs.d/config/fcuny-elisp.el
@@ -0,0 +1,13 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package lisp-mode
+  :bind
+  (("C-c C-e" . eval-buffer)
+   ("C-c C-r" . eval-region)))
+
+(use-package eldoc
+  :ensure t
+  :hook (emacs-lisp-mode-hook))
+
+(provide 'fcuny-elisp)
diff --git a/emacs.d/config/fcuny-flyspell.el b/emacs.d/config/fcuny-flyspell.el
new file mode 100644
index 0000000..fe26768
--- /dev/null
+++ b/emacs.d/config/fcuny-flyspell.el
@@ -0,0 +1,9 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package flyspell
+  :ensure t
+  :hook ((text-mode-hook . flyspell-mode)
+         (prog-mode-hook . flyspell-prog-mode)))
+
+(provide 'fcuny-flyspell)
diff --git a/emacs.d/config/fcuny-go.el b/emacs.d/config/fcuny-go.el
new file mode 100644
index 0000000..14acbe4
--- /dev/null
+++ b/emacs.d/config/fcuny-go.el
@@ -0,0 +1,35 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package go-mode
+  :ensure t
+  :init
+  (progn
+    (defun fcuny-go-set-tab-width ()
+      (setq-local tab-width 2))
+    (add-hook 'go-mode-hook 'fcuny-go-set-tab-width))
+
+  :config
+  (use-package go-eldoc
+    :config
+    (add-hook 'go-mode-hook 'go-eldoc-setup))
+
+  (use-package gotest :ensure t)
+
+  (use-package go-guru :ensure t)
+
+  (use-package go-imports :ensure t)
+
+  (use-package golint :ensure t)
+
+  (use-package go-projectile :ensure t)
+
+  (use-package company-go
+    :ensure t
+    :init
+    (progn
+      (setq company-go-show-annotation t))
+    :config
+    (add-hook 'go-mode-hook (lambda() (add-to-list 'company-backends 'company-go)))))
+
+(provide 'fcuny-go)
diff --git a/emacs.d/config/fcuny-ibuffer.el b/emacs.d/config/fcuny-ibuffer.el
new file mode 100644
index 0000000..b949c87
--- /dev/null
+++ b/emacs.d/config/fcuny-ibuffer.el
@@ -0,0 +1,26 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package ibuffer
+  :ensure t
+  :bind ("C-x C-b" . ibuffer))
+
+(use-package flycheck
+  :ensure t
+  :config
+  (progn
+    (add-hook 'prog-mode-hook 'flycheck-mode)
+    (setq flycheck-highlighting-mode 'lines)
+    (setq flycheck-check-syntax-automatically '(mode-enabled save))
+    (setq flycheck-checkers (delq 'emacs-lisp-checkdoc flycheck-checkers))
+    (if (fc/check-work-machine-p)
+      (flycheck-define-checker fc/twitter-source-check
+        "A syntax checker for python source code in Source, using `check.pex'"
+        :command ("check.pex" source)
+        :error-patterns ((error line-start (id (1+ nonl)) ":ERROR" (1+ nonl) ":" line (message) line-end)
+                         (warning line-start (id (1+ nonl)) ":WARNING" (1+ nonl) ":" line (message) line-end))
+        :predicate fc/check-source-p
+        :modes (python-mode))
+      (add-to-list 'flycheck-checkers 'fc/twitter-source-check))))
+
+(provide 'fcuny-ibuffer)
diff --git a/emacs.d/config/fcuny-json.el b/emacs.d/config/fcuny-json.el
new file mode 100644
index 0000000..91c682b
--- /dev/null
+++ b/emacs.d/config/fcuny-json.el
@@ -0,0 +1,11 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package json-mode
+  :ensure t
+  :config
+  (setq json-reformat:indent-width 2)
+  (if (fc/check-work-machine-p)
+    (add-to-list 'auto-mode-alist '("\\.workflow$" . json-mode))))
+
+(provide 'fcuny-json)
diff --git a/emacs.d/config/fcuny-magit.el b/emacs.d/config/fcuny-magit.el
new file mode 100644
index 0000000..b78398c
--- /dev/null
+++ b/emacs.d/config/fcuny-magit.el
@@ -0,0 +1,29 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package magit
+  :mode (("differential-update-comments" . git-commit-mode)
+         ("new-commit"                   . git-commit-mode))
+  :bind (("C-x g s" . magit-status)
+         ("C-x g b" . magit-checkout))
+  :init
+  (progn
+    (setq magit-completing-read-function 'ivy-completing-read))
+
+  :config
+  (progn
+    (global-git-commit-mode)
+
+    ;; I don't care about other VC backend for work
+    (if (fc/check-work-machine-p)
+      (setf vc-handled-backends nil
+            vc-follow-symlinks t))
+
+    (use-package git-commit :ensure t)
+
+    (add-hook 'magit-log-edit-mode-hook
+              #'(lambda ()
+                  (set-fill-column 72)
+                  (flyspell-mode)))))
+
+(provide 'fcuny-magit)
diff --git a/emacs.d/config/fcuny-make.el b/emacs.d/config/fcuny-make.el
new file mode 100644
index 0000000..1218f7a
--- /dev/null
+++ b/emacs.d/config/fcuny-make.el
@@ -0,0 +1,9 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package make-mode
+  :ensure t
+  :config
+  (add-hook 'makefile-mode-hook (lambda () (setq-local tab-width 2))))
+
+(provide 'fcuny-make)
diff --git a/emacs.d/modules/module-markdown.el b/emacs.d/config/fcuny-markdown.el
index af34933..7387a0d 100644
--- a/emacs.d/modules/module-markdown.el
+++ b/emacs.d/config/fcuny-markdown.el
@@ -1,10 +1,13 @@
+(eval-when-compile
+  (require 'use-package))
+
 (use-package markdown-mode
-  :commands (markdown-mode gfm-mode)
-  :mode (("\\.md\\'"       . gfm-mode)
+  :ensure t
+  :mode (("\\.md\\'" . gfm-mode)
          ("\\.markdown\\'" . gfm-mode))
   :init (setq markdown-command "pandoc -f markdown_github -c https://goo.gl/OVmlwT --self-contained"
               markdown-header-scaling 't)
   :config
   (add-hook 'gfm-mode-hook 'visual-line-mode))
 
-(provide 'module-markdown)
+(provide 'fcuny-markdown)
diff --git a/emacs.d/config/fcuny-pants.el b/emacs.d/config/fcuny-pants.el
new file mode 100644
index 0000000..3ed1ef1
--- /dev/null
+++ b/emacs.d/config/fcuny-pants.el
@@ -0,0 +1,15 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package pants
+  :load-path (lambda () (expand-file-name  "github.com/fcuny/pants.el/" fcuny-path-workspace))
+  :custom
+  (pants-completion-system 'ivy)
+  (pants-source-tree-root (expand-file-name "git.twitter.biz/source" fcuny-path-workspace))
+  (pants-bury-compilation-buffer t)
+  (pants-extra-args "-q")
+  :bind (("C-c b" . pants-find-build-file)
+         ("C-c r" . pants-run-binary)
+         ("C-c t" . pants-run-test)))
+
+(provide 'fcuny-pants)
diff --git a/emacs.d/config/fcuny-paren.el b/emacs.d/config/fcuny-paren.el
new file mode 100644
index 0000000..db6bdeb
--- /dev/null
+++ b/emacs.d/config/fcuny-paren.el
@@ -0,0 +1,13 @@
+(eval-when-compile
+  (require 'use-package))
+
+;; auto close bracket, parenthesis insertion
+(electric-pair-mode 1)
+
+(use-package paren
+  :custom
+  (show-paren-delay 0)
+  :config
+  (show-paren-mode 1))
+
+(provide 'fcuny-paren)
diff --git a/emacs.d/modules/module-ivy.el b/emacs.d/config/fcuny-project.el
index 8259921..c94c40b 100644
--- a/emacs.d/modules/module-ivy.el
+++ b/emacs.d/config/fcuny-project.el
@@ -1,9 +1,9 @@
-(require 'config-package)
-
-(use-package swiper)
+(eval-when-compile
+  (require 'use-package))
 
 (use-package counsel
-  :bind*
+  :ensure t
+  :bind
   (("M-x"     . counsel-M-x)
    ("C-s"     . counsel-grep-or-swiper)
    ("C-x C-f" . counsel-find-file)
@@ -11,17 +11,16 @@
    ("C-c f"   . counsel-git)
    ("C-c s"   . counsel-git-grep)
    ("C-c /"   . counsel-ag))
-
+  :custom
+  (counsel-find-file-at-point t)
   :config
-  (setq counsel-find-file-at-point t))
-
-(use-package counsel-projectile)
+  (use-package swiper :ensure t)
+  (use-package counsel-projectile :ensure t))
 
 (use-package ivy
+  :ensure t
   :diminish (ivy-mode . "")
-
   :bind ("C-c m" . ivy-switch-project)
-
   :config
   (ivy-mode 1)
   (setq ivy-use-virtual-buffers t
@@ -51,6 +50,35 @@
      ("c" projectile-compile-project "Compile project")
      ("r" projectile-remove-known-project "Remove project(s)"))))
 
-(use-package ivy-hydra)
+(use-package projectile
+  :ensure t
+  :diminish projectile-mode
+  :bind-keymap ("C-c p" . projectile-command-map)
+
+  :init
+  (add-hook 'after-init-hook #'projectile-mode)
+
+  :config
+  (setq projectile-switch-project-action 'projectile-dired
+        projectile-enable-caching t
+        projectile-completion-system 'ivy
+        projectile-known-projects-file (expand-file-name "var/projectile-bookmarks.eld" user-emacs-directory)
+        projectile-cache-file (expand-file-name "var/projectile.cache" user-emacs-directory)
+        projectile-globally-ignored-directories (append fcuny-projects-ignored-dirs
+                                                        projectile-globally-ignored-directories)
+        projectile-globally-ignored-files (append 
+                                                  projectile-globally-ignored-files)))
+
+(use-package ag
+  :ensure t
+  :bind (:map ag-mode-map
+              ("p" . compilation-previous-error)
+              ("n" . compilation-next-error)
+              ("N" . compilation-next-file)
+              ("P" . compilation-previous-file))
+  :custom
+  (ag-highlight-search t)
+  (ag-reuse-buffers t)
+  (ag-reuse-window t))
 
-(provide 'module-ivy)
+(provide 'fcuny-project)
diff --git a/emacs.d/config/fcuny-protobuf.el b/emacs.d/config/fcuny-protobuf.el
new file mode 100644
index 0000000..a2dedb4
--- /dev/null
+++ b/emacs.d/config/fcuny-protobuf.el
@@ -0,0 +1,8 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package protobuf-mode
+  :ensure t
+  :mode ("\\.proto$" . protobuf-mode))
+
+(provide 'fcuny-protobuf)
diff --git a/emacs.d/config/fcuny-puppet.el b/emacs.d/config/fcuny-puppet.el
new file mode 100644
index 0000000..4a7eb10
--- /dev/null
+++ b/emacs.d/config/fcuny-puppet.el
@@ -0,0 +1,12 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package puppet-mode
+  :ensure t
+  :mode ("\\.pp\\'" . puppet-mode)
+  ;:hook (flycheck-mode)
+  :config
+  (if (fc/check-work-machine-p)
+    (setq flycheck-puppet-lint-rc fcuny-path-puppet-linter-svn)))
+
+(provide 'fcuny-puppet)
diff --git a/emacs.d/config/fcuny-python.el b/emacs.d/config/fcuny-python.el
new file mode 100644
index 0000000..16b4cc1
--- /dev/null
+++ b/emacs.d/config/fcuny-python.el
@@ -0,0 +1,12 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package python
+  :ensure t
+  :mode (("\\.py$" . python-mode)
+         ("^BUILD$" . python-mode)
+         ("\\.aurora$" . python-mode))
+  :custom (python-indent-offset 2)
+  :hook (eldoc-mode))
+
+(provide 'fcuny-python)
diff --git a/emacs.d/config/fcuny-rust.el b/emacs.d/config/fcuny-rust.el
new file mode 100644
index 0000000..8b3fe49
--- /dev/null
+++ b/emacs.d/config/fcuny-rust.el
@@ -0,0 +1,24 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package rust-mode
+  :ensure t
+  :config
+
+  (use-package toml-mode :ensure t)
+
+  (use-package racer :ensure t)
+
+  (use-package company-racer :ensure t)
+
+  (use-package cargo
+    :ensure t
+    :hook ((rust-mode . cargo-minor-mode)
+           (rust-mode . eldoc-mode)
+           (rust-mode . race-mode))
+    :custom
+    (compilation-ask-about-save nil)
+    (rust-format-on-save t)
+    (rust-rustfmt-bin "/Users/fcuny/.cargo/bin/rustfmt")))
+
+(provide 'fcuny-rust)
diff --git a/emacs.d/config/fcuny-scala.el b/emacs.d/config/fcuny-scala.el
new file mode 100644
index 0000000..cfadbd6
--- /dev/null
+++ b/emacs.d/config/fcuny-scala.el
@@ -0,0 +1,6 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package scala-mode :ensure t)
+
+(provide 'fcuny-scala)
diff --git a/emacs.d/modules/module-shell.el b/emacs.d/config/fcuny-shell.el
index 684c029..01fb075 100644
--- a/emacs.d/modules/module-shell.el
+++ b/emacs.d/config/fcuny-shell.el
@@ -1,3 +1,6 @@
+(eval-when-compile
+  (require 'use-package))
+
 (use-package sh-script
   :mode ("bashrc" . sh-mode)
   :config
@@ -7,4 +10,4 @@
   (add-hook 'sh-mode-hook 'set-sh-mode-indent)
   (add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p))
 
-(provide 'module-shell)
+(provide 'fcuny-shell)
diff --git a/emacs.d/modules/module-thrift.el b/emacs.d/config/fcuny-thrift.el
index 604810c..9bfa497 100644
--- a/emacs.d/modules/module-thrift.el
+++ b/emacs.d/config/fcuny-thrift.el
@@ -1,6 +1,10 @@
+(eval-when-compile
+  (require 'use-package))
+
 (use-package thrift
+  :ensure t
   :mode ("\\.thrift\\'" . thrift-mode)
   :config
   (setq thrift-indent-level 2))
 
-(provide 'module-thrift)
+(provide 'fcuny-thrift)
diff --git a/emacs.d/config/fcuny-vars.el b/emacs.d/config/fcuny-vars.el
new file mode 100644
index 0000000..cc19201
--- /dev/null
+++ b/emacs.d/config/fcuny-vars.el
@@ -0,0 +1,35 @@
+(defvar fcuny-path-home (getenv "HOME")
+  "Path to the user's home directory.")
+
+(defvar fcuny-path-workspace (expand-file-name "workspace" fcuny-path-home)
+  "Path to the workspace.")
+
+(defvar fcuny-path-git-twitter (expand-file-name "git.twitter.biz" fcuny-path-workspace)
+  "Path to twitter's git repositories.")
+
+(defvar fcuny-path-git-github (expand-file-name "github.com" fcuny-path-workspace)
+  "Path to github's git repositories.")
+
+(defvar fcuny-path-svn-twitter (expand-file-name "svn.twitter.biz" fcuny-path-workspace)
+  "Path to twitter's SVN repositories.")
+
+(defvar fcuny-path-puppet-linter-svn (expand-file-name "twitter-ops/utilities/puppet/.puppet-lint.rc"
+                                                       fcuny-path-svn-twitter)
+  "Path to the linter's configuration for twitter-ops.")
+
+(defvar fcuny-path-emacs-var (expand-file-name "var" user-emacs-directory)
+  "Path to some files for Emacs.")
+
+(defvar fcuny-path-emacs-elpa (expand-file-name "elpa" fcuny-path-emacs-var)
+  "Path to elpa's local files.")
+
+(defvar fcuny-projects-ignored-dirs '(".git" ".svn" "target" "elpa")
+  "Ignore the following directories when browsing with projectile.")
+
+(defvar fcuny-bookmarks-dir (expand-file-name "bookmarks" fcuny-path-emacs-var)
+  "Path to save the bookmarks")
+
+(defvar fcuny-custom-settings (expand-file-name "emacs-custom.el" fcuny-path-emacs-var)
+  "Path to emacs custom variables.")
+
+(provide 'fcuny-vars)
diff --git a/emacs.d/config/fcuny-yaml.el b/emacs.d/config/fcuny-yaml.el
new file mode 100644
index 0000000..7d9ca87
--- /dev/null
+++ b/emacs.d/config/fcuny-yaml.el
@@ -0,0 +1,9 @@
+(eval-when-compile
+  (require 'use-package))
+
+(use-package yaml-mode
+  :ensure t
+;;  :hook (flycheck-mode)
+  :mode ("\\.ya?ml\\'" . yaml-mode))
+
+(provide 'fcuny-yaml)
diff --git a/emacs.d/init.el b/emacs.d/init.el
index 7966f4c..37094a4 100644
--- a/emacs.d/init.el
+++ b/emacs.d/init.el
@@ -1,32 +1,6 @@
-;; If this is not commented, Emacs will overwrite this configuration file
-;; on load time.
-;; (package-initialize)
-
 ;; Initialise the package system first of all.
-(package-initialize)
-
-(defvar fcuny-path-home (getenv "HOME")
-  "Path to the user's home directory.")
-
-(defvar fcuny-path-workspace (expand-file-name "workspace" fcuny-path-home)
-  "Path to the workspace.")
-
-(defvar fcuny-path-git-twitter (expand-file-name "git.twitter.biz" fcuny-path-workspace)
-  "Path to twitter's git repositories.")
-
-(defvar fcuny-path-git-github (expand-file-name "github.com" fcuny-path-workspace)
-  "Path to github's git repositories.")
-
-(defvar fcuny-path-svn-twitter (expand-file-name "svn.twitter.biz" fcuny-path-workspace)
-  "Path to twitter's SVN repositories.")
-
-(defvar fcuny-path-puppet-linter-svn (expand-file-name "twitter-ops/utilities/puppet/.puppet-lint.rc"
-                                                       fcuny-path-svn-twitter)
-  "Path to the linter's configuration for twitter-ops.")
-
-(defvar fcuny-path-puppet-linter-gcp (expand-file-name "gcp-puppet-manifests/.puppet-lint-rc"
-                                                       fcuny-path-git-twitter)
-  "Path to the linkter's configucation for gcp-puppet-manifests.")
+(require 'package)
+(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
 
 (defvar fcuny-path-emacs-var (expand-file-name "var" user-emacs-directory)
   "Path to some files for Emacs.")
@@ -34,78 +8,52 @@
 (defvar fcuny-path-emacs-elpa (expand-file-name "elpa" fcuny-path-emacs-var)
   "Path to elpa's local files.")
 
-(defvar fcuny-projects-ignored-dirs
-  '(".git" ".svn" "target"
-    "elpa"))
-
-(defvar fcuny-projects-ignored-files
-  '(".DS_Store"
-    "*.pyc"
-    "*.jar"
-    "*.zip" "*.tar.gz" "*.tgz" "*.gz"
-    "TAGS"))
-
 ;; where to store the packages
 (setq package-user-dir fcuny-path-emacs-elpa)
 
-(require 'package)
-(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
-
 ;; initialize it
 (package-initialize)
 
-;; we install packages using the `use-package' module
-(require 'use-package)
-
-(setq use-package-always-ensure t)
-
-;; Skip the default splash screen.
-(setq inhibit-startup-message t)
+(defun fcuny/init-load-path ()
+  "Load custom configurations."
+  (let* ((before load-path)
+         (config-dir (expand-file-name "config" user-emacs-directory)))
+    (dolist (path (append (list config-dir)))
+      (add-to-list 'load-path path)
+      (add-to-list 'Info-default-directory-list path))))
 
-(add-to-list 'load-path (expand-file-name "config" user-emacs-directory))
-(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
+(fcuny/init-load-path)
 
-(dolist (sub (list
-              (replace-regexp-in-string "/" "-" (symbol-name system-type))
-              (symbol-name window-system)
-              (replace-regexp-in-string "\\..*" "" (system-name))))
-  (load (concat "module-" sub) t))
-
-(load "config-lib")
-(load "config-set-path")
-
-(load "module-general")
-(load "module-appareance")
-(load "module-hydra")
-(load "module-editing")
-(load "module-codestyle")
-
-(load "module-ibuffer")
-(load "module-git")
-(load "module-dired")
-(load "module-ivy")
-(load "module-project")
-(load "module-flycheck")
-(load "module-flyspell")
-(load "module-autocomplete")
-
-(load "module-make")
-(load "module-pants")
-
-(load "module-c")
-(load "module-docker")
-(load "module-go")
-(load "module-java")
-(load "module-json")
-(load "module-lisp")
-(load "module-protobuf")
-(load "module-puppet")
-(load "module-python")
-(load "module-rust")
-(load "module-scala")
-(load "module-shell")
-(load "module-thrift")
+(require 'use-package)
 
-(load "module-markdown")
-(load "module-toml")
-(load "module-yaml")
+(use-package fcuny-vars)
+(use-package fcuny-basic-settings)
+(use-package fcuny-common)
+(use-package fcuny-appearance)
+(use-package fcuny-darwin)
+
+(use-package fcuny-editor)
+(use-package fcuny-paren)
+(use-package fcuny-ibuffer)
+(use-package fcuny-dired)
+(use-package fcuny-project)
+
+(use-package fcuny-company)
+(use-package fcuny-magit)
+(use-package fcuny-pants)
+(use-package fcuny-flyspell)
+
+(use-package fcuny-elisp)
+(use-package fcuny-go)
+(use-package fcuny-python)
+(use-package fcuny-rust)
+(use-package fcuny-shell)
+(use-package fcuny-scala)
+(use-package fcuny-make)
+(use-package fcuny-puppet)
+
+(use-package fcuny-docker)
+(use-package fcuny-json)
+(use-package fcuny-thrift)
+(use-package fcuny-protobuf)
+(use-package fcuny-markdown)
diff --git a/emacs.d/modules/module-appareance.el b/emacs.d/modules/module-appareance.el
deleted file mode 100644
index 7d3d05a..0000000
--- a/emacs.d/modules/module-appareance.el
+++ /dev/null
@@ -1,59 +0,0 @@
-;; I don't want a startup screen
-(setq inhibit-startup-screen t)
-
-;; fullscreen
-(global-set-key (kbd "<s-return>") 'toggle-frame-fullscreen)
-
-;; disable tool bar and the scroll bar
-(dolist (mode '(tool-bar-mode scroll-bar-mode))
-  (when (fboundp mode) (funcall mode -1)))
-
-;; Set default font.
-(set-face-attribute 'default nil :height 130 :weight 'normal :width 'normal)
-
-;; no bell
-(setq visible-bell nil)
-(setq ring-bell-function 'ignore)
-
-;; don't use native full screen on OS-X
-(when (eq system-type 'darwin)
-  (setq ns-use-native-fullscreen nil))
-
-;; highlight current line
-(global-hl-line-mode 1)
-
-;; cursor is a horizontal bar
-(setq-default cursor-type 'hbar)
-
-;; no blinking cursor
-(blink-cursor-mode -1)
-
-;; size of the fringe
-(fringe-mode '(8 . 8))
-
-;; frame title
-(setq frame-title-format '( "%f" " [" (:eval mode-name) "]"))
-
-;; show parenthesis
-(show-paren-mode +1)
-
-;; show column number in the mode line
-(setq column-number-mode t)
-
-;; unclutter the modeline
-(use-package diminish)
-
-(use-package rich-minority)
-
-(use-package smart-mode-line
-  :init
-  (setq sml/theme 'light
-        sml/shorten-directory t
-        sml/shorten-modes t
-        sml/no-confirm-load-theme t
-        sml/name-width 40
-        sml/mode-width 'full)
-  :config
-  (sml/setup))
-
-(provide 'module-appareance)
diff --git a/emacs.d/modules/module-c.el b/emacs.d/modules/module-c.el
deleted file mode 100644
index e1e848c..0000000
--- a/emacs.d/modules/module-c.el
+++ /dev/null
@@ -1,5 +0,0 @@
-(use-package google-c-style
-  :commands
-  (google-set-c-style))
-
-(provide 'module-c)
diff --git a/emacs.d/modules/module-codestyle.el b/emacs.d/modules/module-codestyle.el
deleted file mode 100644
index 05369a7..0000000
--- a/emacs.d/modules/module-codestyle.el
+++ /dev/null
@@ -1,18 +0,0 @@
-(setq show-paren-delay 0)
-
-;; turn off tab indentation
-(setq-default indent-tabs-mode nil)
-
-;; when saving the file, ensure a newline exists at the end of the file
-(setq require-final-newline t)
-
-(use-package whitespace
-  ;; highlight white spaces
-  :config
-  (setq whitespace-style '(face trailing))
-  (add-hook 'prog-mode-hook 'whitespace-mode))
-
-(add-hook 'prog-mode-hook
-          (lambda () (setq show-trailing-whitespace t)))
-
-(provide 'module-codestyle)
diff --git a/emacs.d/modules/module-dired.el b/emacs.d/modules/module-dired.el
deleted file mode 100644
index 6879da9..0000000
--- a/emacs.d/modules/module-dired.el
+++ /dev/null
@@ -1,17 +0,0 @@
-(require 'config-package)
-
-;; Keep dired buffers updated when the file system changes.
-(setq global-auto-revert-non-file-buffers t)
-(setq auto-revert-verbose nil)
-
-;; (setq dired-omit-files
-;;       (concat dired-omit-files "\\|^.DS_Store$\\|^.projectile$\\|^.git$\\|^.svn")))
-
-(let ((gls "/opt/twitter/bin/gls"))
-  (if (file-exists-p gls)
-      (setq insert-directory-program gls
-	    dired-listing-switches "-aBhl --group-directories-first")))
-
-(global-set-key (kbd "C-x C-d") 'dired)
-
-(provide 'module-dired)
diff --git a/emacs.d/modules/module-docker.el b/emacs.d/modules/module-docker.el
deleted file mode 100644
index ba9cd57..0000000
--- a/emacs.d/modules/module-docker.el
+++ /dev/null
@@ -1,14 +0,0 @@
-(require 'config-package)
-
-(use-package dockerfile-mode
-  :bind (:map dockerfile-mode-map
-              ("C-z" . hybrdo-docker/body)))
-
-(defhydra hydra-docker (:hint nil :exit t)
-"
-^Command^
-_b_: build"
-  ("b" dockerfile-build-buffer)
-  ("q" nil "quit" :color blue))
-
-(provide 'module-docker)
diff --git a/emacs.d/modules/module-editing.el b/emacs.d/modules/module-editing.el
deleted file mode 100644
index a49e856..0000000
--- a/emacs.d/modules/module-editing.el
+++ /dev/null
@@ -1,15 +0,0 @@
-(require 'config-package)
-
-;; auto close bracket, parenthesis insertion
-(electric-pair-mode 1)
-
-;; Remap join-line to M-j where it's easier to get to.
-(global-set-key (kbd "M-j") 'join-line)
-
-;; configuration for tramp
-(use-package tramp
-  :config
-  (setq tramp-default-method "ssh"
-        tramp-persistency-file-name (expand-file-name "var/tramp" user-emacs-directory)))
-
-(provide 'module-editing)
diff --git a/emacs.d/modules/module-flycheck.el b/emacs.d/modules/module-flycheck.el
deleted file mode 100644
index 3e2116c..0000000
--- a/emacs.d/modules/module-flycheck.el
+++ /dev/null
@@ -1,11 +0,0 @@
-(require 'config-package)
-
-(use-package flycheck
-  :config
-  (progn
-    (add-hook 'prog-mode-hook 'flycheck-mode)
-    (setq-default flycheck-disabled-checkers '(emacs-lisp-checkdoc))
-    (setq flycheck-highlighting-mode 'lines)
-    (setq flycheck-check-syntax-automatically '(mode-enabled save))))
-
-(provide 'module-flycheck)
diff --git a/emacs.d/modules/module-flyspell.el b/emacs.d/modules/module-flyspell.el
deleted file mode 100644
index 957e1df..0000000
--- a/emacs.d/modules/module-flyspell.el
+++ /dev/null
@@ -1,18 +0,0 @@
-(use-package ispell
-  :config
-  (setq ispell-program-name "aspell"
-        ispell-list-command "--list"))
-
-(use-package flyspell-correct-ivy
-  :bind
-  (:map flyspell-mode-map
-        ("C-;" . flyspell-correct-previous-word-generic)))
-
-(use-package flyspell
-  :commands (spell-checking/change-dictionary)
-  :init
-  :config
-  (add-hook 'text-mode-hook 'flyspell-mode)
-  (add-hook 'prog-mode-hook 'flyspell-prog-mode))
-
-(provide 'module-flyspell)
diff --git a/emacs.d/modules/module-general.el b/emacs.d/modules/module-general.el
deleted file mode 100644
index c68c3dc..0000000
--- a/emacs.d/modules/module-general.el
+++ /dev/null
@@ -1,58 +0,0 @@
-;; set utf-8 as the default encoding
-(prefer-coding-system 'utf-8-unix)
-(set-terminal-coding-system 'utf-8)
-(set-keyboard-coding-system 'utf-8)
-
-;; alias yes-or-no to y-or-n
-(fset 'yes-or-no-p 'y-or-n-p)
-
-;; where to save the bookmarks
-(setq bookmark-default-file (expand-file-name "var/bookmarks" user-emacs-directory)
-      bookmark-save-flag 1)
-
-;; reload the buffer when a file changes
-(global-auto-revert-mode 1)
-
-;; clean old buffers at midnight
-(use-package midnight
-  :config
-  (midnight-mode t))
-
-;; scroll 5 lines at a time
-(setq next-screen-context-lines 5)
-
-;; when using TAB, always indent
-(setq tab-always-indent 'complete)
-
-;; don't auto save files
-(setq auto-save-default nil)
-
-;; I really don't want backup files
-(setq auto-save-list-file-prefix nil
-      make-backup-files nil)
-
-;; How long to display an echo-area message when the minibuffer is active.
-(setq minibuffer-message-timeout 0.5)
-
-;; don't use a lock file
-(setq-default create-lockfiles nil)
-
-;; where to save custom settings
-(setq custom-file (expand-file-name "var/emacs-custom.el" user-emacs-directory))
-
-
-;; automatically revert the buffer if the content changed on disk
-(use-package autorevert :diminish auto-revert-mode)
-
-
-;; configuration for recentf, to interact with recent files
-(use-package recentf
-  :config
-  (setq recentf-save-file (expand-file-name "var/recentf" user-emacs-directory)))
-
-(use-package server
-  :diminish (server-buffer-clients . " #")
-  :config
-  (add-hook 'after-init-hook 'server-start))
-
-(provide 'module-general)
diff --git a/emacs.d/modules/module-git.el b/emacs.d/modules/module-git.el
deleted file mode 100644
index 0c281cc..0000000
--- a/emacs.d/modules/module-git.el
+++ /dev/null
@@ -1,41 +0,0 @@
-(defhydra hydra-magit (:color blue :hint nil :columns 3)
-  "magit"
-  ("RET" magit-visit-thing "visit magit things at point")
-  ("s" magit-status "status")
-  ("d" magit-diff "diff")
-  ("c" magit-commit "commit")
-  ("C" magit-commit-amend "commit-amend")
-  ("r" magit-rebase-interactive "rebase-interactive")
-  ("m" magit-merge "merge")
-  ("l" magit-log-current "log")
-  ("q" nil "exit"))
-
-(use-package magit
-  :mode (("differential-update-comments" . git-commit-mode)
-         ("new-commit"                   . git-commit-mode))
-
-  :bind (("C-c g" . hydra-magit/body)
-         ("C-x g s" . magit-status)
-         ("C-x g b" . magit-checkout))
-
-  :init
-  (progn
-    (setq magit-completing-read-function 'ivy-completing-read))
-
-  :config
-  (progn
-    (global-git-commit-mode)
-    (use-package git-commit :ensure t :defer t)
-    (add-hook 'magit-mode-hook
-              (lambda()
-                (setq mode-name "⎇")))
-    (add-hook 'magit-log-edit-mode-hook
-              #'(lambda ()
-                  (set-fill-column 72)
-                  (flyspell-mode)))))
-
-;; I don't care about any frontend other than magit
-(setf vc-handled-backends nil
-      vc-follow-symlinks t)
-
-(provide 'module-git)
diff --git a/emacs.d/modules/module-go.el b/emacs.d/modules/module-go.el
deleted file mode 100644
index 0869af7..0000000
--- a/emacs.d/modules/module-go.el
+++ /dev/null
@@ -1,52 +0,0 @@
-(use-package go-mode
-  :mode (("\\.go\\'" . go-mode))
-  :bind (:map go-mode-map
-              ("C-z" . hydra-go/body))
-  :init
-  (progn
-    (defun fcuny-go-set-tab-width ()
-      (setq-local tab-width 2))
-    (add-hook 'go-mode-hook 'fcuny-go-set-tab-width))
-
-  :config
-  (progn
-    (add-hook 'before-save-hook 'gofmt-before-save)))
-
-(use-package go-eldoc
-  :config
-  (add-hook 'go-mode-hook 'go-eldoc-setup))
-
-(use-package gotest)
-
-(use-package go-guru)
-
-(use-package go-imports)
-
-(use-package golint)
-
-(use-package go-projectile)
-
-(use-package company-go
-  :init
-  (progn
-    (setq company-go-show-annotation t))
-
-  :config
-  (add-hook 'go-mode-hook (lambda() (add-to-list 'company-backends 'company-go))))
-
-(defhydra hydra-go (:hint nil :exit t)
-"
-^Command^      ^Imports^       ^Doc^
-^-------^------^-------^-------^---^
-_r_: run      _ig_: goto       _d_: doc at point
-              _ia_: add
-^  ^          _ir_: remove
-"
-  ("r" go-run-main)
-  ("d" godoc-at-point)
-  ("ig" go-goto-imports )
-  ("ia" go-import-add)
-  ("ir" go-remove-unused-imports)
-  ("q" nil "quit" :color blue))
-
-(provide 'module-go)
diff --git a/emacs.d/modules/module-hydra.el b/emacs.d/modules/module-hydra.el
deleted file mode 100644
index 0b569c2..0000000
--- a/emacs.d/modules/module-hydra.el
+++ /dev/null
@@ -1,5 +0,0 @@
-(require 'config-package)
-
-(use-package hydra)
-
-(provide 'module-hydra)
diff --git a/emacs.d/modules/module-ibuffer.el b/emacs.d/modules/module-ibuffer.el
deleted file mode 100644
index f914069..0000000
--- a/emacs.d/modules/module-ibuffer.el
+++ /dev/null
@@ -1,42 +0,0 @@
-(require 'config-package)
-
-(use-package ibuffer
-  :bind ("C-x C-b" . ibuffer)
-  :init
-  (setq-default ibuffer-eliding-string "…")
-  (setq ibuffer-show-empty-filter-groups nil
-        ibuffer-formats '((mark modified read-only " "
-                                (name 30 30 :left :elide)
-                                " "
-                                (size 9 -1 :right)
-                                " "
-                                (mode 16 16 :left :elide)
-                                " " filename-and-process)
-                          (mark " "
-                                (name 16 -1)
-                                " " filename))
-        ibuffer-saved-filter-groups
-        (quote (("default"
-                 ("dired"  (mode . dired-mode))
-                 ("elisp"  (mode . emacs-lisp-mode))
-                 ("emacs"  (or (name . "^\\*.*\\*$") (mode . fundamental-mode)))
-                 ("go"     (mode . go-mode))
-                 ("java"   (mode . java-mode))
-                 ("json"   (mode . json-mode))
-                 ("lisp"   (mode . lisp-mode))
-                 ("magit"  (mode . magit-mode))
-                 ("puppet" (mode . puppet-mode))
-                 ("python" (mode . python-mode))
-                 ("repl"   (name . "repl"))
-                 ("ruby"   (mode . ruby-mode))
-                 ("rust"   (mode . rust-mode))
-                 ("sh"     (mode . sh-mode))
-                 ("text"   (mode . text-mode))))))
-
-  (add-hook 'ibuffer-mode-hook  ;; organise by filter-groups
-            '(lambda ()
-               (ibuffer-auto-mode 1)
-               (setq mode-name "≣")
-               (ibuffer-switch-to-saved-filter-groups "default"))))
-
-(provide 'module-ibuffer)
diff --git a/emacs.d/modules/module-java.el b/emacs.d/modules/module-java.el
deleted file mode 100644
index 33351fb..0000000
--- a/emacs.d/modules/module-java.el
+++ /dev/null
@@ -1,69 +0,0 @@
-(require 'config-package)
-
-(use-package autodisass-java-bytecode)
-
-(use-package meghanada
-  :defer t
-
-  :commands meghanada-mode
-
-  :init
-  (add-hook 'java-mode-hook
-            (lambda()
-              (google-set-c-style)
-              (google-make-newline-indent)
-              (meghanada-mode t)
-              (smartparens-mode t)
-              (rainbow-delimiters-mode t)
-              (highlight-symbol-mode t)))
-
-  :config
-  (setq meghanada-server-remote-debug t
-        meghanada-use-company t
-	meghanada-use-flycheck t
-	meghanada-auto-start t
-        meghanada-server-install-dir (expand-file-name "var/meghanada" user-emacs-directory))
-  (meghanada-install-server)
-
-  :bind
-  (:map meghanada-mode-map
-        ("C-S-t" . meghanada-switch-testcase)
-        ("M-r" . meghanada-reference)
-        ("M-t" . meghanada-typeinfo)
-        ("C-z" . hydra-meghanada/body)))
-
-(defhydra hydra-meghanada (:hint nil :exit t)
-"
-^Edit^                           ^Tast or Task^
-^----^---------------------------^------------^
-_f_: meghanada-compile-file      _m_: meghanada-restart
-_c_: meghanada-compile-project   _t_: meghanada-run-task
-_o_: meghanada-optimize-import   _j_: meghanada-run-junit-test-case
-_s_: meghanada-switch-test-case  _J_: meghanada-run-junit-class
-_v_: meghanada-local-variable    _R_: meghanada-run-junit-recent
-_i_: meghanada-import-all        _r_: meghanada-reference
-_g_: magit-status                _T_: meghanada-typeinfo
-_q_: exit
-"
-  ("f" meghanada-compile-file)
-  ("m" meghanada-restart)
-
-  ("c" meghanada-compile-project)
-  ("o" meghanada-optimize-import)
-  ("s" meghanada-switch-testcase)
-  ("v" meghanada-local-variable)
-  ("i" meghanada-import-all)
-
-  ("g" magit-status)
-
-  ("t" meghanada-run-task)
-  ("T" meghanada-typeinfo)
-  ("j" meghanada-run-junit-test-case)
-  ("J" meghanada-run-junit-class)
-  ("R" meghanada-run-junit-recent)
-  ("r" meghanada-reference)
-
-  ("q" exit)
-  ("z" nil "leave"))
-
-(provide 'module-java)
diff --git a/emacs.d/modules/module-javascript.el b/emacs.d/modules/module-javascript.el
deleted file mode 100644
index 4a3693d..0000000
--- a/emacs.d/modules/module-javascript.el
+++ /dev/null
@@ -1,10 +0,0 @@
-(use-package graphql-mode)
-
-(use-package js2-mode
-  :mode (("\\.js$" . js2-mode))
-  :config
-  (setq-default
-   js2-mode-indent-ignore-first-tab t
-   js-indent-level 2))
-
-(use-package rjsx-mode)
diff --git a/emacs.d/modules/module-json.el b/emacs.d/modules/module-json.el
deleted file mode 100644
index aa34a3e..0000000
--- a/emacs.d/modules/module-json.el
+++ /dev/null
@@ -1,20 +0,0 @@
-(require 'config-package)
-
-(use-package json-mode
-  :mode "\\.json$|\\.workflow$'"
-
-  :config
-  (setq json-reformat:indent-width 2)
-
-  :bind (:map json-mode-map
-              ("C-z" . hydra-json/body)))
-
-(defhydra hydra-json (:hint nil :exit t)
-"
-^Command^
-_f_: format
-"
-  ("f" json-reformat-region)
-  ("q" nil "quit" :color blue))
-
-(provide 'module-json)
diff --git a/emacs.d/modules/module-lisp.el b/emacs.d/modules/module-lisp.el
deleted file mode 100644
index 11f6823..0000000
--- a/emacs.d/modules/module-lisp.el
+++ /dev/null
@@ -1,14 +0,0 @@
-(require 'config-package)
-
-(require 'eldoc)
-
-(add-hook 'emacs-lisp-mode-hook (lambda()
-                                  (setq mode-name "λ")))
-
-(add-hook 'emacs-lisp-mode-hook 'eldoc-mode)
-(add-hook 'lisp-interaction-mode-hook 'eldoc-mode)
-
-(define-key emacs-lisp-mode-map (kbd "C-c C-e") 'eval-buffer)
-(define-key emacs-lisp-mode-map (kbd "C-c C-r") 'eval-region)
-
-(provide 'module-lisp)
diff --git a/emacs.d/modules/module-make.el b/emacs.d/modules/module-make.el
deleted file mode 100644
index 5735670..0000000
--- a/emacs.d/modules/module-make.el
+++ /dev/null
@@ -1,8 +0,0 @@
-(require 'config-package)
-
-(use-package make-mode
-  :config
-  (add-hook 'makefile-mode-hook (lambda ()
-                                  (setq-local tab-width 2))))
-
-(provide 'module-make)
diff --git a/emacs.d/modules/module-pants.el b/emacs.d/modules/module-pants.el
deleted file mode 100644
index 579c298..0000000
--- a/emacs.d/modules/module-pants.el
+++ /dev/null
@@ -1,28 +0,0 @@
-(require 'config-package)
-
-(use-package pants
-  :load-path (lambda () (expand-file-name  "github.com/fcuny/pants.el/" fcuny-path-workspace))
-
-  :config
-  (setq pants-completion-system 'ivy
-        pants-source-tree-root (expand-file-name "git.twitter.biz/source" fcuny-path-workspace)
-        pants-bury-compilation-buffer t
-        pants-extra-args "-q")
-
-  :bind (("C-c b" . pants-find-build-file)
-         ("C-c r" . pants-run-binary)
-         ("C-c t" . pants-run-test)
-         ("C-c h" . hydra-pants/body)))
-
-(defhydra hydra-pants (:hint nil :exit t)
-"
-^Command^
-_g_: go to build
-_b_: build a binary
-_t_: run the tests
-"
-  ("g" pants-find-build-file)
-  ("b" pants-run-binary)
-  ("t" pants-run-test))
-
-(provide 'module-pants)
diff --git a/emacs.d/modules/module-project.el b/emacs.d/modules/module-project.el
deleted file mode 100644
index 9f635ed..0000000
--- a/emacs.d/modules/module-project.el
+++ /dev/null
@@ -1,63 +0,0 @@
-(defhydra hydra-projectile-other-window (:color teal :columns 2)
-  "projectile-other-window"
-  ("f"  projectile-find-file-other-window        "file")
-  ("g"  projectile-find-file-dwim-other-window   "file dwim")
-  ("d"  projectile-find-dir-other-window         "dir")
-  ("b"  projectile-switch-to-buffer-other-window "buffer")
-  ("q"  nil                                      "cancel" :color blue))
-
-(defhydra hydra-projectile (:color teal :columns 4)
-  "Projectile"
-  ("a"   projectile-ag "ag")
-  ("b"   projectile-switch-to-buffer "switch to buffer")
-  ("c"   projectile-invalidate-cache "invalidate cache")
-  ("d"   projectile-find-dir "find dir")
-  ("s-f" projectile-find-file "find file")
-  ("ff"  projectile-find-file-dwim "find file dwim")
-  ("fd"  projectile-find-file-in-directory "find file in dir")
-  ("g"   projectile-regenerate-tags "regenerate tags")
-  ("fg"  projectile-find-tag "find tag")
-  ("i"   projectile-ibuffer "ibuffer")
-  ("K"   projectile-kill-buffers "kill buffers")
-  ("m"   projectile-multi-occur "multi occur")
-  ("s-p" projectile-switch-project "switch project")
-  ("s"   projectile-switch-project "switch project")
-  ("r"   projectile-recentf "recent file")
-  ("x"   projectile-remove-known-project "remove project")
-  ("X"   projectile-cleanup-known-projects "cleanup project")
-  ("z"   projectile-cache-current-file "cache current file")
-  ("`"   hydra-projectile-other-window/body "other window")
-  ("q"   nil "cancel" :color blue))
-
-(use-package projectile
-  :diminish projectile-mode
-  :bind-keymap ("C-c p" . projectile-command-map)
-  :bind (("M-p" . hydra-projectile/body))
-
-  :init
-  (add-hook 'after-init-hook #'projectile-mode)
-
-  :config
-  (setq projectile-switch-project-action 'projectile-dired
-        projectile-enable-caching t
-        projectile-completion-system 'ivy
-        projectile-known-projects-file (expand-file-name "var/projectile-bookmarks.eld" user-emacs-directory)
-        projectile-cache-file (expand-file-name "var/projectile.cache" user-emacs-directory)
-        projectile-globally-ignored-directories (append fcuny-projects-ignored-dirs
-                                                        projectile-globally-ignored-directories)
-        projectile-globally-ignored-files (append fcuny-projects-ignored-files
-                                                  projectile-globally-ignored-files)))
-
-(use-package ag
-  :commands (counsel-ag ag)
-  :bind (:map ag-mode-map
-              ("p" . compilation-previous-error)
-              ("n" . compilation-next-error)
-              ("N" . compilation-next-file)
-              ("P" . compilation-previous-file))
-  :config
-  (setq ag-highlight-search t
-        ag-reuse-buffers t
-        ag-reuse-window t))
-
-(provide 'module-project)
diff --git a/emacs.d/modules/module-protobuf.el b/emacs.d/modules/module-protobuf.el
deleted file mode 100644
index 892cb0d..0000000
--- a/emacs.d/modules/module-protobuf.el
+++ /dev/null
@@ -1,4 +0,0 @@
-(use-package protobuf-mode
-  :mode ("\\.proto$" . protobuf-mode))
-
-(provide 'module-protobuf)
diff --git a/emacs.d/modules/module-puppet.el b/emacs.d/modules/module-puppet.el
deleted file mode 100644
index 025965b..0000000
--- a/emacs.d/modules/module-puppet.el
+++ /dev/null
@@ -1,7 +0,0 @@
-(use-package puppet-mode
-  :mode ("\\.pp\\'" . puppet-mode)
-  :init (add-hook 'puppet-mode-hook 'flycheck-mode)
-  :config
-  (setq flycheck-puppet-lint-rc "/Users/fcuny/workspace/svn.twitter.biz/twitter-ops/utilities/puppet/.puppet-lint.rc"))
-
-(provide 'module-puppet)
diff --git a/emacs.d/modules/module-python.el b/emacs.d/modules/module-python.el
deleted file mode 100644
index 4b2a27c..0000000
--- a/emacs.d/modules/module-python.el
+++ /dev/null
@@ -1,20 +0,0 @@
-(setq python-indent-offset 2)
-(add-hook 'python-mode-hook 'eldoc-mode t)
-
-(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
-(add-to-list 'auto-mode-alist '("\\.BUILD\\'" . python-mode))
-(add-to-list 'auto-mode-alist '("\\.aurora\\'" . python-mode))
-
-;;; errors are reported like this:
-;;; E241:ERROR   <file name>:<line> <message>
-(flycheck-define-checker source-check
-  "A syntax checker for python source code in Source, using `check.pex'"
-  :command ("check.pex" source)
-  :error-patterns ((error line-start (id (1+ nonl)) ":ERROR" (1+ nonl) ":" line (message) line-end)
-                   (warning line-start (id (1+ nonl)) ":WARNING" (1+ nonl) ":" line (message) line-end))
-  :predicate fc/check-source-p
-  :modes (python-mode))
-
-(add-to-list 'flycheck-checkers 'source-check)
-
-(provide 'module-python)
diff --git a/emacs.d/modules/module-rust.el b/emacs.d/modules/module-rust.el
deleted file mode 100644
index b99416f..0000000
--- a/emacs.d/modules/module-rust.el
+++ /dev/null
@@ -1,18 +0,0 @@
-(use-package rust-mode)
-
-(use-package racer)
-
-(use-package cargo
-  :hook (rust-mode . cargo-minor-mode)
-  :config
-  (add-hook 'rust-mode-hook 'racer-mode)
-  (add-hook 'rust-mode-hook 'eldoc-mode)
-  (setq compilation-ask-about-save nil
-        rust-format-on-save t
-        rust-rustfmt-bin "/Users/fcuny/.cargo/bin/rustfmt")
-  ;; Automatically re-run compilation command on manual save inside a project.
-  ;; Will do nothing if a compilation hasn't been manually triggered
-  ;; in the past.
-  :diminish cargo-minor-mode)
-
-(provide 'module-rust)
diff --git a/emacs.d/modules/module-scala.el b/emacs.d/modules/module-scala.el
deleted file mode 100644
index 374c581..0000000
--- a/emacs.d/modules/module-scala.el
+++ /dev/null
@@ -1,3 +0,0 @@
-(use-package scala-mode)
-
-(provide 'module-scala)
diff --git a/emacs.d/modules/module-toml.el b/emacs.d/modules/module-toml.el
deleted file mode 100644
index 01b60c2..0000000
--- a/emacs.d/modules/module-toml.el
+++ /dev/null
@@ -1,3 +0,0 @@
-(use-package toml-mode)
-
-(provide 'module-toml)
diff --git a/emacs.d/modules/module-yaml.el b/emacs.d/modules/module-yaml.el
deleted file mode 100644
index 14ccc89..0000000
--- a/emacs.d/modules/module-yaml.el
+++ /dev/null
@@ -1,5 +0,0 @@
-(use-package yaml-mode
-  :init (add-hook 'yaml-mode-hook 'flycheck-mode)
-  :mode ("\\.ya?ml\\'" . yaml-mode))
-
-(provide 'module-yaml)