Files
memex/0_inbox/in/Scrivener_Emacs_Vim/init.el
2026-03-15 14:37:05 -04:00

175 lines
5.7 KiB
EmacsLisp

;; -*- lexical-binding: t -*-
;;;;
;; Packages
;;;;
;; Define package repositories
(require 'package)
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/") t)
(add-to-list 'package-archives
'("tromey" . "http://tromey.com/elpa/") t)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
;; Load and activate emacs packages. Do this first so that the
;; packages are loaded before you start trying to modify them.
;; This also sets the load path.
(package-initialize)
;; Download the ELPA archive description if needed.
;; This informs Emacs about the latest versions of all packages, and
;; makes them available for download.
(when (not package-archive-contents)
(package-refresh-contents))
;; The packages you want installed. You can also install these
;; manually with M-x package-install
;; Add in your own as you wish:
(defvar my-packages
'(
;; Enhances M-x to allow easier execution of commands. Provides
;; a filterable list of possible commands in the minibuffer
;; http://www.emacswiki.org/emacs/Smex
smex
))
;; On OS X, an Emacs instance started from the graphical user
;; interface will have a different environment than a shell in a
;; terminal window, because OS X does not run a shell during the
;; login. Obviously this will lead to unexpected results when
;; calling external utilities like make from Emacs.
;; This library works around this problem by copying important
;; environment variables from the user's shell.
;; https://github.com/purcell/exec-path-from-shell
(if (eq system-type 'darwin)
(add-to-list 'my-packages 'exec-path-from-shell))
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-install p)))
;; Place downloaded elisp files in ~/.emacs.d/vendor. You'll then be able
;; to load them.
;;
;; For example, if you download yaml-mode.el to ~/.emacs.d/vendor,
;; then you can add the following code to this file:
;;
;; (require 'yaml-mode)
;; (add-to-list 'auto-mode-alist '("\\.yml$" . yaml-mode))
;;
;; Adding this code will make Emacs enter yaml mode whenever you open
;; a .yml file
(add-to-list 'load-path "~/.emacs.d/vendor")
;;;;
;; Customization
;;;;
;; Add a directory to our load path so that when you `load` things
;; below, Emacs knows where to look for the corresponding file.
(add-to-list 'load-path "~/.emacs.d/customizations")
;; These customizations make it easier for you to navigate files,
;; switch buffers, and choose options from the minibuffer.
(load "navigation.el")
;; These customizations change the way emacs looks and disable/enable
;; some user interface elements
(load "ui.el")
;; These customizations make editing a bit nicer.
(load "editing.el")
;; Hard-to-categorize customizations
(load "misc.el")
(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.
'(ansi-color-faces-vector
[default bold shadow italic underline bold bold-italic bold])
'(ansi-color-names-vector
(vector "#ffffff" "#bf616a" "#B4EB89" "#ebcb8b" "#89AAEB" "#C189EB" "#89EBCA" "#232830"))
'(blink-cursor-mode nil)
'(coffee-tab-width 2)
'(custom-safe-themes
(quote
("ebc83be4a38da627b90598422a8f734e64555ce1c6a485d91b1fd15e05bb3ff8" "118f0145d56cc963031a2492b7454e3811e63c6ee9d75dad115bf76a774ab1ff" "d8f76414f8f2dcb045a37eb155bfaa2e1d17b6573ed43fb1d18b936febc7bbc2" "05c3bc4eb1219953a4f182e10de1f7466d28987f48d647c01f1f0037ff35ab9a" "e97dbbb2b1c42b8588e16523824bc0cb3a21b91eefd6502879cf5baa1fa32e10" "2305decca2d6ea63a408edd4701edf5f4f5e19312114c9d1e1d5ffe3112cde58" default)))
'(fci-rule-color "#343d46")
'(org-startup-truncated nil)
'(show-paren-mode t)
'(tool-bar-mode nil)
'(vc-annotate-background nil)
'(vc-annotate-color-map
(quote
((20 . "#bf616a")
(40 . "#DCA432")
(60 . "#ebcb8b")
(80 . "#B4EB89")
(100 . "#89EBCA")
(120 . "#89AAEB")
(140 . "#C189EB")
(160 . "#bf616a")
(180 . "#DCA432")
(200 . "#ebcb8b")
(220 . "#B4EB89")
(240 . "#89EBCA")
(260 . "#89AAEB")
(280 . "#C189EB")
(300 . "#bf616a")
(320 . "#DCA432")
(340 . "#ebcb8b")
(360 . "#B4EB89"))))
'(vc-annotate-very-old-color nil))
(require 'visual-fill-column)
(require 'linum-off)
(require 'f)
;; enable perspective mode
(persp-mode)
;; "A hook that's run after `persp-switch'.
;; Run with the newly created perspective as `persp-curr'.")
(add-hook 'persp-switch-hook
(lambda()
;; switche themes here...
))
;; loads workspace on launch
;; https://github.com/nex3/perspective-el/pull/49
(defun save-perspective-configuration ()
"Save the current perspective windows configuration"
(interactive)
(if persp-curr
(with-temp-file (format "~/.emacs.d/perspectives/%s" (persp-name persp-curr))
(insert (prin1-to-string (current-window-configuration-printable))))))
(defun load-perspective-configuration ()
"Load the current perspective windows configuration"
(interactive)
(let ((perspective-file (format "~/.emacs.d/perspectives/%s" (persp-name persp-curr))))
(if (f-exists? perspective-file)
(restore-window-configuration (read (f-read perspective-file))))))
(add-hook 'persp-before-switch-hook 'save-perspective-configuration)
(add-hook 'persp-created-hook 'load-perspective-configuration)
(load-perspective-configuration)
(persp-new "main")
(persp-new "config")
(persp-new "journal")
(persp-new "vimvalley")