You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
;; 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)
;; Theme packages (defvar sothr/themes '(cyberpunk-theme) "Themes")
;; Tool packages (defvar sothr/tools '(auto-complete better-defaults gist projectile magit neotree slime) "Tools")
;; Additional mode packages (defvar sothr/modes '(markdown-mode go-mode rust-mode yaml-mode) "Modes")
;; Org mode specific packages (defvar sothr/org '(org org-ac org-autolist org-bullets org-doing) "Org Mode Packages")
;; Combine the package lists (defvar sothr/packages (append sothr/themes sothr/tools sothr/modes sothr/org) "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))))
;; Disable emacs help screen (setq inhibit-splash-screen t)
;; Emable emacs copying from X11 (setq x-select-enable-clipboard t)
;; Always follow symbolic links back to the source file in version control (setq x-select-enable-clipboard t)
;; 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 line number (global-linum-mode) ;; Make sure that there is spacing in linum mode ;(setq linum-format "%4d \u2502 ") ;; Fancy line with vertical bar ;; Dynamic width for lines for convienient right justification (unless window-system (add-hook 'linum-before-numbering-hook (lambda () (setq-local linum-format-fmt (let ((w (length (number-to-string (count-lines (point-min) (point-max)))))) (concat "%" (number-to-string w) "d"))))))
(defun linum-format-func (line) (concat (propertize (format linum-format-fmt line) 'face 'linum) (propertize " " 'face 'mode-line)))
(unless window-system (setq linum-format 'linum-format-func))
;; Configure SLIME ;; Inferior Lisp interpreter is found at $CL_BIN (setq inferior-lisp-program (getenv "CL_BIN")) (setq slime-contribs '(slime-fancy))
;; 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)))
;; Set the autoencrypt feature of emacs for .gpg files (require `epa-file) (epa-file-enable)
;; 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 '("-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)))
;; Advice for open files as root if we don't have enough permissions (defadvice ido-find-file (after find-file-sudo activate) "Find file as root if necessary." (unless (and buffer-file-name (file-writable-p buffer-file-name)) (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))))
(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. )
|