about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/wpc
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/emacs/.emacs.d/wpc')
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/functions.el4
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-clojure.el24
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-company.el16
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-dired.el14
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-docker.el4
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-elixir.el15
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-flycheck.el2
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-git.el14
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-graphql.el17
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-haskell.el10
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-javascript.el26
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-keybindings.el53
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el53
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-misc.el46
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-org.el22
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-package.el15
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-slack.el65
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-terminal.el19
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/packages/wpc-ui.el19
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/variables.el2
20 files changed, 159 insertions, 281 deletions
diff --git a/configs/shared/emacs/.emacs.d/wpc/functions.el b/configs/shared/emacs/.emacs.d/wpc/functions.el
index d9c4a796053b..d8419ad77157 100644
--- a/configs/shared/emacs/.emacs.d/wpc/functions.el
+++ b/configs/shared/emacs/.emacs.d/wpc/functions.el
@@ -5,11 +5,7 @@
 ;; This file hopefully contains friendly APIs that making ELisp development more enjoyable.
 
 ;;; Code:
-
-;; TODO: clean up this file so this isn't necessary
-(setq evil-want-integration nil)
 (require 'evil)
-
 (require 'projectile)
 (require 'paredit)
 (require 'term)
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-clojure.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-clojure.el
index 611e9bf5efd3..1939d3ecedb1 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-clojure.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-clojure.el
@@ -32,25 +32,15 @@
           (switch-to-buffer buffer-name)
         (funcall repl-function)))))
 
