diff --git a/home/.emacs.d/init.el b/home/.emacs.d/init.el index 8569f54..3d1d157 100644 --- a/home/.emacs.d/init.el +++ b/home/.emacs.d/init.el @@ -1,98 +1,149 @@ -;; Set enironment information -(setq user-full-name "Drew Short") -(setq user-email-address "warrick@sothr.com") - -;; Set UTF-8 as the default encoding -(prefer-coding-system 'utf-8) -(setq coding-system-for-read 'utf-8) -(setq coding-system-for-write 'utf-8) - -;; Load common lisp -(require 'cl) - -;; Package management -(load "package") -(package-initialize) -(defvar sothr/packages '(auto-complete - better-defaults - cyberpunk-theme - gist - magit - markdown-mode - org - org-ac - org-autolist - org-bullets - org-doing - projectile - slime - go-mode - rust-mode - yaml-mode) - "Default packages") - -;; Repositories -(add-to-list 'package-archives - '("melpa" . "http://melpa.milkbox.net/packages/") t) - -(setq package-archive-enable-alist '(("melpa" deft magit))) - -;; Advice from the melpa site for a package dependency validation error in emacs 24 -;;(defadvice package-compute-transaction -;; (before package-compute-transaction-reverse (package-list requirements) activate compile) -;; "reverse the requirements" -;; (setq requirements (reverse requirements)) -;; (print requirements)) - -;; Make sure default packages are installed -(defun sothr/packages-installed-p () - (loop for pkg in sothr/packages - when (not (package-installed-p pkg)) do (return nil) - finally (return t))) - -;; This is the logic that runs the above function -(unless (sothr/packages-installed-p) - (message "%s" "Refreshing package database...") - (package-refresh-contents) - (dolist (pkg sothr/packages) - (when (not (package-installed-p pkg)) - (package-install pkg)))) - -;; Markdown Mode Configuration -(autoload 'markdown-mode "markdown-mode" - "Major mode for editing Markdown files" t) -(add-to-list 'auto-mode-alist '("\\.text\\'" . markdown-mode)) -(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode)) -(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) - -;; Set the markdown processor to grip -;; pip3 install grip -(setq markdown-command "grip --export -") - -;; Default configuration for auto-complete -(ac-config-default) - -;; Make all files show a linenum -(global-linum-mode) - -;; Configure SLIME -;; Inferior Lisp interpreter is found at $CL_BIN -(setq inferior-lisp-program (getenv "CL_BIN")) -(setq slime-contribs '(slime-fancy)) - -;; Load my default theme -(load-theme 'cyberpunk t) -(custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(package-selected-packages - (quote - (org-doing org-bullets org-autolist org-ac better-defaults yaml-mode slime rust-mode projectile markdown-mode magit go-mode gist cyberpunk-theme auto-complete)))) -(custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ) +;; Set enironment information +(setq user-full-name "Drew Short") +(setq user-email-address "warrick@sothr.com") + +;; Set UTF-8 as the default encoding +(prefer-coding-system 'utf-8) +(setq coding-system-for-read 'utf-8) +(setq coding-system-for-write 'utf-8) + +;; Load common lisp +(require 'cl) + +;; Package management +(load "package") +(package-initialize) +(defvar sothr/packages '(auto-complete + better-defaults + cyberpunk-theme + gist + magit + markdown-mode + neotree + org + org-ac + org-autolist + org-bullets + org-doing + projectile + slime + go-mode + rust-mode + yaml-mode) + "Default packages") + +;; Repositories +(add-to-list 'package-archives + '("melpa" . "http://melpa.milkbox.net/packages/") t) + +(setq package-archive-enable-alist '(("melpa" deft magit))) + +;; Advice from the melpa site for a package dependency validation error in emacs 24 +;;(defadvice package-compute-transaction +;; (before package-compute-transaction-reverse (package-list requirements) activate compile) +;; "reverse the requirements" +;; (setq requirements (reverse requirements)) +;; (print requirements)) + +;; Make sure default packages are installed +(defun sothr/packages-installed-p () + (loop for pkg in sothr/packages + when (not (package-installed-p pkg)) do (return nil) + finally (return t))) + +;; This is the logic that runs the above function +(unless (sothr/packages-installed-p) + (message "%s" "Refreshing package database...") + (package-refresh-contents) + (dolist (pkg sothr/packages) + (when (not (package-installed-p pkg)) + (package-install pkg)))) + +;; Markdown Mode Configuration +(autoload 'markdown-mode "markdown-mode" + "Major mode for editing Markdown files" t) +(add-to-list 'auto-mode-alist '("\\.text\\'" . markdown-mode)) +(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode)) +(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) + +;; Set the markdown processor to grip +;; pip3 install grip +(setq markdown-command "grip --export -") + +;; Set NeoTree to toggle with F8 +(global-set-key [f8] 'neotree-toggle) + +;; Default configuration for auto-complete +(ac-config-default) + +;; Make all files show a linenum +(global-linum-mode) + +;; Configure SLIME +;; Inferior Lisp interpreter is found at $CL_BIN +(setq inferior-lisp-program (getenv "CL_BIN")) +(setq slime-contribs '(slime-fancy)) + +;; Load my default theme +;(load-theme 'cyberpunk t) + +;; A method create a lambda that switches between +;; themes with the press of a button +;; Emcas requires explicit closures otherwise they're +;; abandoned at runtime and cryptic errors occur +(let ((next nil) (themes nil)) + (defun make-theme-switcher (theme_list) + (setf themes theme_list) + #'(lambda () + (setf next (pop themes)) + ;; Move the first entry in the list to the last + (setf themes (append themes (list next))) + ;; Load the theme that was next in the list + (load-theme next t)))) + +;; create a function to loop over and apply themes +(setf load-next-theme (make-theme-switcher '(cyberpunk adwaita))) + +;; Load the first theme as the default theme +(funcall load-next-theme) + +;; Toggle theme switch with F3 +(global-set-key [f3] (lambda () + (interactive) + (funcall load-next-theme))) + +;; Windows specific configuration +;; A Linux environment is assumed by default +(defun windows-config () + ;; When running in Windows, we want to use an alternate shell so we + ;; can be more unixy. + (setq shell-file-name "c:/Tools/msys64/usr/bin/zsh") + (setq explicit-shell-file-name shell-file-name) + (setq explicit-zsh-args '("--login" "-i")) ; Make sure the shell is in the home + (setenv "HOME" "c:/tools/msys64/home/neria") ; Set the home environment correctly + (setenv "PATH" + (concat ".:/usr/local/bin:/msys64/bin:/bin:" + (replace-regexp-in-string " " "\\\\ " + (replace-regexp-in-string "\\\\" "/" + (replace-regexp-in-string "\\([A-Za-z]\\):" "/\\1" + (getenv "PATH"))))))) + +;; Windows specific configurations +; (cond +; ((string-equal system-type "windows-nt") ; MS Windows System +; (windows-config))) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(package-selected-packages + (quote + (org-doing org-bullets org-autolist org-ac better-defaults yaml-mode slime rust-mode projectile markdown-mode magit go-mode gist cyberpunk-theme auto-complete)))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) diff --git a/windows_specific/Tools/Startup/emacs.bat b/windows_specific/Tools/Startup/emacs.bat index 7debf0f..afb188e 100644 --- a/windows_specific/Tools/Startup/emacs.bat +++ b/windows_specific/Tools/Startup/emacs.bat @@ -1,2 +1,2 @@ -rem start graphical emacs in daemon mode on startup -runemacs --daemon +rem start graphical emacs in daemon mode on startup +runemacs --daemon diff --git a/windows_specific/sync.bat b/windows_specific/sync.bat index eae9a71..ef4d0c5 100644 --- a/windows_specific/sync.bat +++ b/windows_specific/sync.bat @@ -1,14 +1,14 @@ -rem ************************************************************* -rem * Windows Sync Script * -rem * v0.1 * -rem * Drew Short * -rem ************************************************************* * - -echo "************************************************************" -echo "* Windows Sync Script *" -echo "* v0.1 *" -echo "* *" -echo "* Requires the following environment variables to be set: *" -echo "* $DOTFILES_HOME = Dotfiles directory to keep in sync *" -echo "* DOTFILES_TARGET = " -echo "************************************************************" +rem ************************************************************* +rem * Windows Sync Script * +rem * v0.1 * +rem * Drew Short * +rem ************************************************************* * + +echo "************************************************************" +echo "* Windows Sync Script *" +echo "* v0.1 *" +echo "* *" +echo "* Requires the following environment variables to be set: *" +echo "* $DOTFILES_HOME = Dotfiles directory to keep in sync *" +echo "* DOTFILES_TARGET = " +echo "************************************************************"