emacs dotfiles
parent
e8f3bb930f
commit
d40b370274
|
@ -0,0 +1,27 @@
|
||||||
|
;; Added by Package.el. This must come before configurations of
|
||||||
|
;; installed packages. Don't delete this line. If you don't want it,
|
||||||
|
;; just comment it out by adding a semicolon to the start of the line.
|
||||||
|
;; You may delete these explanatory comments.
|
||||||
|
(require 'package)
|
||||||
|
;; remove the load path for nix profiles
|
||||||
|
;; todo: fix woman
|
||||||
|
(eval-after-load 'woman '(error "fix the path from /nix/*-emacs-*/..site-start.el first"))
|
||||||
|
|
||||||
|
(require 'seq)
|
||||||
|
(setq load-path
|
||||||
|
(seq-difference load-path (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
|
||||||
|
(split-string (or (getenv "NIX_PROFILES") "")))))
|
||||||
|
|
||||||
|
(package-initialize 'noactivate)
|
||||||
|
(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
|
||||||
|
("d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879" "a8245b7cc985a0610d71f9852e9f2767ad1b852c2bdea6f4aadc12cce9c4d6d0" "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" default)))
|
||||||
|
)
|
||||||
|
|
||||||
|
(org-babel-load-file "~/dotfiles/emacs/emacs.org")
|
||||||
|
|
|
@ -0,0 +1,267 @@
|
||||||
|
#+TITLE: Emacs config
|
||||||
|
#+AUTHOR: Yorick van Pelt
|
||||||
|
|
||||||
|
* Prelims
|
||||||
|
** use-package compile-time
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(eval-when-compile (require 'use-package))
|
||||||
|
(require 'diminish)
|
||||||
|
(require 'bind-key)
|
||||||
|
#+END_SRC
|
||||||
|
* Org stuff
|
||||||
|
** modules
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq org-modules '(org-bbdb org-bibtex org-docview org-gnus org-habit
|
||||||
|
org-info org-irc org-mhe org-rmail org-w3m))
|
||||||
|
#+END_SRC
|
||||||
|
** keybindings
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(bind-keys :map global-map
|
||||||
|
("C-c l" . org-store-link)
|
||||||
|
("C-c a" . org-agenda)
|
||||||
|
("C-c c" . org-capture))
|
||||||
|
#+END_SRC
|
||||||
|
** config
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq org-pretty-entities t)
|
||||||
|
(setq org-startup-indented t)
|
||||||
|
(setq org-src-fontify-natively t)
|
||||||
|
(setq org-src-tab-acts-natively t)
|
||||||
|
(setq org-ellipsis "⬎")
|
||||||
|
(setq org-log-done t)
|
||||||
|
(setq org-todo-keywords
|
||||||
|
'((sequence "TODO(t)" "WAIT" "|" "DONE(d)" "CANCEL")))
|
||||||
|
(setq org-agenda-files (list "~/org/life.org"
|
||||||
|
"~/org/ru.org"
|
||||||
|
"~/org/symfo.org"
|
||||||
|
"~/org/fiction.org"))
|
||||||
|
(setq org-use-fast-todo-selection t)
|
||||||
|
(setq org-directory "~/org")
|
||||||
|
|
||||||
|
(defun org-file-path (filename)
|
||||||
|
"Return the absolute address of an org file, given its relative name."
|
||||||
|
(concat (file-name-as-directory org-directory) filename))
|
||||||
|
|
||||||
|
; (setq org-inbox-file "~/org/inbox.org")
|
||||||
|
(setq org-index-file (org-file-path "life.org"))
|
||||||
|
(setq org-archive-location
|
||||||
|
(concat (org-file-path "archive.org") "::* From %s"))
|
||||||
|
|
||||||
|
(setq org-default-notes-file "~/org/refile.org")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(setq org-capture-templates
|
||||||
|
'(("l" "Today I learned"
|
||||||
|
entry
|
||||||
|
(file+datetree (org-file-path "til.org"))
|
||||||
|
"* %?\n")
|
||||||
|
("u" "link"
|
||||||
|
entry
|
||||||
|
(file+headline org-index-file "check links")
|
||||||
|
"* %^L\n")
|
||||||
|
("w" "Week review"
|
||||||
|
entry
|
||||||
|
(file+datetree (org-file-path "weeklog.org"))
|
||||||
|
"* %?\n")
|
||||||
|
("t" "todo item"
|
||||||
|
entry
|
||||||
|
(file+headline org-index-file "todo")
|
||||||
|
"* TODO %?\n")))
|
||||||
|
|
||||||
|
|
||||||
|
#+END_SRC
|
||||||
|
** add template for elisp
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(add-to-list 'org-structure-template-alist
|
||||||
|
'("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"))
|
||||||
|
#+END_SRC
|
||||||
|
** org-bullets
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package org-bullets
|
||||||
|
:init (add-hook 'org-mode-hook 'org-bullets-mode t)
|
||||||
|
:commands org-bullets-mode
|
||||||
|
)
|
||||||
|
#+END_SRC
|
||||||
|
** TODO org-ref
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package org-ref
|
||||||
|
:disabled
|
||||||
|
:config
|
||||||
|
(setq org-ref-completion-library 'org-ref-ivy-cite))
|
||||||
|
#+END_SRC
|
||||||
|
* Look
|
||||||
|
** Solarized
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package solarized
|
||||||
|
:if window-system
|
||||||
|
:init
|
||||||
|
(setq-default frame-background-mode 'dark)
|
||||||
|
(set-frame-parameter nil 'background-mode 'dark)
|
||||||
|
(add-hook 'after-make-frame-functions (lambda (frame)
|
||||||
|
"Reenable solarized"
|
||||||
|
(enable-theme 'solarized-dark)))
|
||||||
|
:config
|
||||||
|
(load-theme 'solarized-dark t)
|
||||||
|
(enable-theme 'solarized-dark))
|
||||||
|
#+END_SRC
|
||||||
|
** Transparency
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(set-frame-parameter (selected-frame) 'alpha '(90 . 85))
|
||||||
|
(add-to-list 'default-frame-alist '(alpha . (90 . 85)))
|
||||||
|
#+END_SRC
|
||||||
|
** Cleaner frames
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(tool-bar-mode 0)
|
||||||
|
(menu-bar-mode 0)
|
||||||
|
#+END_SRC
|
||||||
|
** hl-line
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(when window-system (global-hl-line-mode))
|
||||||
|
#+END_SRC
|
||||||
|
* Feel
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defalias 'yes-or-no-p 'y-or-n-p)
|
||||||
|
#+END_SRC
|
||||||
|
** Fix mouse wheel
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ;; one line at a time
|
||||||
|
(setq mouse-wheel-progressive-speed nil) ;; don't accelerate scrolling
|
||||||
|
(setq mouse-wheel-follow-mouse 't) ;; scroll window under mouse
|
||||||
|
(setq scroll-step 1) ;; keyboard scroll one line at a time
|
||||||
|
(defun sfp-page-down (&optional arg)
|
||||||
|
(interactive "^P")
|
||||||
|
(setq this-command 'next-line)
|
||||||
|
(next-line
|
||||||
|
(- (window-text-height)
|
||||||
|
next-screen-context-lines)))
|
||||||
|
(put 'sfp-page-down 'isearch-scroll t)
|
||||||
|
(put 'sfp-page-down 'CUA 'move)
|
||||||
|
(defun sfp-page-up (&optional arg)
|
||||||
|
(interactive "^P")
|
||||||
|
(setq this-command 'previous-line)
|
||||||
|
(previous-line
|
||||||
|
(- (window-text-height)
|
||||||
|
next-screen-context-lines)))
|
||||||
|
(put 'sfp-page-up 'isearch-scroll t)
|
||||||
|
(put 'sfp-page-up 'CUA 'move)
|
||||||
|
(setq scroll-error-top-bottom t)
|
||||||
|
#+END_SRC
|
||||||
|
** Ivy
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package ivy
|
||||||
|
:init
|
||||||
|
(setq ivy-height 10)
|
||||||
|
(setq ivy-use-virtual-buffers t)
|
||||||
|
(setq enable-recursive-minibuffers t)
|
||||||
|
:config
|
||||||
|
(ivy-mode t)
|
||||||
|
:bind (("C-s" . swiper)
|
||||||
|
("C-c C-r" . ivy-resume)
|
||||||
|
("<f6>" . ivy-resume)))
|
||||||
|
#+END_SRC
|
||||||
|
** Counsel
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package counsel
|
||||||
|
:bind (("M-x" . counsel-M-x)
|
||||||
|
("C-x C-f" . counsel-find-file)))
|
||||||
|
#+END_SRC
|
||||||
|
(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-find-library)
|
||||||
|
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
|
||||||
|
(global-set-key (kbd "<f2> u") 'counsel-unicode-char)
|
||||||
|
;; (global-set-key (kbd "C-c g") 'counsel-git)
|
||||||
|
;; (global-set-key (kbd "C-c j") 'counsel-git-grep)
|
||||||
|
;; (global-set-key (kbd "C-c k") 'counsel-ag)
|
||||||
|
;; (global-set-key (kbd "C-x l") 'counsel-locate)
|
||||||
|
;; (global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
|
||||||
|
;; (define-key read-expression-map (kbd "C-r") 'counsel-expression-history)
|
||||||
|
* editing
|
||||||
|
** line numbers
|
||||||
|
*** relative
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package linum-relative
|
||||||
|
:commands linum-relative-toggle)
|
||||||
|
#+END_SRC
|
||||||
|
*** enable globally
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(global-linum-mode t)
|
||||||
|
#+END_SRC
|
||||||
|
** Indentation
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq-default indent-tabs-mode nil)
|
||||||
|
(setq-default tab-width 2) ; or any other preferred value
|
||||||
|
(defvaralias 'c-basic-offset 'tab-width)
|
||||||
|
(defvaralias 'cperl-indent-level 'tab-width)
|
||||||
|
#+END_SRC
|
||||||
|
** git-gutter-fringe
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package git-gutter-fringe
|
||||||
|
:config (global-git-gutter-mode t))
|
||||||
|
#+END_SRC
|
||||||
|
** all-the-icons
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package all-the-icons
|
||||||
|
:commands all-the-icons-insert)
|
||||||
|
#+END_SRC
|
||||||
|
** backups
|
||||||
|
from [[https://www.emacswiki.org/emacs/BackupDirectory][emacs wiki]]
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq
|
||||||
|
backup-by-copying t ; don't clobber symlinks
|
||||||
|
backup-directory-alist
|
||||||
|
'(("." . "~/.emacs.d/.saves")) ; don't litter my fs tree
|
||||||
|
delete-old-versions t
|
||||||
|
kept-new-versions 6
|
||||||
|
kept-old-versions 2
|
||||||
|
version-control t) ; use versioned backups
|
||||||
|
|
||||||
|
#+END_SRC
|
||||||
|
** Evil
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package evil
|
||||||
|
:config (evil-mode t))
|
||||||
|
(use-package which-key
|
||||||
|
:init
|
||||||
|
(setq which-key-allow-evil-operators t)
|
||||||
|
(setq which-key-show-operator-state-maps t)
|
||||||
|
:config
|
||||||
|
(which-key-mode 1)
|
||||||
|
(which-key-setup-minibuffer)) ; do I need this?
|
||||||
|
#+END_SRC
|
||||||
|
*** evil-goggles
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package evil-goggles
|
||||||
|
:config (evil-goggles-mode)
|
||||||
|
(evil-goggles-use-diff-faces))
|
||||||
|
#+END_SRC
|
||||||
|
* Tools
|
||||||
|
** Magit
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package magit
|
||||||
|
:bind (("C-c g" . magit-status)
|
||||||
|
("C-c C-g l" . magit-log-all)))
|
||||||
|
#+END_SRC
|
||||||
|
** Pass
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package pass
|
||||||
|
:commands pass)
|
||||||
|
#+END_SRC
|
||||||
|
*** TODO helm-pass or password-store or fix keybindings for pass
|
||||||
|
* language-specific
|
||||||
|
** markdown
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package markdown-mode
|
||||||
|
:commands (markdown-mode gfm-mode)
|
||||||
|
:mode (("README\\.md\\'" . gfm-mode)
|
||||||
|
("\\.md\\'" . markdown-mode)
|
||||||
|
("\\.markdown\\'" . markdown-mode))
|
||||||
|
:init (setq markdown-command "multimarkdown"))
|
||||||
|
#+END_SRC
|
||||||
|
** nix
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package nix-mode
|
||||||
|
:commands (nix-mode)
|
||||||
|
:mode (("\\.nix\\'" . nix-mode)))
|
||||||
|
#+END_SRC
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#!nix-shell -i bash -p stow
|
#!nix-shell -i bash -p stow
|
||||||
$(nix-build '<nixpkgs>' -A stow --no-out-link)/bin/stow -d `dirname $0` -t ~ nix git x pentadactyl i3 gtk gpg mutt misc bash
|
$(nix-build '<nixpkgs>' -A stow --no-out-link)/bin/stow -d `dirname $0` -t ~ nix git x pentadactyl gtk gpg mutt misc bash stow
|
||||||
nix-build -A $(hostname -s)
|
nix-build -A $(hostname -s)
|
||||||
|
|
|
@ -228,6 +228,53 @@
|
||||||
frumar = with envs; [bup gitAndTools.git-annex rtorrent pyroscope];
|
frumar = with envs; [bup gitAndTools.git-annex rtorrent pyroscope];
|
||||||
};
|
};
|
||||||
pandocdeps = (pkgs.texlive.combine {
|
pandocdeps = (pkgs.texlive.combine {
|
||||||
|
myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
|
||||||
|
company
|
||||||
|
paredit
|
||||||
|
counsel
|
||||||
|
flycheck
|
||||||
|
ivy
|
||||||
|
magit
|
||||||
|
projectile
|
||||||
|
use-package
|
||||||
|
org-bullets
|
||||||
|
solarized-theme
|
||||||
|
evil
|
||||||
|
evil-magit
|
||||||
|
evil-leader
|
||||||
|
evil-tutor
|
||||||
|
evil-surround
|
||||||
|
epkgs.evil-goggles
|
||||||
|
# evil-commentary
|
||||||
|
password-store
|
||||||
|
pass
|
||||||
|
linum-relative
|
||||||
|
(epkgs.trivialBuild { pname = "emacs-nix-mode"; src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "matthewbauer";
|
||||||
|
repo = "nix-mode";
|
||||||
|
rev = "v1.2.1";
|
||||||
|
sha256 = "1zpqpq6hd83prk80921nbjrvcmk0dykqrrr1mw3b29ppjma5zjiz";
|
||||||
|
};
|
||||||
|
preConfigure = ''
|
||||||
|
rm nix-company.el nix-mode-mmm.el
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
nix-buffer
|
||||||
|
which-key
|
||||||
|
git-gutter-fringe
|
||||||
|
neotree
|
||||||
|
all-the-icons
|
||||||
|
epkgs.org-cliplink
|
||||||
|
pandoc-mode
|
||||||
|
markdown-mode
|
||||||
|
interleave
|
||||||
|
# all-the-icons-dired
|
||||||
|
org-ref
|
||||||
|
avy
|
||||||
|
# nixos-sandbox # https://github.com/travisbhartwell/nix-emacs
|
||||||
|
haskell-mode
|
||||||
|
]));
|
||||||
|
# todo: emacs-all-the-icons-fonts
|
||||||
inherit (pkgs.texlive)
|
inherit (pkgs.texlive)
|
||||||
scheme-basic
|
scheme-basic
|
||||||
# explicit list pandoc tex dependencies
|
# explicit list pandoc tex dependencies
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../emacs/.emacs.d
|
Loading…
Reference in New Issue