-;; (defun wpc/evil-leader/set-key-for-clojure-modes (kbd callback)
-;;   (evil-leader/set-key-for-mode 'clojure-mode kbd callback)
-;;   (evil-leader/set-key-for-mode 'clojurec-mode kbd callback)
-;;   (evil-leader/set-key-for-mode 'clojurescript-mode kbd callback))
-
-;; ;; clojure
-;; (wpc/evil-leader/set-key-for-clojure-modes "d" #'cider-doc)
-;; (wpc/evil-leader/set-key-for-clojure-modes "e" #'cider-eval-defun-at-point)
-;; (wpc/evil-leader/set-key-for-clojure-modes "r" #'wpc/find-or-create-clojure-or-clojurescript-repl)
-
 (use-package cider
-  :general
-  (cider-repl-mode-map
-   "C-l"    'cider-repl-clear-buffer
-   "C-u"    'kill-whole-line
-   "<up>"   'cider-repl-previous-input
-   "<down>" 'cider-repl-next-input
-   "C-c 'j" 'wpc/find-or-create-clojure-or-clojurescript-repl)
   :config
+  (general-define-key
+    :keymaps 'cider-repl-mode-map
+    "C-l"    #'cider-repl-clear-buffer
+    "C-u"    #'kill-whole-line
+    "<up>"   #'cider-repl-previous-input
+    "<down>" #'cider-repl-next-input
+    "C-c 'j" #'wpc/find-or-create-clojure-or-clojurescript-repl)
   (setq cider-cljs-lein-repl
         "(do (require 'figwheel-sidecar.repl-api)
              (figwheel-sidecar.repl-api/start-figwheel!)
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-company.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-company.el
index ec96bdf90b3e..e4507031a1e0 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-company.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-company.el
@@ -8,17 +8,17 @@
 
 ;; autocompletion client
 (use-package company
-  :general
-  (company-active-map
-   "C-j" 'company-select-next
-   "C-n" 'company-select-next
-   "C-k" 'company-select-previous
-   "C-p" 'company-select-previous
-   "C-d" 'company-show-doc-buffer)
   :config
+  (general-define-key
+    :keymaps 'company-active-map
+    "C-j" #'company-select-next
+    "C-n" #'company-select-next
+    "C-k" #'company-select-previous
+    "C-p" #'company-select-previous
+    "C-d" #'company-show-doc-buffer)
   (setq company-idle-delay 0)
   (setq company-minimum-prefix-length 2)
   (global-company-mode))
 
 (provide 'wpc-company)
-;;; company.el ends here
+;;; wpc-company.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-dired.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-dired.el
index 1c45ec35e2b4..6639ea530604 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-dired.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-dired.el
@@ -7,12 +7,16 @@
 ;;; Code:
 
 (require 'dired)
-(general-def 'dired-mode-map
-    "c" 'find-file
-    "f" 'wpc/find-file
-    "-" 'dired-up-directory)
+(general-nmap
+  :keymaps 'dired-mode-map
+  "c" #'find-file
+  "f" #'wpc/find-file
+  "-" #'dired-up-directory)
+(general-unbind
+  :keymaps 'dired-mode-map
+  "s")
 (general-add-hook 'dired-mode-hook (list (enable dired-hide-details-mode)
                                          #'auto-revert-mode))
 
 (provide 'wpc-dired)
-;;; dired.el ends here
+;;; wpc-dired.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-docker.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-docker.el
index 586878fdeacd..270eaec6fe4c 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-docker.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-docker.el
@@ -12,7 +12,5 @@
   (setenv "DOCKER_HOST" "tcp://10.11.12.13:2376")
   (setenv "DOCKER_MACHINE_NAME" "name"))
 
-(use-package dockerfile-mode)
-
 (provide 'wpc-docker)
-;;; docker.el ends here
+;;; wpc-docker.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-elixir.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-elixir.el
new file mode 100644
index 000000000000..fd3c178ebae8
--- /dev/null
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-elixir.el
@@ -0,0 +1,15 @@
+;;; wpc-elixir.el --- Elixir / Erland configuration -*- lexical-binding: t -*-
+;; Author: William Carroll <wpcarro@gmail.com>
+
+;;; Commentary:
+;; My preferences for working with Elixir / Erlang projects
+
+;;; Code:
+(use-package elixir-mode
+  :config
+  (general-add-hook 'elixir-mode-hook
+                    (lambda ()
+                      (add-hook 'before-save-hook #'elixir-format nil t))))
+
+(provide 'wpc-elixir)
+;;; wpc-elixir.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-flycheck.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-flycheck.el
index 66314af9877c..d7bb834a6257 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-flycheck.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-flycheck.el
@@ -11,4 +11,4 @@
   (global-flycheck-mode))
 
 (provide 'wpc-flycheck)
-;;; flycheck.el ends here
+;;; wpc-flycheck.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-git.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-git.el
deleted file mode 100644
index 80dbedf7868d..000000000000
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-git.el
+++ /dev/null
@@ -1,14 +0,0 @@
-;;; git.el --- My version control preferences -*- lexical-binding: t -*-
-;; Author: William Carroll <wpcarro@gmail.com>
-
-;;; Commentary:
-;; Things related to git, magit, etc belong here
-
-;;; Code:
-
-(use-package git-timemachine)
-
-(use-package magit)
-
-(provide 'wpc-git)
-;;; git.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-graphql.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-graphql.el
deleted file mode 100644
index ea19e130ce32..000000000000
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-graphql.el
+++ /dev/null
@@ -1,17 +0,0 @@
-;;; wpc-graphql.el --- Packages related to GraphQL -*- lexical-binding: t -*-
-;; Author: William Carroll <wpcarro@gmail.com>
-
-;;; Commentary:
-;; Hosts various packages and functions to make working with GraphQL more
-;; enjoyable.
-
-;;; Code:
-
-(quelpa '(graphql.el
-          :fetcher github
-          :repo "vermiculus/graphql.el"))
-(require 'graphql.el)
-
-
-(provide 'wpc-graphql)
-;;; wpc-graphql.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-haskell.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-haskell.el
index 8e5dccfeaa9d..6fc98b31e77f 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-haskell.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-haskell.el
@@ -27,7 +27,7 @@
   (add-hook 'haskell-mode-hook #'flycheck-mode))
 
 ;; Test toggling
-(defun empire/haskell/module->test ()
+(defun haskell/module->test ()
   "Jump from a module to a test."
   (let ((filename (->> buffer-file-name
                        (s-replace "/src/" "/test/")
@@ -36,7 +36,7 @@
     (make-directory (f-dirname filename) t)
     (find-file filename)))
 
-(defun empire/haskell/test->module ()
+(defun haskell/test->module ()
   "Jump from a test to a module."
   (let ((filename (->> buffer-file-name
                        (s-replace "/test/" "/src/")
@@ -45,12 +45,12 @@
     (make-directory (f-dirname filename) t)
     (find-file filename)))
 
-(defun empire/haskell/test<->module ()
+(defun haskell/test<->module ()
   "Toggle between test and module in Haskell."
   (interactive)
   (if (s-contains? "/src/" buffer-file-name)
-      (empire/haskell/module->test)
-    (empire/haskell/test->module)))
+      (haskell/module->test)
+    (haskell/test->module)))
 
 (provide 'wpc-haskell)
 ;;; wpc-haskell.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-javascript.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-javascript.el
index 717f1d9f9af3..db192736eebd 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-javascript.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-javascript.el
@@ -1,4 +1,4 @@
-;;; wpc-javascript.el --- My Javascript preferences -*- lexical-binding: t -*-
+;; wpc-javascript.el --- My Javascript preferences -*- lexical-binding: t -*-
 ;; Author: William Carroll <wpcarro@gmail.com>
 
 ;;; Commentary:
@@ -33,25 +33,24 @@
 ;; (evil-leader/set-key-for-mode 'rjsx-mode "x" #'wpc/toggle-between-js-component-and-store)
 ;; (evil-leader/set-key-for-mode 'rjsx-mode "u" #'wpc/jump-to-parent-file)
 
-;; javascript text objects
-(quelpa '(evil-text-objects-javascript
-          :fetcher github
-          :repo "urbint/evil-text-objects-javascript"))
-(require 'evil-text-objects-javascript)
-
 ;; Flow for Javascript
 (use-package add-node-modules-path
   :config
   (general-add-hook wpc/js-hooks #'add-node-modules-path))
 
 (use-package flow-minor-mode
-  :general
-  (n "gd" 'flow-minor-jump-to-definition)
   :requires evil-leader
   :config
   (general-add-hook wpc/js-hooks #'flow-minor-mode)
   (evil-leader/set-key-for-mode 'rjsx-mode "F" #'wpc/insert-flow-annotation))
 
+(use-package web-mode
+  :mode "\\.html\\'"
+  :config
+  (setq web-mode-css-indent-offset 2)
+  (setq web-mode-code-indent-offset 2)
+  (setq web-mode-markup-indent-offset 2))
+
 ;; Shouldn't need this once LSP is setup properly
 ;; (use-package company-flow
 ;;   :after (company)
@@ -70,13 +69,12 @@
 
 ;; JSX highlighting
 (use-package rjsx-mode
-  :after (evil-text-objects-javascript)
-  :general
-  (general-unbind rjsx-mode-map "<" ">" "C-d")
-  (n rjsx-mode-map
-     "K" 'flow-minor-type-at-pos)
   :mode "\\.js\\'"
   :config
+  (general-unbind rjsx-mode-map "<" ">" "C-d")
+  (general-nmap
+    :keymaps 'rjsx-mode-map
+    "K" #'flow-minor-type-at-pos)
   (setq js2-mode-show-parse-errors nil
         js2-mode-show-strict-warnings nil))
 
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-keybindings.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-keybindings.el
index a20a803a433b..dee4dee128d4 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-keybindings.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-keybindings.el
@@ -3,45 +3,42 @@
 
 ;;; Commentary:
 ;; This module hosts my Evil preferences
+;;
+;; Wish List:
+;; - drop support for `evil-leader' library in favor of `general.el'
+;; - restore support for concise (n <kbd> <function>) instead of `general-mmap'
+;; - restore support for `general-unbind'
 
 ;;; Code:
 
-(quelpa
- '(general
-   :repo "noctuid/general.el"
-   :fetcher github))
-(general-evil-setup t)
-
-;; vim...
 (use-package evil
-  :general
-  (m
-   "RET" 'evil-goto-line
-   "H"   'evil-first-non-blank
-   "L"   'evil-end-of-line
-   "-"   'dired-jump
-   "sl"  'wpc/evil-window-vsplit-right
-   "sh"  'evil-window-vsplit
-   "sk"  'evil-window-split
-   "sj"  'wpc/evil-window-split-down
-   "sj"  'wpc/evil-window-split-down)
-  (n
-   "gd"  'xref-find-definitions)
-  (general-unbind m "M-." "C-p")
-  (general-unbind n "s" "M-.")
-  (general-unbind i "C-d" "C-a" "C-e" "C-n" "C-p" "C-k")
-  (evil-ex-map
-   "M-p" 'previous-complete-history-element
-   "M-n" 'next-complete-history-element)
   :init
   (setq evil-want-integration nil)
+  (general-evil-setup)
   :config
+  (general-mmap
+    :keymaps 'override
+    "RET" #'evil-goto-line
+    "H"   #'evil-first-non-blank
+    "L"   #'evil-end-of-line
+    "-"   #'dired-jump
+    "sl"  #'wpc/evil-window-vsplit-right
+    "sh"  #'evil-window-vsplit
+    "sk"  #'evil-window-split
+    "sj"  #'wpc/evil-window-split-down
+    "sj"  #'wpc/evil-window-split-down)
+  (general-nmap
+    :keymaps 'override
+    "gd"  #'xref-find-definitions)
+  (general-unbind 'motion "M-." "C-p")
+  (general-unbind 'normal "s"   "M-.")
+  (general-unbind 'insert "C-d" "C-a" "C-e" "C-n" "C-p" "C-k")
   (setq evil-symbol-word-search t)
   (evil-mode 1))
 
 ;; evil keybindings
 (use-package evil-collection
-  :after evil
+  :after (evil)
   :config
   (evil-collection-init))
 
@@ -63,8 +60,6 @@
     "n"  #'flycheck-next-error
     "N"  #'smerge-next
     "P"  #'smerge-prev
-    "s"  #'slack-send-code-snippet
-    "S"  #'slack-select-unread-rooms
     "b"  #'ivy-switch-buffer
     "gs" #'magit-status
     "es" #'wpc/create-snippet
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el
index c15c4526c2ee..cebe7b265761 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-lisp.el
@@ -3,6 +3,18 @@
 
 ;;; Commentary:
 ;; This hosts things like Paredit settings
+;;
+;; Here is some of the thinking behind some of the keybindings:
+;;
+;; slurp    s
+;; barf     S
+;; forward  )
+;; backward (
+;;
+;; Known concession: s and S eclipse Vim bindings.  There is a precedent already
+;; for eclipsing the s binding for window splitting.  Shift-s feel appropriate
+;; for barfing, since eclisping the b KBD feels less acceptable than eclisping
+;; the s KBD.
 
 ;;; Code:
 
@@ -13,33 +25,24 @@
 
 ;; Elisp
 (use-package elisp-slime-nav
-  :ghook
-  'emacs-lisp-mode
-  'ielm-mode)
-
-;; Here is some of the thinking behind some of the keybindings:
-;;
-;; slurp    s
-;; barf     S
-;; forward  )
-;; backward (
-;;
-;; Known concession: s and S eclipse Vim bindings. There is a precedent already
-;; for eclipsing the s binding for window splitting. Shift-s feel appropriate
-;; for barfing, since eclisping the b KBD feels less acceptable than eclisping
-;; the s KBD.
+  :config
+  (general-add-hook 'emacs-lisp-mode #'ielm-mode))
 
 ;; paredit LISP editing
 (use-package paredit
-  :general
-  (general-unbind paredit-mode-map "C-j" "M-q")
-  (n paredit-mode-map
-     "s)" 'paredit-forward-slurp-sexp
-     "s(" 'paredit-backward-slurp-sexp
-     "S)" 'paredit-forward-barf-sexp
-     "S(" 'paredit-backward-barf-sexp
-     "gr" 'paredit-raise-sexp)
-  :ghook (wpc/lisp-mode-hooks #'enable-paredit-mode))
+  :config
+  (general-unbind
+    :keymaps 'paredit-mode-map
+    "C-j"
+    "M-q")
+  (general-nmap
+    :keymaps 'paredit-mode-map
+     "s)" #'paredit-forward-slurp-sexp
+     "s(" #'paredit-backward-slurp-sexp
+     "S)" #'paredit-forward-barf-sexp
+     "S(" #'paredit-backward-barf-sexp
+     "gr" #'paredit-raise-sexp)
+  (general-add-hook wpc/lisp-mode-hooks #'enable-paredit-mode))
 
 (provide 'wpc-lisp)
-;;; lisp.el ends here
+;;; wpc-lisp.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-misc.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-misc.el
index aff2034645d8..ec0d723243ab 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-misc.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-misc.el
@@ -10,12 +10,22 @@
 (setq custom-file "~/.emacs.d/custom.el")
 (load custom-file 'noerror)
 
+;; integrate Emacs with X11 clipboard
+(setq x-select-enable-primary t)
+(setq x-select-enable-clipboard t)
+(general-def 'insert
+  "s-v" #'x-clipboard-yank
+  "C-S-v" #'x-clipboard-yank)
+
 ;; start emacs server so `emacsclient' can work
 (server-start)
 
 ;; transparently edit compressed files
 (auto-compression-mode t)
 
+;; autowrap when over the fill-column
+(auto-fill-mode 1)
+
 ;; link to Emacs source code
 (setq find-function-C-source-directory "~/programming/emacs/src")
 
@@ -34,14 +44,10 @@
 
 ;; create file bookmarks
 (set-register ?e '(file . "~/.emacs.d/wpc/packages"))
-(set-register ?n '(file . "~/programming/nixify/darwin-configuration.nix"))
-(set-register ?u '(file . "~/urbint"))
-(set-register ?d '(file . "~/dotfiles"))
+(set-register ?n '(file . "~/programming/nixify/configuration.nix"))
+(set-register ?d '(file . "~/programming/dotfiles"))
 (set-register ?s '(file . "~/.slate.js"))
 (set-register ?D '(file . "~/Dropbox"))
-(set-register ?o '(file . "~/Dropbox/org/"))
-(set-register ?c '(file . "~/Dropbox/org/chains.org"))
-(set-register ?b '(file . "~/Dropbox/org/backlog.org"))
 (set-register ?p `(file . ,wpc/current-project))
 
 ;; persist history etc b/w Emacs sessions
@@ -101,12 +107,11 @@
   (defvar url-callback-function ())
   (defvar url-callback-arguments ()))
 
-(use-package smex
-  :general
-  ("M-x" 'smex)
-  :ghook ('ido-setup-hook #'wpc/bind-ido-keys)
-  :config
-  (smex-initialize))
+; (use-package smex
+;   :config
+;   (general-define-key "M-x" #'smex)
+;   (general-add-hook 'ido-setup-hook #'wpc/bind-ido-keys)
+;   (smex-initialize))
 
 (use-package flx-ido
   :after (smex)
@@ -116,18 +121,18 @@
         ido-use-faces nil))
 
 (use-package swiper
-  :general
-  ("C-s" 'swiper
-   "C-r" 'swiper))
+  :config
+  (general-define-key
+    "C-s" #'swiper
+    "C-r" #'swiper))
 
 (use-package yasnippet
   :config
   (yas-global-mode 1))
 
 (use-package ace-window
-  :general
-  ("C-x o" 'ace-window)
   :config
+  (general-define-key "C-x o" #'ace-window)
   (setq aw-keys '(?a ?s ?d ?f ?j ?k ?k ?\;)))
 
 (use-package projectile
@@ -143,9 +148,6 @@
           (counsel-git-grep)
         (counsel-git-grep nil maybe-symbol)))))
 
-;; projectile intergration with ivy
-(use-package counsel-projectile)
-
 ;; search Google, Stackoverflow from within Emacs
 (use-package engine-mode
   :config
@@ -156,11 +158,7 @@
     "https://stackoverflow.com/search?q=%s"
     :keybinding "s"))
 
-(use-package markdown-mode)
-(use-package yaml-mode)
-
 ;; Microsoft's Language Server Protocol (LSP)
-(use-package lsp-mode)
 (use-package lsp-ui
   :config
   (add-hook 'lsp-mode-hook #'lsp-ui-mode))
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-org.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-org.el
index 28f1f9308dee..c2682be5c158 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-org.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-org.el
@@ -6,19 +6,7 @@
 
 ;;; Code:
 
-;; Griffin's org clubhouse integration
-;;(load-file "~/.emacs.d/vendor/org-clubhouse.el")
-;;(setq org-clubhouse-auth-token (wpc/read-file-as-string "~/dotfiles/configs/secrets/clubhouse_token.txt")
-;;      org-clubhouse-team-name "urbint")
-;;(add-hook 'org-mode-hook #'org-clubhouse-mode)
-
 (use-package org
-  :ghook (nil (disable linum-mode))
-  :general
-  (:prefix "C-c"
-           "l" 'org-store-link
-           "a" 'org-agenda
-           "c" 'org-capture)
   :preface
   (defconst wpc-org-directory
     "~/Dropbox/org")
@@ -29,6 +17,11 @@
   (defun ub/org-file (file)
     (f-join ub-org-directory (f-swap-ext file "org")))
   :config
+  ; (general-add-hook org-mode-hook (disable linum-mode))
+  (general-define-key :prefix "C-c"
+           "l" #'org-store-link
+           "a" #'org-agenda
+           "c" #'org-capture)
   (setq org-default-notes-file (wpc/org-file "notes"))
   (setq org-log-done 'time)
   (setq org-agenda-files (list (wpc/org-file "work")
@@ -39,7 +32,8 @@
 
 (use-package org-bullets
   :after (org)
-  :ghook ('org-mode-hook (enable org-bullets-mode)))
+  :config
+  (general-add-hook 'org-mode-hook (enable org-bullets-mode)))
 
 (provide 'wpc-org)
-;;; org.el ends here
+;;; wpc-org.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-package.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-package.el
index 844ad83d5328..d45150e528c2 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-package.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-package.el
@@ -8,25 +8,14 @@
 ;;; Code:
 
 (require 'package)
-(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
-(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/") t)
 (package-initialize)
 
-(if (require 'quelpa nil t)
-    (quelpa-self-upgrade)
-  (with-temp-buffer
-    (url-insert-file-contents "https://raw.github.com/quelpa/quelpa/master/bootstrap.el")
-    (eval-buffer)))
-
+(require 'general)
 (require 'use-package)
-(setq use-package-always-ensure t)
-;; Remove this line once general integration with use-package calls
-;; with-eval-after-load 'use-package-core instead of 'use-package
-(use-package general)
 
 (add-to-list 'load-path "~/.emacs.d/vendor/")
 (add-to-list 'load-path "~/.emacs.d/wpc/")
 (add-to-list 'load-path "~/.emacs.d/wpc/packages")
 
 (provide 'wpc-package)
-;;; package.el ends here
+;;; wpc-package.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-slack.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-slack.el
deleted file mode 100644
index 912cd14572b4..000000000000
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-slack.el
+++ /dev/null
@@ -1,65 +0,0 @@
-;;; slack.el --- Slack settings -*- lexical-binding: t -*-
-;; Author: William Carroll <wpcarro@gmail.com>
-
-;;; Commentary:
-;; Wrangling the Slack client in Emacs
-
-;;; Code:
-
-;; Griffin's Slack plugin
-;;(defconst slack/token (wpc/read-file-as-string "~/dotfiles/configs/secrets/slack_token.txt"))
-;;(defconst wpc/slack-client-secret (wpc/read-file-as-string "~/dotfiles/configs/secrets/slack-client-secret"))
-(defconst wpc/slack-client-secret "uncomment above line one day")
-(load-file "~/.emacs.d/vendor/slack-snippets.el")
-
-;; Slack client
-(use-package slack
-  :general
-  (n slack-info-mode-map
-     :prefix ","
-     "u" 'slack-room-update-messages)
-  (n slack-mode-map
-     :prefix ","
-     "c"  'slack-buffer-kill
-     "ra" 'slack-message-add-reaction
-     "rr" 'slack-message-remove-reaction
-     "rs" 'slack-message-show-reaction-users
-     "pl" 'slack-room-pins-list
-     "pa" 'slack-message-pins-add
-     "pr" 'slack-message-pins-remove
-     "mm" 'slack-message-write-another-buffer
-     "me" 'slack-message-edit
-     "md" 'slack-message-delete
-     "u"  'slack-room-update-messages
-     "2"  'slack-message-embed-mention
-     "3"  'slack-message-embed-channel)
-  (n slack-mode-map
-     "C-n" 'slack-buffer-goto-next-message
-     "C-p" 'slack-buffer-goto-prev-message)
-  (n slack-edit-message-mode-map
-     :prefix ","
-     "k" 'slack-message-cancel-edit
-     "s" 'slack-message-send-from-buffer
-     "2" 'slack-message-embed-mention
-     "3" 'slack-message-embed-channel)
-  :commands (slack-start)
-  :init
-  (setq slack-buffer-emojify t) ;; if you want to enable emoji, default nil
-  (setq slack-prefer-current-team t)
-  :config
-  (add-hook 'slack-mode-hook (disable company-mode))
-  (setq slack-buffer-function #'switch-to-buffer)
-  (slack-register-team
-   :name "urbint"
-   :default t
-   :client-id "william@urbint.com"
-   :client-secret wpc/slack-client-secret
-   :token slack-token
-   :subscribed-channels '(dev dev_questions general random recruiting)
-   :full-and-display-names t))
-
-(use-package circe)
-(use-package emojify)
-
-(provide 'wpc-slack)
-;;; wpc-slack.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-terminal.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-terminal.el
index 36a24bbb3c46..aa76fde6a16b 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-terminal.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-terminal.el
@@ -3,17 +3,20 @@
 
 ;;; Commentary:
 ;; My attempts at creating a sane Emacs terminal
+;;
+;; This module previously contained more logic, which has since been stripped.
+;;
+;; If the variable `explicit-shell-file-name' is `nil', Emacs will use the value
+;; for the $SHELL environment variable.  When running on NixOS, since binaries
+;; like `zsh' won't be available at `/bin/zsh' or other common places, we need
+;; to ensure that `explicit-shell-file-name' remain `nil'.
+;;
+;; Wish List:
+;; - prevent Emacs from asking: "Run program: /run/current-system/sw/bin/zsh"
 
 ;;; Code:
 
 (setq wpc/terminal-name "wpc/terminal")
 
-;; 256 color support in term (instead of 8)
-(use-package xterm-color)
-
-(use-package term
-  :config
-  (setq explicit-shell-file-name "/bin/zsh"))
-
 (provide 'wpc-terminal)
-;;; terminal.el ends here
+;;; wpc-terminal.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-ui.el b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-ui.el
index 03899e61ba2b..96053a861916 100644
--- a/configs/shared/emacs/.emacs.d/wpc/packages/wpc-ui.el
+++ b/configs/shared/emacs/.emacs.d/wpc/packages/wpc-ui.el
@@ -10,7 +10,7 @@
 (setq-default line-spacing 4)
 
 ;; change font
-(add-to-list 'default-frame-alist '(font . "Operator Mono-10"))
+(add-to-list 'default-frame-alist '(font . "Source Code Pro-10"))
 
 (defconst wpc/font-size-step 10
   "The amount (%) by which to increase or decrease a font.")
@@ -29,8 +29,8 @@
        (+ (- wpc/font-size-step))
        (set-face-attribute 'default (selected-frame) :height)))
 
-(general-def "s-j" #'wpc/decrease-font)
-(general-def "s-k" #'wpc/increase-font)
+(general-define-key "s-j" #'wpc/decrease-font)
+(general-define-key "s-k" #'wpc/increase-font)
 
 ;; smooth scrolling settings
 (setq scroll-step 1
@@ -88,7 +88,7 @@
     (set-frame-parameter (selected-frame) 'alpha `(,alpha . ,alpha)))
   (setq frame-transparent? (not frame-transparent?)))
 
-(general-def "s-u" #'wpc/toggle-transparency)
+(general-define-key "s-u" #'wpc/toggle-transparency)
 
 ;; premium Emacs themes
 (use-package doom-themes
@@ -159,14 +159,5 @@
   :config
   (setq alert-default-style 'notifier))
 
-;; focus mode
-(quelpa '(zen-mode
-          :fetcher github
-          :repo "aki237/zen-mode"))
-(require 'zen-mode)
-
-;; focus mode
-(use-package writeroom-mode)
-
 (provide 'wpc-ui)
-;;; ui.el ends here
+;;; wpc-ui.el ends here
diff --git a/configs/shared/emacs/.emacs.d/wpc/variables.el b/configs/shared/emacs/.emacs.d/wpc/variables.el
index 1a7a0ef742d1..4b0487c217e1 100644
--- a/configs/shared/emacs/.emacs.d/wpc/variables.el
+++ b/configs/shared/emacs/.emacs.d/wpc/variables.el
@@ -7,7 +7,7 @@
 ;;; Code:
 
 (defconst wpc/current-project
-  "~/"
+  "~/programming/website"
   "Variable holding the directory for my currently active project.")
 
 (defvar wpc/mouse-kbds