huge cleanup - wip
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -5,4 +5,5 @@ recentf
|
||||
network-security.data
|
||||
*.elc
|
||||
themes/*.elc
|
||||
*.*~
|
||||
*.*~
|
||||
custom.el
|
||||
|
||||
12
README.md
12
README.md
@@ -1,12 +0,0 @@
|
||||
## Dependencies
|
||||
- `git`
|
||||
- Emacs v. 25 or higher
|
||||
|
||||
## Installation
|
||||
1. Install dependencies.
|
||||
2. Clone repo into `$HOME/.emacs.d`.
|
||||
3. Copy contents of `fonts` directory into `$HOME/.fonts`.
|
||||
4. Run `fc-cache`.
|
||||
5. Run `emacs`.
|
||||
6. `M-x all-the-icons-install-fonts`.
|
||||
7. Restart Emacs. You can now run Emacs in regular mode or as a daemon.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
286
init.el
286
init.el
@@ -1,37 +1,255 @@
|
||||
(package-initialize)
|
||||
|
||||
(defun byte-compile-init-dir ()
|
||||
"Byte-compile all your dotfiles."
|
||||
(interactive)
|
||||
(byte-recompile-directory user-emacs-directory 0))
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives
|
||||
'("melpa" . "http://melpa.milkbox.net/packages/") t)
|
||||
(add-to-list 'package-archives
|
||||
'("marmalade" . "https://marmalade-repo.org/packages/") t)
|
||||
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") t
|
||||
(add-to-list 'load-path "~/.emacs.d/lisp/" t)
|
||||
|
||||
(load "~/.emacs.d/my-packages.el")
|
||||
(byte-compile-init-dir)
|
||||
(load "~/.emacs.d/my-loadpackages.elc")
|
||||
(add-hook 'after-init-hook
|
||||
'(lambda ()
|
||||
(load "~/.emacs.d/my-noexternals.elc")
|
||||
(load "~/.emacs.d/my-setkeys.elc")
|
||||
(load "~/.emacs.d/my-modeline.elc")
|
||||
(load "~/.emacs.d/my-linum.elc")
|
||||
(load "~/.emacs.d/my-themes.elc")
|
||||
(load "~/.emacs.d/lisp/plsql.elc")
|
||||
(load "~/.emacs.d/lisp/dockerfile-mode.elc")
|
||||
(load "~/.emacs.d/my-gnus.elc")))
|
||||
(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.
|
||||
'(custom-safe-themes
|
||||
(quote
|
||||
("16dd114a84d0aeccc5ad6fd64752a11ea2e841e3853234f19dc02a7b91f5d661" "f2dd097452b79276ce522df2f8aeb37f6d90f504529616aa46122d549910e46d" "21c6b494da74b10ff573fa96b6850651e321282daa17fc9d6c8fbbee96ade005" default)))
|
||||
'(package-selected-packages
|
||||
(quote
|
||||
(jdee web-mode use-package-chords use-package projectile pkg-info less-css-mode ghc fill-column-indicator evil-magit evil epl diminish dash counsel bind-chord base16-theme async all-the-icons))))
|
||||
(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.
|
||||
)
|
||||
(unless package-archive-contents (package-refresh-contents))
|
||||
|
||||
(defvar prelude-packages
|
||||
'(async counsel dracula-theme evil evil-magit fill-column-indicator ghc
|
||||
git-commit go-mode goto-chg haskell-mode ivy less-css-mode magit
|
||||
magit-popup pkg-info s swiper undo-tree use-package use-package-chords
|
||||
web-mode with-editor)
|
||||
"A list of packages to ensure are installed at launch.")
|
||||
|
||||
(dolist (pkg prelude-packages)
|
||||
(unless (package-installed-p pkg) (package-install pkg)))
|
||||
|
||||
(when (fboundp 'menu-bar-mode) (menu-bar-mode -1))
|
||||
(when (fboundp 'tool-bar-mode) (tool-bar-mode -1))
|
||||
(when (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
|
||||
(when (fboundp 'windmove-default-keybindings) (windmove-default-keybindings))
|
||||
|
||||
(add-to-list 'default-frame-alist '(font . "Iosevka Term 10"))
|
||||
(set-frame-font "Iosevka Term 10")
|
||||
|
||||
(setq frame-title-format
|
||||
'(buffer-file-name "%f" (dired-directory dired-directory "%b"))
|
||||
custom-file "~/.emacs.d/custom.el"
|
||||
auth-source-save-behavior nil
|
||||
enable-local-variables nil
|
||||
inhibit-startup-screen t
|
||||
vc-follow-symlinks t
|
||||
inhibit-compacting-font-caches 1
|
||||
mouse-wheel-scroll-amount '(1 ((shift) . 1))
|
||||
mouse-wheel-progressive-speed nil
|
||||
mouse-wheel-follow-mouse 't
|
||||
scroll-step 1
|
||||
scroll-conservatively 10000
|
||||
backup-by-copying t
|
||||
backup-directory-alist '(("." . "~/.saves"))
|
||||
undo-tree-history-directory-alist '(("." . "~/.undo-tree"))
|
||||
delete-old-versions t
|
||||
kept-new-versions 6
|
||||
kept-old-versions 2
|
||||
version-control t
|
||||
backup-directory-alist `((".*" . ,temporary-file-directory))
|
||||
auto-save-file-name-transforms `((".*" ,temporary-file-directory t))
|
||||
undo-tree-auto-save-history t
|
||||
vc-mode 1)
|
||||
|
||||
(global-auto-revert-mode 1)
|
||||
(electric-pair-mode 1)
|
||||
(show-paren-mode t)
|
||||
(fringe-mode '(0 . 0))
|
||||
(global-hl-line-mode 1)
|
||||
(blink-cursor-mode 0)
|
||||
(display-time-mode 1)
|
||||
|
||||
(load "~/.emacs.d/lisp/plsql.el")
|
||||
(load "~/.emacs.d/lisp/dockerfile-mode.el")
|
||||
(add-to-list 'auto-mode-alist
|
||||
'("\\.\\(p\\(?:k[bg]\\|ls\\)\\|sql\\)\\'" . plsql-mode))
|
||||
;;(add-to-list 'auto-mode-alist '("Dockerfile\\'" . dockerfile-mode))
|
||||
|
||||
(setq-default indent-tabs-mode t)
|
||||
(setq-default tab-width 8)
|
||||
|
||||
(defun c-lineup-arglist-tabs-only (ignored)
|
||||
"Line up argument lists by tabs, not spaces"
|
||||
(let* ((anchor (c-langelem-pos c-syntactic-element))
|
||||
(column (c-langelem-2nd-pos c-syntactic-element))
|
||||
(offset (- (1+ column) anchor))
|
||||
(steps (floor offset c-basic-offset)))
|
||||
(* (max steps 1)
|
||||
c-basic-offset)))
|
||||
|
||||
(add-hook 'c-mode-common-hook
|
||||
(lambda ()
|
||||
(c-add-style "libvirt"
|
||||
'((indent-tabs-mode . nil)
|
||||
(c-basic-offset . 4)
|
||||
(c-indent-level . 4)
|
||||
(c-offsets-alist
|
||||
(label . 1))))
|
||||
;; Add kernel style
|
||||
(c-add-style "linux-tabs-only"
|
||||
'("linux"
|
||||
(c-offsets-alist
|
||||
(arglist-cont-nonempty
|
||||
c-lineup-gcc-asm-reg
|
||||
c-lineup-arglist-tabs-only))))))
|
||||
|
||||
(defun my-c-mode-hooks ()
|
||||
(let ((bname (buffer-file-name)))
|
||||
(cond
|
||||
((string-match "libvirt/" bname) (c-set-style "libvirt"))
|
||||
((string-match "datastructures/" bname) (c-set-style "linux"))
|
||||
((string-match "linux/" bname) (c-set-style "linux-tabs-only"))
|
||||
((string-match ".*" bname) (c-set-style "linux"))
|
||||
)))
|
||||
|
||||
(add-hook 'sh-mode-hook
|
||||
(lambda () (setq indent-tabs-mode nil)))
|
||||
|
||||
(defun remove-elc-on-save ()
|
||||
"If you're saving an elisp file, likely the .elc is no longer valid."
|
||||
(add-hook 'after-save-hook
|
||||
(lambda ()
|
||||
(if (file-exists-p (concat buffer-file-name "c"))
|
||||
(delete-file (concat buffer-file-name "c"))))
|
||||
nil
|
||||
t))
|
||||
|
||||
(add-hook 'emacs-lisp-mode-hook 'remove-elc-on-save)
|
||||
(add-hook 'c-mode-hook 'my-c-mode-hooks)
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||
|
||||
(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit)
|
||||
(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit)
|
||||
(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit)
|
||||
(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit)
|
||||
(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit)
|
||||
|
||||
(defun gcm-scroll-down ()
|
||||
(interactive)
|
||||
(scroll-up 1))
|
||||
|
||||
(defun gcm-scroll-up ()
|
||||
(interactive)
|
||||
(scroll-down 1))
|
||||
|
||||
(global-set-key [(control down)] 'gcm-scroll-down)
|
||||
(global-set-key [(control up)] 'gcm-scroll-up)
|
||||
|
||||
(global-set-key [(control next)] 'gcm-scroll-down)
|
||||
(global-set-key [(control prior)] 'gcm-scroll-up)
|
||||
|
||||
(require 'use-package)
|
||||
|
||||
(use-package ivy
|
||||
:init
|
||||
(setq ivy-use-virtual-buffers t
|
||||
ivy-count-format ""
|
||||
ivy-display-style nil)
|
||||
:config
|
||||
(ivy-mode 1))
|
||||
|
||||
(use-package swiper
|
||||
:bind (("C-s" . swiper)))
|
||||
|
||||
(use-package counsel
|
||||
:bind (("M-x" . counsel-M-x)
|
||||
("C-x C-f" . counsel-find-file)))
|
||||
|
||||
;;(use-package projectile)
|
||||
|
||||
;;(use-package cl)
|
||||
|
||||
(use-package evil
|
||||
:init
|
||||
(setq evil-want-fine-undo t)
|
||||
;; (add-to-list 'evil-insert-state-modes 'lisp-interaction-mode)
|
||||
:config
|
||||
(evil-mode 1))
|
||||
|
||||
;;(use-package magit)
|
||||
(use-package evil-magit
|
||||
:init
|
||||
(setq evil-magit-state 'normal))
|
||||
|
||||
(use-package fill-column-indicator
|
||||
:init
|
||||
(setq fci-rule-column 80))
|
||||
|
||||
(use-package haskell-mode
|
||||
:mode ("\\.hs\\'" . haskell-mode)
|
||||
:interpreter ("haskell" . haskell-mode))
|
||||
|
||||
(use-package go-mode
|
||||
:mode ("\\.go\\'" . go-mode))
|
||||
|
||||
(use-package web-mode
|
||||
:mode ("\\.html\\'" . web-mode)
|
||||
:mode ("\\.css\\'" . web-mode)
|
||||
:mode ("\\.tpl\\.php\\'" . web-mode)
|
||||
:mode ("\\.[agj]sp\\'" . web-mode)
|
||||
:mode ("\\.as[cp]x\\'" . web-mode)
|
||||
:mode ("\\.erb\\'" . web-mode)
|
||||
:mode ("\\.mustache\\'" . web-mode)
|
||||
:mode ("\\.djhtml\\'" . web-mode)
|
||||
:mode ("\\.html?\\'" . web-mode)
|
||||
:init
|
||||
(setq web-mode-markup-indent-offset 2
|
||||
web-mode-code-indent-offset 2
|
||||
web-mode-css-indent-offset 2))
|
||||
|
||||
(use-package less-css-mode
|
||||
:mode ("\\.less\\'" . less-css-mode))
|
||||
|
||||
(use-package yaml-mode
|
||||
:mode ("\\.yml\\'" . yaml-mode)
|
||||
:mode ("\\.yaml\\'" . yaml-mode))
|
||||
|
||||
(use-package python
|
||||
:mode ("\\.py\\'" . python-mode)
|
||||
:interpreter ("python" . python-mode))
|
||||
|
||||
;;(use-package sql)
|
||||
|
||||
(defvar linum-current-line 1 "Current line number.")
|
||||
(defvar linum-format-fmt "" " ")
|
||||
(defvar linum-format "" " ")
|
||||
|
||||
(defface linum-current-line
|
||||
`((t :inherit linum
|
||||
:foreground "chocolate"
|
||||
;; :weight bold
|
||||
))
|
||||
"Face for displaying the current line number."
|
||||
:group 'linum)
|
||||
|
||||
(defadvice linum-update (before advice-linum-update activate)
|
||||
"Set the current line."
|
||||
(setq linum-current-line (line-number-at-pos)))
|
||||
|
||||
(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)
|
||||
(let ((face
|
||||
(if (= line linum-current-line)
|
||||
'linum-current-line
|
||||
'linum)))
|
||||
(propertize (format linum-format-fmt line) 'face face)))
|
||||
|
||||
(unless window-system
|
||||
(setq linum-format 'linum-format-func))
|
||||
|
||||
(add-hook 'find-file-hook (lambda ()
|
||||
(linum-mode 1)))
|
||||
(add-hook 'eshell-mode-hook (lambda ()
|
||||
(linum-mode -1)))
|
||||
|
||||
@@ -55,13 +55,27 @@ Each element of the list will be passed as a separate
|
||||
:type '(repeat string)
|
||||
:group 'dockerfile)
|
||||
|
||||
(defface dockerfile-image-name
|
||||
'((t (:inherit (font-lock-type-face bold))))
|
||||
"Face to highlight the base image name after FROM instruction.")
|
||||
|
||||
(defface dockerfile-image-alias
|
||||
'((t (:inherit (font-lock-constant-face bold))))
|
||||
"Face to highlight the base image alias inf FROM ... AS <alias> construct.")
|
||||
|
||||
(defconst dockerfile--from-regex
|
||||
(rx "from " (group (+? nonl)) (or " " eol) (? "as " (group (1+ nonl)))))
|
||||
|
||||
(defvar dockerfile-font-lock-keywords
|
||||
`(,(cons (rx (or line-start "onbuild ")
|
||||
(group (or "from" "maintainer" "run" "cmd" "expose" "env" "arg"
|
||||
"add" "copy" "entrypoint" "volume" "user" "workdir" "onbuild"
|
||||
"label" "stopsignal" "shell" "healthcheck"))
|
||||
word-boundary)
|
||||
font-lock-keyword-face)
|
||||
(group (or "from" "maintainer" "run" "cmd" "expose" "env" "arg"
|
||||
"add" "copy" "entrypoint" "volume" "user" "workdir" "onbuild"
|
||||
"label" "stopsignal" "shell" "healthcheck"))
|
||||
word-boundary)
|
||||
font-lock-keyword-face)
|
||||
(,dockerfile--from-regex
|
||||
(1 'dockerfile-image-name)
|
||||
(2 'dockerfile-image-alias nil t))
|
||||
,@(sh-font-lock-keywords)
|
||||
,@(sh-font-lock-keywords-2)
|
||||
,@(sh-font-lock-keywords-1))
|
||||
@@ -69,7 +83,7 @@ Each element of the list will be passed as a separate
|
||||
|
||||
(defvar dockerfile-mode-map
|
||||
(let ((map (make-sparse-keymap))
|
||||
(menu-map (make-sparse-keymap)))
|
||||
(menu-map (make-sparse-keymap)))
|
||||
(define-key map "\C-c\C-b" 'dockerfile-build-buffer)
|
||||
(define-key map "\C-c\M-b" 'dockerfile-build-no-cache-buffer)
|
||||
(define-key map "\C-c\C-z" 'dockerfile-test-function)
|
||||
@@ -77,13 +91,13 @@ Each element of the list will be passed as a separate
|
||||
(define-key map [menu-bar dockerfile-mode] (cons "Dockerfile" menu-map))
|
||||
(define-key menu-map [dfc]
|
||||
'(menu-item "Comment Region" comment-region
|
||||
:help "Comment Region"))
|
||||
:help "Comment Region"))
|
||||
(define-key menu-map [dfb]
|
||||
'(menu-item "Build" dockerfile-build-buffer
|
||||
:help "Send the Dockerfile to docker build"))
|
||||
:help "Send the Dockerfile to docker build"))
|
||||
(define-key menu-map [dfb]
|
||||
'(menu-item "Build without cache" dockerfile-build-no-cache-buffer
|
||||
:help "Send the Dockerfile to docker build without cache"))
|
||||
:help "Send the Dockerfile to docker build without cache"))
|
||||
map))
|
||||
|
||||
(defvar dockerfile-mode-syntax-table
|
||||
@@ -101,10 +115,25 @@ Each element of the list will be passed as a separate
|
||||
(unless dockerfile-mode-abbrev-table
|
||||
(define-abbrev-table 'dockerfile-mode-abbrev-table ()))
|
||||
|
||||
(defun dockerfile-indent-line-function ()
|
||||
"Indent lines in a Dockerfile.
|
||||
|
||||
Lines beginning with a keyword are ignored, and any others are
|
||||
indented by one `tab-width'."
|
||||
(unless (eq (get-text-property (point-at-bol) 'face)
|
||||
'font-lock-keyword-face)
|
||||
(save-excursion
|
||||
(beginning-of-line)
|
||||
(skip-chars-forward "[ \t]" (point-at-eol))
|
||||
(unless (equal (point) (point-at-eol)) ; Ignore empty lines.
|
||||
;; Delete existing whitespace.
|
||||
(delete-char (- (point-at-bol) (point)))
|
||||
(indent-to tab-width)))))
|
||||
|
||||
(defun dockerfile-build-arg-string ()
|
||||
"Create a --build-arg string for each element in `dockerfile-build-args'."
|
||||
(mapconcat (lambda (arg) (concat "--build-arg " (shell-quote-argument arg)))
|
||||
dockerfile-build-args " "))
|
||||
dockerfile-build-args " "))
|
||||
|
||||
(defun dockerfile-standard-filename (file)
|
||||
"Convert the FILE name to OS standard.
|
||||
@@ -136,13 +165,13 @@ If prefix arg NO-CACHE is set, don't cache the image."
|
||||
(if (stringp image-name)
|
||||
(compilation-start
|
||||
(format
|
||||
"%sdocker build %s -t %s %s -f %s %s"
|
||||
(if dockerfile-use-sudo "sudo " "")
|
||||
(if no-cache "--no-cache" "")
|
||||
(shell-quote-argument image-name)
|
||||
(dockerfile-build-arg-string)
|
||||
(shell-quote-argument (dockerfile-standard-filename (buffer-file-name)))
|
||||
(shell-quote-argument (dockerfile-standard-filename default-directory)))
|
||||
"%sdocker build %s -t %s %s -f %s %s"
|
||||
(if dockerfile-use-sudo "sudo " "")
|
||||
(if no-cache "--no-cache" "")
|
||||
(shell-quote-argument image-name)
|
||||
(dockerfile-build-arg-string)
|
||||
(shell-quote-argument (dockerfile-standard-filename (buffer-file-name)))
|
||||
(shell-quote-argument (dockerfile-standard-filename default-directory)))
|
||||
nil
|
||||
(lambda (_) (format "*docker-build-output: %s *" image-name)))
|
||||
(print "dockerfile-image-name must be a string, consider surrounding it with double quotes")))
|
||||
@@ -153,12 +182,28 @@ If prefix arg NO-CACHE is set, don't cache the image."
|
||||
(interactive (list (dockerfile-read-image-name)))
|
||||
(dockerfile-build-buffer image-name t))
|
||||
|
||||
(defun dockerfile--imenu-function ()
|
||||
"Find the previous headline from point.
|
||||
|
||||
Search for a FROM instruction. If an alias is used this is
|
||||
returned, otherwise the base image name is used."
|
||||
(when (re-search-backward dockerfile--from-regex nil t)
|
||||
(let ((data (match-data)))
|
||||
(when (match-string 2)
|
||||
;; we drop the first match group because
|
||||
;; imenu-generic-expression can only use one offset, so we
|
||||
;; normalize to `1'.
|
||||
(set-match-data (list (nth 0 data) (nth 1 data) (nth 4 data) (nth 5 data))))
|
||||
t)))
|
||||
|
||||
;;;###autoload
|
||||
(define-derived-mode dockerfile-mode prog-mode "Dockerfile"
|
||||
"A major mode to edit Dockerfiles.
|
||||
\\{dockerfile-mode-map}
|
||||
"
|
||||
(set-syntax-table dockerfile-mode-syntax-table)
|
||||
(set (make-local-variable 'imenu-generic-expression)
|
||||
`(("Stage" dockerfile--imenu-function 1)))
|
||||
(set (make-local-variable 'require-final-newline) mode-require-final-newline)
|
||||
(set (make-local-variable 'comment-start) "#")
|
||||
(set (make-local-variable 'comment-end) "")
|
||||
@@ -166,7 +211,8 @@ If prefix arg NO-CACHE is set, don't cache the image."
|
||||
(set (make-local-variable 'parse-sexp-ignore-comments) t)
|
||||
(set (make-local-variable 'font-lock-defaults)
|
||||
'(dockerfile-font-lock-keywords nil t))
|
||||
(setq local-abbrev-table dockerfile-mode-abbrev-table))
|
||||
(setq local-abbrev-table dockerfile-mode-abbrev-table)
|
||||
(setq indent-line-function #'dockerfile-indent-line-function))
|
||||
|
||||
;;;###autoload
|
||||
(add-to-list 'auto-mode-alist '("Dockerfile\\(?:\\..*\\)?\\'" . dockerfile-mode))
|
||||
|
||||
12
my-gnus.el
12
my-gnus.el
@@ -1,12 +0,0 @@
|
||||
(setq user-mail-address "inaki694@gmail.com"
|
||||
user-full-name "Iñaki Domínguez")
|
||||
|
||||
(setq gnus-select-method
|
||||
'(nnimap "gmail"
|
||||
(nnimap-address "imap.gmail.com") ; it could also be imap.googlemail.com if that's your server.
|
||||
(nnimap-server-port "imaps")
|
||||
(nnimap-stream ssl)))
|
||||
|
||||
(setq smtpmail-smtp-server "smtp.gmail.com"
|
||||
smtpmail-smtp-service 587
|
||||
gnus-ignored-newsgroups "^to\\.\\|^[0-9. ]+\\( \\|$\\)\\|^[\"]\"[#'()]")
|
||||
41
my-linum.el
41
my-linum.el
@@ -1,41 +0,0 @@
|
||||
(defvar linum-current-line 1 "Current line number.")
|
||||
(defvar linum-format-fmt "" " ")
|
||||
(defvar linum-format "" " ")
|
||||
|
||||
(defface linum-current-line
|
||||
`((t :inherit linum
|
||||
:foreground "chocolate"
|
||||
;; :weight bold
|
||||
))
|
||||
"Face for displaying the current line number."
|
||||
:group 'linum)
|
||||
|
||||
(defadvice linum-update (before advice-linum-update activate)
|
||||
"Set the current line."
|
||||
(setq linum-current-line (line-number-at-pos)))
|
||||
|
||||
(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)
|
||||
(let ((face
|
||||
(if (= line linum-current-line)
|
||||
'linum-current-line
|
||||
'linum)))
|
||||
(propertize (format linum-format-fmt line) 'face face)))
|
||||
|
||||
(unless window-system
|
||||
(setq linum-format 'linum-format-func))
|
||||
|
||||
(add-hook 'find-file-hook (lambda ()
|
||||
(linum-mode 1)))
|
||||
(add-hook 'eshell-mode-hook (lambda ()
|
||||
(linum-mode -1)))
|
||||
@@ -1,36 +0,0 @@
|
||||
(require 'use-package)
|
||||
|
||||
(use-package ivy
|
||||
:config
|
||||
(setq ivy-use-virtual-buffers t
|
||||
ivy-count-format ""
|
||||
ivy-display-style nil)
|
||||
(ivy-mode 1))
|
||||
(use-package projectile)
|
||||
(use-package cl)
|
||||
(use-package evil
|
||||
:config
|
||||
(setq evil-normal-state-tag "N"
|
||||
evil-insert-state-tag "I"
|
||||
evil-visual-state-tag "V"
|
||||
evil-emacs-state-tag "E"
|
||||
evil-operator-state-tag "O"
|
||||
evil-motion-state-tag "M"
|
||||
evil-replace-state-tag "R"
|
||||
evil-want-fine-undo t )
|
||||
;; (add-to-list 'evil-insert-state-modes 'lisp-interaction-mode)
|
||||
(evil-mode 1))
|
||||
(use-package magit)
|
||||
(use-package evil-magit
|
||||
:config
|
||||
(setq evil-magit-state 'normal))
|
||||
(use-package fill-column-indicator
|
||||
:config
|
||||
(setq fci-rule-column 80))
|
||||
(use-package all-the-icons)
|
||||
(use-package haskell-mode)
|
||||
(use-package go-mode)
|
||||
(use-package web-mode)
|
||||
(use-package less-css-mode)
|
||||
|
||||
(use-package sql)
|
||||
177
my-modeline.el
177
my-modeline.el
@@ -1,177 +0,0 @@
|
||||
(require 'evil)
|
||||
(require 'magit)
|
||||
(require 'all-the-icons)
|
||||
|
||||
|
||||
(defvar powerline-current-window nil)
|
||||
(defun update-current-window (windows)
|
||||
(when (not (minibuffer-window-active-p (frame-selected-window)))
|
||||
(setq powerline-current-window (selected-window))))
|
||||
(add-function :before pre-redisplay-function 'update-current-window)
|
||||
|
||||
|
||||
(defun evil-tag-color ()
|
||||
(if (eq (get-buffer-window) powerline-current-window)
|
||||
(cond ((evil-normal-state-p) "#5c3f56")
|
||||
((evil-visual-state-p) "#446963")
|
||||
((evil-insert-state-p) "#ac4142")
|
||||
((evil-emacs-state-p) "SeaGreen")
|
||||
((evil-operator-state-p) "SeaGreen")
|
||||
((evil-motion-state-p) "SeaGreen")
|
||||
((evil-replace-state-p) "maroon"))
|
||||
(face-background 'mode-line-inactive)))
|
||||
|
||||
(defun branch-tag-bg-color ()
|
||||
(if (eq (get-buffer-window) powerline-current-window)
|
||||
"gainsboro"
|
||||
(face-background 'mode-line-inactive)))
|
||||
|
||||
(defun branch-tag-fg-color ()
|
||||
(if (eq (get-buffer-window) powerline-current-window)
|
||||
"#181818"
|
||||
(face-foreground 'mode-line-inactive)))
|
||||
|
||||
(defun time-tag-bg-color ()
|
||||
(if (eq (get-buffer-window) powerline-current-window)
|
||||
"ivory"
|
||||
(face-background 'mode-line-inactive)))
|
||||
|
||||
(defun time-tag-fg-color ()
|
||||
(if (eq (get-buffer-window) powerline-current-window)
|
||||
"#181818"
|
||||
(face-foreground 'mode-line-inactive)))
|
||||
|
||||
(defun fancy-mode-line-render (left center right &optional lpad rpad)
|
||||
"Return a string the width of the current window with
|
||||
LEFT, CENTER, and RIGHT spaced out accordingly, LPAD and RPAD,
|
||||
can be used to add a number of spaces to the front and back of the string."
|
||||
(condition-case err
|
||||
(let* ((left (if lpad (concat (make-string lpad ?\s) left) left))
|
||||
(right (if rpad (concat right (make-string rpad ?\s)) right))
|
||||
(width (apply '+ (window-width)
|
||||
(let ((m (window-margins)))
|
||||
(list (or (car m) 0) (or (cdr m) 0)))))
|
||||
(total-length (+ (length left) (length center) (length right) 0)))
|
||||
(when (> total-length width) (setq left "" right ""))
|
||||
(let* ((left-space (/ (- width (length center)) 2))
|
||||
(right-space (- width left-space (length center)))
|
||||
(lspaces (max (- left-space (length left)) 1))
|
||||
(rspaces (max (- right-space (length right)) 0)))
|
||||
(concat left (make-string lspaces ?\s)
|
||||
center
|
||||
(make-string rspaces ?\s)
|
||||
right)))
|
||||
(error (format "[%s]: (%s) (%s) (%s)" err left center right))))
|
||||
|
||||
(defun evil-mode-state ()
|
||||
(let ((str (cond ((evil-normal-state-p) (format " NORMAL " ))
|
||||
((evil-visual-state-p) (format " VISUAL " ))
|
||||
((evil-insert-state-p) (format " INSERT " ))
|
||||
((evil-emacs-state-p) (format " EMACS " ))
|
||||
((evil-operator-state-p) (format " OPERATOR " ))
|
||||
((evil-motion-state-p) (format " MOTION " ))
|
||||
((evil-replace-state-p) (format " REPLACE " )))))
|
||||
(propertize
|
||||
str
|
||||
'face `(:height 1.0 :background ,(evil-tag-color) :weight bold))))
|
||||
|
||||
(defun vc-mode-branch-state ()
|
||||
(let ((bufname (buffer-file-name (current-buffer))))
|
||||
(when bufname
|
||||
(when (magit-get-current-branch)
|
||||
(propertize
|
||||
(format " %s " (magit-get-current-branch))
|
||||
'face `(:weight bold
|
||||
:foreground ,(branch-tag-fg-color)
|
||||
:background ,(branch-tag-bg-color)))))))
|
||||
|
||||
(defun powerline-modified ()
|
||||
(let* ((config-alist
|
||||
'(("*" all-the-icons-faicon-family
|
||||
all-the-icons-faicon "chain-broken" :height 1.2 :v-adjust -0.0)
|
||||
("-" all-the-icons-faicon-family
|
||||
all-the-icons-faicon "link" :height 1.2 :v-adjust -0.0)
|
||||
("%" all-the-icons-octicon-family
|
||||
all-the-icons-octicon "lock" :height 1.2 :v-adjust 0.1)))
|
||||
(result (cdr (assoc (format-mode-line "%*") config-alist))))
|
||||
(let ((res
|
||||
(propertize
|
||||
(apply (cadr result) (cddr result))
|
||||
'face
|
||||
`(:background ,(evil-tag-color) :family ,(funcall (car result))))))
|
||||
(propertize
|
||||
(format " %s" res)
|
||||
'face
|
||||
`(:background ,(evil-tag-color) :family ,(funcall (car result)))))))
|
||||
|
||||
(defun custom-modeline-mode-icon ()
|
||||
(let ((icon (all-the-icons-icon-for-buffer)))
|
||||
(if (not (symbolp icon)) ;; This implies it's the major mode
|
||||
(format " %s"
|
||||
(propertize
|
||||
(all-the-icons-icon-for-buffer)
|
||||
'face
|
||||
`(:family ,(all-the-icons-icon-family-for-buffer))
|
||||
'display '(raise 0.0)))
|
||||
(format " %s"
|
||||
(propertize
|
||||
""
|
||||
'face
|
||||
`(:family ,(all-the-icons-faicon-family))
|
||||
'display '(raise 0.0))))))
|
||||
|
||||
(defun line-count-line ()
|
||||
(let* ((bg (time-tag-bg-color))
|
||||
(fg (time-tag-fg-color)))
|
||||
(concat
|
||||
(propertize
|
||||
(format " %%l/%d "
|
||||
(count-lines (point-min) (point-max)))
|
||||
'face `(:background ,bg :foreground ,fg)))))
|
||||
|
||||
(defun powerline-time ()
|
||||
(let* ((hour (string-to-number (format-time-string "%I")))
|
||||
(bg (time-tag-bg-color))
|
||||
(fg (time-tag-fg-color)))
|
||||
(concat
|
||||
(propertize
|
||||
(format-time-string " %H:%M ")
|
||||
'face
|
||||
`(:height 1.0 :background ,bg :foreground ,fg))
|
||||
(propertize
|
||||
"·"
|
||||
'face `(:height 1.0 :background ,bg :foreground ,fg)))))
|
||||
|
||||
(defvar separator-left "")
|
||||
(defvar separator-right "")
|
||||
;; (defvar separator-left
|
||||
;; (propertize
|
||||
;; ""
|
||||
;; 'face `(:height 1.1 :foreground "#86261c") 'display '(raise -0.0)))
|
||||
|
||||
;; (defvar separator-right
|
||||
;; (propertize
|
||||
;; " "
|
||||
;; 'face `(:height 1.1 :foreground "#86261c") 'display '(raise -0.0)))
|
||||
|
||||
(setq-default mode-line-format
|
||||
(list
|
||||
'((:eval (fancy-mode-line-render
|
||||
;; left
|
||||
(format-mode-line
|
||||
(concat
|
||||
(powerline-modified)
|
||||
(evil-mode-state)
|
||||
(vc-mode-branch-state)
|
||||
(custom-modeline-mode-icon) ;; %m
|
||||
" %b "))
|
||||
;;center
|
||||
""
|
||||
;; right
|
||||
(format-mode-line
|
||||
(concat
|
||||
separator-left
|
||||
;; (format-time-string "%H:%M ⁃ ")
|
||||
(powerline-time)
|
||||
(line-count-line)))
|
||||
0 0)))))
|
||||
@@ -1,137 +0,0 @@
|
||||
(when (fboundp 'menu-bar-mode) (menu-bar-mode -1))
|
||||
(when (fboundp 'tool-bar-mode) (tool-bar-mode -1))
|
||||
(when (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
|
||||
(when (fboundp 'windmove-default-keybindings)
|
||||
(windmove-default-keybindings))
|
||||
|
||||
(add-to-list
|
||||
'default-frame-alist
|
||||
'(font . "Iosevka Term 10"))
|
||||
(set-frame-font
|
||||
"Iosevka Term 10")
|
||||
|
||||
(setq frame-title-format
|
||||
'(buffer-file-name "%f" (dired-directory dired-directory "%b"))
|
||||
;; (setq debug-on-error t)
|
||||
auth-source-save-behavior nil
|
||||
send-mail-function (quote smtpmail-send-it)
|
||||
enable-local-variables nil
|
||||
inhibit-startup-screen t
|
||||
vc-follow-symlinks t
|
||||
inhibit-compacting-font-caches 1
|
||||
mouse-wheel-scroll-amount '(1 ((shift) . 1)) ;; one line at a time
|
||||
mouse-wheel-progressive-speed nil ;; don't accelerate scrolling
|
||||
mouse-wheel-follow-mouse 't ;; scroll window under mouse
|
||||
scroll-step 1
|
||||
scroll-conservatively 10000 ;; keyboard scroll one line at a time
|
||||
backup-by-copying t ; don't clobber symlinks
|
||||
backup-directory-alist '(("." . "~/.saves")) ; don't litter my fs tree
|
||||
undo-tree-history-directory-alist '(("." . "~/.undo-tree"))
|
||||
delete-old-versions t
|
||||
kept-new-versions 6
|
||||
kept-old-versions 2
|
||||
version-control t ; use versioned backups
|
||||
backup-directory-alist `((".*" . ,temporary-file-directory))
|
||||
auto-save-file-name-transforms `((".*" ,temporary-file-directory t))
|
||||
undo-tree-auto-save-history t
|
||||
vc-mode 1
|
||||
jdee-server-dir "/Users/you/.emacs.d/jdee-server")
|
||||
|
||||
(global-auto-revert-mode 1)
|
||||
(electric-pair-mode 1)
|
||||
(show-paren-mode t)
|
||||
(fringe-mode '(0 . 0))
|
||||
(global-hl-line-mode 1)
|
||||
(blink-cursor-mode 0)
|
||||
(display-time-mode 1)
|
||||
|
||||
(add-to-list 'auto-mode-alist '("\\.h\\'" . c-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.zsh\\'" . sh-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
|
||||
(add-to-list 'auto-mode-alist
|
||||
'("\\.\\(p\\(?:k[bg]\\|ls\\)\\|sql\\)\\'" . plsql-mode))
|
||||
(add-to-list 'auto-mode-alist '("Dockerfile\\'" . dockerfile-mode))
|
||||
|
||||
(defun my-web-mode-hook ()
|
||||
"Hooks for Web mode."
|
||||
(setq web-mode-markup-indent-offset 2
|
||||
web-mode-code-indent-offset 2
|
||||
web-mode-css-indent-offset 2))
|
||||
|
||||
(setq-default indent-tabs-mode t)
|
||||
(setq-default tab-width 8)
|
||||
(defun c-lineup-arglist-tabs-only (ignored)
|
||||
"Line up argument lists by tabs, not spaces"
|
||||
(let* ((anchor (c-langelem-pos c-syntactic-element))
|
||||
(column (c-langelem-2nd-pos c-syntactic-element))
|
||||
(offset (- (1+ column) anchor))
|
||||
(steps (floor offset c-basic-offset)))
|
||||
(* (max steps 1)
|
||||
c-basic-offset)))
|
||||
|
||||
(add-hook 'c-mode-common-hook
|
||||
(lambda ()
|
||||
(c-add-style "libvirt"
|
||||
'((indent-tabs-mode . nil)
|
||||
(c-basic-offset . 4)
|
||||
(c-indent-level . 4)
|
||||
(c-offsets-alist
|
||||
(label . 1))))
|
||||
;; Add kernel style
|
||||
(c-add-style "linux-tabs-only"
|
||||
'("linux"
|
||||
(c-offsets-alist
|
||||
(arglist-cont-nonempty
|
||||
c-lineup-gcc-asm-reg
|
||||
c-lineup-arglist-tabs-only))))))
|
||||
|
||||
(defun my-c-mode-hooks ()
|
||||
(let ((bname (buffer-file-name)))
|
||||
(cond
|
||||
((string-match "libvirt/" bname) (c-set-style "libvirt"))
|
||||
((string-match "datastructures/" bname) (c-set-style "linux"))
|
||||
((string-match "linux/" bname) (c-set-style "linux-tabs-only"))
|
||||
((string-match ".*" bname) (c-set-style "linux"))
|
||||
)))
|
||||
|
||||
(add-hook 'sh-mode-hook
|
||||
(lambda () (setq indent-tabs-mode nil)))
|
||||
|
||||
(defun remove-elc-on-save ()
|
||||
"If you're saving an elisp file, likely the .elc is no longer valid."
|
||||
(add-hook 'after-save-hook
|
||||
(lambda ()
|
||||
(if (file-exists-p (concat buffer-file-name "c"))
|
||||
(delete-file (concat buffer-file-name "c"))))
|
||||
nil
|
||||
t))
|
||||
|
||||
(add-hook 'emacs-lisp-mode-hook 'remove-elc-on-save)
|
||||
(add-hook 'c-mode-hook 'my-c-mode-hooks)
|
||||
(add-hook 'web-mode-hook 'my-web-mode-hook)
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||
(require 'yaml-mode)
|
||||
(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode))
|
||||
|
||||
(add-hook 'eshell-mode-hook (lambda ()
|
||||
(setq-local global-hl-line-mode nil)))
|
||||
|
||||
(add-hook 'term-mode-hook (lambda ()
|
||||
(setq-local global-hl-line-mode nil)))
|
||||
|
||||
(defadvice term-handle-exit
|
||||
(after term-kill-buffer-on-exit activate)
|
||||
(kill-buffer))
|
||||
|
||||
(defun my-term-paste (&optional string)
|
||||
(interactive)
|
||||
(process-send-string
|
||||
(get-buffer-process (current-buffer))
|
||||
(if string string (current-kill 0))))
|
||||
@@ -1,21 +0,0 @@
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives
|
||||
'("melpa" . "http://melpa.milkbox.net/packages/") t)
|
||||
(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/") t)
|
||||
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/") t
|
||||
(add-to-list 'load-path "~/.emacs.d/lisp/" t)
|
||||
|
||||
(unless package-archive-contents
|
||||
(package-refresh-contents))
|
||||
|
||||
(defvar prelude-packages
|
||||
'(all-the-icons async base16-theme bind-chord bind-key counsel dash diminish
|
||||
epl evil evil-magit fill-column-indicator ghc git-commit go-mode
|
||||
goto-chg haskell-mode ivy jdee key-chord less-css-mode magit magit-popup
|
||||
pkg-info projectile swiper undo-tree use-package use-package-chords
|
||||
web-mode with-editor)
|
||||
"A list of packages to ensure are installed at launch.")
|
||||
|
||||
(dolist (pkg prelude-packages)
|
||||
(unless (package-installed-p pkg)
|
||||
(package-install pkg)))
|
||||
@@ -1,29 +0,0 @@
|
||||
(global-set-key "\C-s" 'swiper)
|
||||
(global-set-key (kbd "C-c C-r") 'ivy-resume)
|
||||
(global-set-key (kbd "<f6>") 'ivy-resume)
|
||||
(global-set-key (kbd "M-x") 'counsel-M-x)
|
||||
(global-set-key (kbd "C-x C-f") 'counsel-find-file)
|
||||
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
|
||||
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
|
||||
(global-set-key (kbd "<f1> l") 'counsel-load-library)
|
||||
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
|
||||
(global-set-key (kbd "<f2> u") 'counsel-unicode-char)
|
||||
(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit)
|
||||
(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit)
|
||||
(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit)
|
||||
(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit)
|
||||
(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit)
|
||||
(global-set-key [f8] 'neotree-toggle)
|
||||
(defun gcm-scroll-down ()
|
||||
(interactive)
|
||||
(scroll-up 1))
|
||||
|
||||
(defun gcm-scroll-up ()
|
||||
(interactive)
|
||||
(scroll-down 1))
|
||||
|
||||
(global-set-key [(control down)] 'gcm-scroll-down)
|
||||
(global-set-key [(control up)] 'gcm-scroll-up)
|
||||
|
||||
(global-set-key [(control next)] 'gcm-scroll-down)
|
||||
(global-set-key [(control prior)] 'gcm-scroll-up)
|
||||
56
my-themes.el
56
my-themes.el
@@ -1,56 +0,0 @@
|
||||
(defvar my:theme 'base16-onedark)
|
||||
(defvar my:theme-window-loaded nil)
|
||||
(defvar my:theme-terminal-loaded nil)
|
||||
|
||||
(defun setcolors ()
|
||||
(load-theme my:theme t)
|
||||
(custom-theme-set-faces
|
||||
my:theme
|
||||
'(default ((t (:background "#161718" :foreground "#d0d0d0"))))
|
||||
'(hl-line ((t (:background "#282A2C"))))
|
||||
'(highlight ((t (:background "#282A2C"))))
|
||||
'(linum ((t (:underline nil :background "#232832" :foreground "#a2a3b4"
|
||||
:weight bold))))
|
||||
'(mode-line ((t (:background "#181819" :foreground "#b8b8b8" :box nil
|
||||
:family "Iosevka Term" :height 100))))
|
||||
'(mode-line-buffer-id ((t (:foreground "#a1b56c" :family "Iosevka Term"
|
||||
:height 100))))
|
||||
'(mode-line-highlight ((t (:foreground "#ba8baf" :box nil :weight bold
|
||||
:family "Iosevka Term"
|
||||
:height 100))))
|
||||
'(mode-line-inactive ((t (:background "#282c34" :foreground "#585858"
|
||||
:box nil :underline nil
|
||||
:family "Iosevka Term" :height 100))))
|
||||
)
|
||||
)
|
||||
|
||||
(if (daemonp)
|
||||
(add-hook
|
||||
'after-make-frame-functions
|
||||
(lambda (frame)
|
||||
(select-frame frame)
|
||||
(when (window-system frame)
|
||||
(set-frame-parameter
|
||||
(selected-frame) 'internal-border-width 0)
|
||||
(unless my:theme-window-loaded
|
||||
(if my:theme-terminal-loaded
|
||||
(enable-theme my:theme)
|
||||
(setcolors))
|
||||
(setq my:theme-window-loaded t))
|
||||
(unless my:theme-terminal-loaded
|
||||
(if my:theme-window-loaded
|
||||
(enable-theme my:theme)
|
||||
(setcolors))
|
||||
(setq my:theme-terminal-loaded t)))))
|
||||
(progn
|
||||
(setcolors)
|
||||
(if (display-graphic-p)
|
||||
(setq my:theme-window-loaded t)
|
||||
(setq my:theme-terminal-loaded t)))
|
||||
(set-frame-parameter (selected-frame) 'internal-border-width 0))
|
||||
|
||||
|
||||
(add-hook 'before-make-frame-hook
|
||||
#'(lambda ()
|
||||
(add-to-list 'default-frame-alist '(height . 42))
|
||||
(add-to-list 'default-frame-alist '(width . 100))))
|
||||
@@ -1,200 +0,0 @@
|
||||
(eval-when-compile
|
||||
(require 'cl-lib))
|
||||
|
||||
(unless (>= emacs-major-version 24)
|
||||
(error "Requires Emacs 24 or later"))
|
||||
|
||||
(defcustom nrwo-contrast 'medium
|
||||
"Contrast level for the theme background."
|
||||
:options '(soft medium hard))
|
||||
|
||||
(deftheme nothing-rhymes-with-orange "Test")
|
||||
(let* ((nrwo-dark0_hard (if (display-graphic-p) "#181818" "color-234"))
|
||||
(nrwo-dark0 (if (display-graphic-p) "#282828" "color-235"))
|
||||
(nrwo-dark0_soft (if (display-graphic-p) "#32302f" "color-236"))
|
||||
(nrwo-dark1 (if (display-graphic-p) "#3c3836" "color-237"))
|
||||
(nrwo-dark2 (if (display-graphic-p) "#504945" "color-239"))
|
||||
(nrwo-dark3 (if (display-graphic-p) "#665c54" "color-241"))
|
||||
(nrwo-dark4 (if (display-graphic-p) "#7c6f64" "color-243"))
|
||||
|
||||
(nrwo-medium (if (display-graphic-p) "#928374" "color-245")) ;; or 244
|
||||
|
||||
(nrwo-light0_hard (if (display-graphic-p) "#ffffc8" "color-230"))
|
||||
(nrwo-light0 (if (display-graphic-p) "#ede4b1" "color-229"))
|
||||
(nrwo-light0_soft (if (display-graphic-p) "#f4e8ba" "color-228"))
|
||||
(nrwo-light1 (if (display-graphic-p) "#ebdbb2" "color-223"))
|
||||
(nrwo-light2 (if (display-graphic-p) "#d5c4a1" "color-250"))
|
||||
(nrwo-light3 (if (display-graphic-p) "#bdae93" "color-248"))
|
||||
(nrwo-light4 (if (display-graphic-p) "#a89984" "color-246"))
|
||||
|
||||
(nrwo-color0 (if (display-graphic-p) "#262322" "color-0"))
|
||||
(nrwo-color1 (if (display-graphic-p) "#665752" "color-1"))
|
||||
(nrwo-color2 (if (display-graphic-p) "#75645e" "color-2"))
|
||||
(nrwo-color3 (if (display-graphic-p) "#85716a" "color-3"))
|
||||
(nrwo-color4 (if (display-graphic-p) "#947e76" "color-4"))
|
||||
(nrwo-color5 (if (display-graphic-p) "#a38b83" "color-5"))
|
||||
(nrwo-color6 (if (display-graphic-p) "#b89c93" "color-6"))
|
||||
(nrwo-color7 (if (display-graphic-p) "#ede4b1" "color-7"))
|
||||
(nrwo-color8 (if (display-graphic-p) "#524b49" "color-8"))
|
||||
(nrwo-color9 (if (display-graphic-p) "#ff6633" "color-9"))
|
||||
(nrwo-color10 (if (display-graphic-p) "#bf4c26" "color-10"))
|
||||
(nrwo-color11 (if (display-graphic-p) "#803319" "color-11"))
|
||||
(nrwo-color12 (if (display-graphic-p) "#80ecff" "color-12"))
|
||||
(nrwo-color13 (if (display-graphic-p) "#60b4bf" "color-13"))
|
||||
(nrwo-color14 (if (display-graphic-p) "#406d80" "color-14"))
|
||||
(nrwo-color15 (if (display-graphic-p) "#e8d7d1" "color-15"))
|
||||
|
||||
(nrwo-delimiter-one (if (display-graphic-p) "#458588" "color-30"))
|
||||
(nrwo-delimiter-two (if (display-graphic-p) "#b16286" "color-168"))
|
||||
(nrwo-delimiter-three (if (display-graphic-p) "#8ec07c" "color-108"))
|
||||
(nrwo-delimiter-four (if (display-graphic-p) "#d65d0e" "color-166"))
|
||||
(nrwo-white (if (display-graphic-p) "#FFFFFF" "white"))
|
||||
(nrwo-black (if (display-graphic-p) "#000000" "black"))
|
||||
(nrwo-sienna (if (display-graphic-p) "#DD6F48" "sienna"))
|
||||
(nrwo-darkslategray4 (if (display-graphic-p) "#528B8B" "DarkSlateGray4"))
|
||||
(nrwo-lightblue4 (if (display-graphic-p) "#66999D" "LightBlue4"))
|
||||
(nrwo-burlywood4 (if (display-graphic-p) "#BBAA97" "burlywood4"))
|
||||
(nrwo-aquamarine4 (if (display-graphic-p) "#83A598" "aquamarine4"))
|
||||
(nrwo-turquoise4 (if (display-graphic-p) "#61ACBB" "turquoise4"))
|
||||
|
||||
(nrwo-bg nrwo-dark0_hard))
|
||||
|
||||
(custom-theme-set-faces
|
||||
'nothing-rhymes-with-orange
|
||||
|
||||
;; UI
|
||||
`(default ((t (:background ,nrwo-bg :foreground ,nrwo-light0))))
|
||||
`(cursor ((t (:background ,nrwo-light0))))
|
||||
`(mode-line ((t (:box nil :background ,nrwo-dark0 :foreground "ivory" :font "Iosevka Term-10"))))
|
||||
`(mode-line-inactive ((t (:box nil :background ,nrwo-dark1 :foreground ,nrwo-light4 :font "Iosevka Term-10"))))
|
||||
`(fringe ((t (:background ,nrwo-bg))))
|
||||
`(linum ((t (:background ,nrwo-bg :foreground ,nrwo-dark4))))
|
||||
`(hl-line ((t (:background ,nrwo-color0))))
|
||||
`(region ((t (:background ,nrwo-dark2)))) ;;selection
|
||||
`(secondary-selection ((t (:background ,nrwo-dark1))))
|
||||
`(minibuffer-prompt ((t (:background ,nrwo-bg :foreground ,nrwo-color4 t))))
|
||||
`(vertical-border ((t (:foreground ,nrwo-dark2))))
|
||||
`(link ((t (:foreground ,nrwo-color7 :underline t))))
|
||||
`(shadow ((t (:foreground ,nrwo-dark4))))
|
||||
|
||||
;; Built-in syntax
|
||||
`(font-lock-builtin-face ((t (:foreground ,nrwo-color9 t))))
|
||||
`(font-lock-constant-face ((t (:foreground ,nrwo-color10 t))))
|
||||
`(font-lock-comment-face ((t (:foreground ,nrwo-dark4))))
|
||||
`(font-lock-function-name-face ((t (:foreground ,nrwo-color15 ))))
|
||||
`(font-lock-keyword-face ((t (:foreground ,nrwo-color10))))
|
||||
`(font-lock-string-face ((t (:foreground ,nrwo-color5))))
|
||||
`(font-lock-variable-name-face ((t (:foreground ,nrwo-color9))))
|
||||
`(font-lock-type-face ((t (:foreground ,nrwo-color12))))
|
||||
`(font-lock-warning-face ((t (:foreground ,nrwo-color15 t))))
|
||||
|
||||
`(neo-dir-link-face ((t (:foreground ,nrwo-color10))))
|
||||
`(neo-root-dir-face ((t (:foreground ,nrwo-dark4))))
|
||||
|
||||
;; whitespace-mode
|
||||
`(whitespace-space ((t (:background ,nrwo-bg :foreground ,nrwo-dark4))))
|
||||
`(whitespace-hspace ((t (:background ,nrwo-bg :foreground ,nrwo-dark4))))
|
||||
`(whitespace-tab ((t (:background ,nrwo-bg :foreground ,nrwo-dark4))))
|
||||
`(whitespace-newline ((t (:background ,nrwo-bg :foreground ,nrwo-dark4))))
|
||||
`(whitespace-trailing ((t (:background ,nrwo-dark1 :foreground ,nrwo-color3))))
|
||||
`(whitespace-line ((t (:background ,nrwo-dark1 :foreground ,nrwo-color3))))
|
||||
`(whitespace-space-before-tab ((t (:background ,nrwo-bg :foreground ,nrwo-dark4))))
|
||||
`(whitespace-indentation ((t (:background ,nrwo-bg :foreground ,nrwo-dark4))))
|
||||
`(whitespace-empty ((t (:background nil :foreground nil))))
|
||||
`(whitespace-space-after-tab ((t (:background ,nrwo-bg :foreground ,nrwo-dark4))))
|
||||
|
||||
;; RainbowDelimiters
|
||||
`(rainbow-delimiters-depth-1-face ((t (:foreground ,nrwo-delimiter-one))))
|
||||
`(rainbow-delimiters-depth-2-face ((t (:foreground ,nrwo-delimiter-two))))
|
||||
`(rainbow-delimiters-depth-3-face ((t (:foreground ,nrwo-delimiter-three))))
|
||||
`(rainbow-delimiters-depth-4-face ((t (:foreground ,nrwo-delimiter-four))))
|
||||
`(rainbow-delimiters-depth-5-face ((t (:foreground ,nrwo-delimiter-one))))
|
||||
`(rainbow-delimiters-depth-6-face ((t (:foreground ,nrwo-delimiter-two))))
|
||||
`(rainbow-delimiters-depth-7-face ((t (:foreground ,nrwo-delimiter-three))))
|
||||
`(rainbow-delimiters-depth-8-face ((t (:foreground ,nrwo-delimiter-four))))
|
||||
`(rainbow-delimiters-depth-9-face ((t (:foreground ,nrwo-delimiter-one))))
|
||||
`(rainbow-delimiters-depth-10-face ((t (:foreground ,nrwo-delimiter-two))))
|
||||
`(rainbow-delimiters-depth-11-face ((t (:foreground ,nrwo-delimiter-three))))
|
||||
`(rainbow-delimiters-depth-12-face ((t (:foreground ,nrwo-delimiter-four))))
|
||||
`(rainbow-delimiters-unmatched-face ((t (:background nil :foreground ,nrwo-light0))))
|
||||
|
||||
;; linum-relative
|
||||
`(linum-relative-current-face ((t (:background ,nrwo-dark1 :foreground ,nrwo-light4))))
|
||||
|
||||
;; Highlight indentation mode
|
||||
`(highlight-indentation-current-column-face ((t (:background ,nrwo-dark2 ))))
|
||||
`(highlight-indentation-face ((t (:background ,nrwo-dark1 ))))
|
||||
|
||||
;; Smartparens
|
||||
`(sp-pair-overlay-face ((t (:background ,nrwo-dark2))))
|
||||
;`(sp-wrap-overlay-face ((t (:inherit sp-wrap-overlay-face))))
|
||||
;`(sp-wrap-tag-overlay-face ((t (:inherit sp-wrap-overlay-face))))
|
||||
`(sp-show-pair-match-face ((t (:background ,nrwo-dark2)))) ;; Pair tags highlight
|
||||
`(sp-show-pair-mismatch-face ((t (:background ,nrwo-color15)))) ;; Highlight for bracket without pair
|
||||
|
||||
;; elscreen
|
||||
`(elscreen-tab-background-face ((t (:box nil :background ,nrwo-bg)))) ;; Tab bar, not the tabs
|
||||
`(elscreen-tab-control-face ((t (:box nil :background ,nrwo-dark2 :foreground ,nrwo-color15 :underline nil)))) ;; The controls
|
||||
`(elscreen-tab-current-screen-face ((t (:box nil :background ,nrwo-dark4 :foreground ,nrwo-dark0)))) ;; Current tab
|
||||
`(elscreen-tab-other-screen-face ((t (:box nil :background ,nrwo-dark2 :foreground ,nrwo-light4 :underline nil)))) ;; Inactive tab
|
||||
|
||||
;; ag (The Silver Searcher)
|
||||
`(ag-hit-face ((t (:foreground ,nrwo-color14))))
|
||||
`(ag-match-face ((t (:foreground ,nrwo-color15))))
|
||||
|
||||
;; Diffs
|
||||
`(diff-changed ((t (:background ,nrwo-color0 :foreground ,nrwo-light1))))
|
||||
`(diff-added ((t (:background nil :foreground ,nrwo-color12))))
|
||||
`(diff-removed ((t (:background nil :foreground ,nrwo-color9))))
|
||||
`(diff-indicator-changed ((t (:inherit diff-changed))))
|
||||
`(diff-indicator-added ((t (:inherit diff-added))))
|
||||
`(diff-indicator-removed ((t (:inherit diff-removed))))
|
||||
|
||||
`(js2-warning ((t (:underline (:color ,nrwo-color9 :style wave)))))
|
||||
`(js2-error ((t (:underline (:color ,nrwo-color15 :style wave)))))
|
||||
`(js2-external-variable ((t (:underline (:color ,nrwo-color10 :style wave)))))
|
||||
`(js2-jsdoc-tag ((t (:background nil :foreground ,nrwo-medium ))))
|
||||
`(js2-jsdoc-type ((t (:background nil :foreground ,nrwo-light4 ))))
|
||||
`(js2-jsdoc-value ((t (:background nil :foreground ,nrwo-light3 ))))
|
||||
`(js2-function-param ((t (:background nil :foreground ,nrwo-color12 ))))
|
||||
`(js2-function-call ((t (:background nil :foreground ,nrwo-color10 ))))
|
||||
`(js2-instance-member ((t (:background nil :foreground ,nrwo-color9 ))))
|
||||
`(js2-private-member ((t (:background nil :foreground ,nrwo-color11 ))))
|
||||
`(js2-private-function-call ((t (:background nil :foreground ,nrwo-color14 ))))
|
||||
`(js2-jsdoc-html-tag-name ((t (:background nil :foreground ,nrwo-light4 ))))
|
||||
`(js2-jsdoc-html-tag-delimiter ((t (:background nil :foreground ,nrwo-light3 ))))
|
||||
|
||||
;; popup
|
||||
`(popup-face ((t (:foreground ,nrwo-light1 :background ,nrwo-dark1))))
|
||||
`(popup-menu-mouse-face ((t (:foreground ,nrwo-light0 :background ,nrwo-color2))))
|
||||
`(popup-menu-selection-face ((t (:foreground ,nrwo-light0 :background ,nrwo-color2))))
|
||||
`(popup-tip-face ((t (:foreground ,nrwo-light2 :background ,nrwo-dark2))))
|
||||
|
||||
;; message-mode
|
||||
`(message-header-to ((t (:inherit font-lock-variable-name-face))))
|
||||
`(message-header-cc ((t (:inherit font-lock-variable-name-face))))
|
||||
`(message-header-subject ((t (:foreground ,nrwo-color10 ))))
|
||||
`(message-header-newsgroups ((t (:foreground ,nrwo-color9 ))))
|
||||
`(message-header-other ((t (:inherit font-lock-variable-name-face))))
|
||||
`(message-header-name ((t (:inherit font-lock-keyword-face))))
|
||||
`(message-header-xheader ((t (:foreground ,nrwo-color12))))
|
||||
`(message-separator ((t (:inherit font-lock-comment-face))))
|
||||
`(message-cited-text ((t (:inherit font-lock-comment-face))))
|
||||
`(message-mml ((t (:foreground ,nrwo-color1 ))))
|
||||
)
|
||||
)
|
||||
|
||||
;;;###autoload
|
||||
(and load-file-name
|
||||
(boundp 'custom-theme-load-path)
|
||||
(add-to-list 'custom-theme-load-path
|
||||
(file-name-as-directory
|
||||
(file-name-directory load-file-name))))
|
||||
|
||||
(provide-theme 'nothing-rhymes-with-orange)
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (when (fboundp 'rainbow-mode) (rainbow-mode +1))
|
||||
;; End:
|
||||
|
||||
;;; nrwo-theme.el ends here
|
||||
Reference in New Issue
Block a user