-
-
Save fmap/b0e89549d43c4cc0d90c14579e366eb3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(unless (< emacs-major-version 25) | |
(setenv "PAGER" "cat") | |
(setenv "LANG" "en_US.UTF-8") | |
(set-default-file-modes ?\700) | |
(setq inhibit-startup-screen t) | |
(setq initial-scratch-message "") | |
(setq initial-major-mode 'text-mode) | |
(setq indent-tabs-mode nil) | |
(setq-default c-basic-offset 2) | |
(setq-default default-tab-width 2) | |
(setq visible-bell nil) | |
(setq ring-bell-function 'ignore) | |
(global-auto-revert-mode t) | |
(setq sentence-end-double-space nil) | |
(put 'narrow-to-region 'disabled nil) | |
(setq backup-directory-alist | |
`((".*" . ,temporary-file-directory))) | |
(setq auto-save-file-name-transforms | |
`((".*" ,temporary-file-directory t))) | |
(tool-bar-mode -1) | |
(scroll-bar-mode -1) | |
(set-fringe-style '(8 . 0)) | |
(setq frame-resize-pixelwise t) | |
(add-hook 'window-setup-hook (lambda () (toggle-frame-maximized))) | |
(unless (and | |
(boundp 'server-process) | |
(memq (process-status server-process) '(connect listen open run))) | |
(server-start)) | |
(global-set-key (kbd "M-o") 'other-window) | |
(if (memq window-system '(mac ns)) | |
(progn | |
(setq browse-url-mailto-function (lambda (url &rest args) (shell-command (format "/usr/bin/open %s" url)))) | |
(defun suspend () | |
(interactive) | |
(shell-command "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -suspend")) | |
(if (not (getenv "TERM_PROGRAM")) | |
(progn | |
(if (find-font (font-spec :family "Apple Color Emoji")) | |
(set-fontset-font t 'symbol (font-spec :family "Apple Color Emoji"))) | |
(let ((shell-path (shell-command-to-string "bash -rlc 'echo -n $PATH'"))) | |
(setenv "PATH" shell-path) | |
(setq exec-path (split-string shell-path path-separator)))))) | |
(menu-bar-mode -1)) | |
(require 'package) | |
(setq package-archives | |
'(("gnu" . "https://elpa.gnu.org/packages/") | |
("melpa" . "https://melpa.org/packages/") | |
("org" . "http://orgmode.org/elpa/"))) | |
(package-initialize) | |
(unless package-archive-contents | |
(package-refresh-contents)) | |
(unless (package-installed-p 'use-package) | |
(package-install 'use-package)) | |
(setq use-package-always-ensure t) | |
(use-package moe-theme | |
:config | |
(moe-light)) | |
(use-package magit | |
:config | |
(global-set-key (kbd "C-x g") 'magit-status)) | |
(use-package tramp | |
:init | |
(setq tramp-default-method "ssh") | |
(add-to-list 'tramp-remote-path 'tramp-own-remote-path)) | |
(use-package ido | |
:config | |
(add-to-list 'ido-ignore-files "\\.hi") | |
(add-to-list 'ido-ignore-files "\\.o") | |
(add-to-list 'ido-ignore-files "\\.ibc") | |
(add-to-list 'ido-ignore-files "\\.agdai") | |
(add-to-list 'ido-ignore-files "\\.gfo") | |
(ido-mode 't) | |
(use-package flx-ido | |
:config | |
(flx-ido-mode 1))) | |
(use-package haskell-mode | |
:mode | |
(("\\.hs" . haskell-mode) | |
("\\.lhs" . literate-haskell-mode) | |
("\\.cabal" . cabal-mode)) | |
:init | |
(setq haskell-process-type 'stack-ghci) | |
(setq haskell-process-args-stack-ghci '()) | |
(setq haskell-process-log 't) | |
(setq haskell-process-suggest-overloaded-strings 't) | |
(setq haskell-process-suggest-remove-import-lines 'f) | |
:preface | |
(defun haskell-interactive-bring () | |
(interactive) | |
(display-buffer (haskell-interactive-buffer (haskell-session)))) | |
:bind (:map haskell-mode-map | |
("C-c C-l" . haskell-process-load-file) | |
("C-c C-c" . haskell-compile) ;; Needs Stack support | |
("C-`" . haskell-interactive-bring) | |
("C-c C-t" . haskell-process-do-type)) | |
:config | |
(require 'haskell-mode) | |
(require 'haskell) | |
(require 'haskell-interactive-mode) | |
(require 'haskell-process) | |
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)) | |
(use-package agda2-mode | |
:ensure nil | |
:if (executable-find "agda-mode") | |
:init | |
(load-file (let ((coding-system-for-read 'utf-8)) | |
(shell-command-to-string "agda-mode locate"))) | |
(require 'agda2) | |
;; (require 'agda-input) | |
;; (set-input-method "Agda") | |
(add-hook 'prog-mode-hook (lambda () (progn | |
(require 'agda-input) | |
(set-input-method "Agda")))) | |
(require 'agda2-highlight) | |
(let ((yellow-1 "#fce94f") (yellow-2 "#ffd700") (yellow-3 "#c4a000") (yellow-3-5 "#aaaa11") (yellow-4 "#875f00") | |
(orange-1 "#ffaf5f") (orange-2 "#ff8700") (orange-3 "#ff5d17") (orange-4 "#d75f00") (orange-5 "#af5f00") | |
(magenta-1 "#ff7bbb") (magenta-2 "#ff4ea3") (magenta-3 "#ff1f8b") | |
(green-1 "#afff00") (green-2 "#a1db00") (green-3 "#00af00") (green-4 "#008700") (green-5 "#005f00") | |
(blue-1 "#5fafd7") (blue-2 "#1f5bff") (blue-3 "#005f87") (blue-4 "#005faf") (blue-5 "#0000af") | |
(cyan-0 "#d7ffd7") (cyan-1 "#87ffff") (cyan-2 "#87d7af") (cyan-3 "#00d7af") (cyan-4 "#00ac8a") | |
(cyan-5 "#18b2b2") (cyan-6 "#005f5f") (cyan-7 "#236f73") (cyan-8 "#00af87") (cyan-9 "#005f87") | |
(purple-1 "#d18aff") (purple-2 "#b218b2") (purple-3 "#6c0099") (purple-4 "#6c0099") | |
(red-1 "#ef2929") (red-2 "#cc0000") (red-3 "#a40000") | |
(white-1 "#eeeeee") (white-2 "#dadada") (white-3 "#c6c6c6") (white-4 "#b2b2b2") (black-1 "#9e9e9e") | |
(black-2 "#8a8a8a") (black-3 "#767676") (black-4 "#626262") (black-5 "#5f5f5f") (black-6 "#3a3a3a") | |
(LIGHT_BG "#fdfde7") (white-0 "#ffffff") | |
(green-02 "#5fd700") (green-01 "#d7ff00") (green-0 "#d7ff5f") (green-00 "#d7ff87") | |
(blue-01 "#c3c9f8") (blue-0 "#afd7ff") (blue-00 "#d7d7ff") (blue-000 "#d4e5ff") | |
(yellow-0 "#ffff87") (yellow-00 "#ffffaf") (yellow-2-5 "#ffba27") | |
(purple-0 "#af87ff") (purple-00 "#e6a8df") | |
(red-0 "#ff4b4b") (red-00 "#ffafaf") (red-000 "#ffd5e5") | |
(magenta-0 "#ffafd7") (magenta-00 "#ffd7ff") | |
(orange-0 "#ffaf87") (orange-00 "#ffd787") (orange-000 "#ffd7af") | |
(linum-dark "#87875f") (linum-light "#d7d7af")) | |
(mapc (lambda (face-and-attrs) | |
(agda2-highlight-set-face-attribute | |
(car face-and-attrs) (cdr face-and-attrs))) | |
'((agda2-highlight-keyword-face | |
:foreground green-3) | |
(agda2-highlight-string-face | |
:foreground purple-2) | |
(agda2-highlight-number-face | |
:foreground purple-2) | |
(agda2-highlight-function-face | |
:foreground magenta-3) | |
(agda2-highlight-module-face | |
:foreground cyan-5) | |
(agda2-highlight-inductive-constructor-face | |
:foreground cyan-5) | |
;; (agda2-highlight-error-face | |
;; :foreground black-5 :background LIGHT_BG :underline '(:style wave :color red-3)) | |
(agda2-highlight-datatype-face | |
:foreground red-1) | |
(agda2-highlight-record-face | |
:foreground red-1) | |
(agda2-highlight-primitive-type-face | |
:foreground red-1) | |
;; (agda2-highlight-postulate-face | |
;; :foreground orange-2 :underline '(:style wave :color green-3)) | |
(agda2-highlight-symbol-face | |
:foreground black-5)))) | |
:bind (("<s-down-mouse-1>" . agda2-goto-definition-mouse))) | |
(use-package idris-mode | |
:mode | |
(("\\.idr" . idris-mode) | |
("\\.lidr" . idris-mode)) | |
:init | |
(setq idris-semantic-source-highlighting 't)) | |
(use-package octave-mode | |
:ensure nil | |
:mode "\\.m" | |
:init | |
(setq inferior-octave-startup-args '("-i" "--no-line-editing" "--no-gui" "--no-gui-libs"))) | |
(use-package eshell | |
:init | |
(setq eshell-banner-message "") | |
:preface | |
(defun rename () | |
(rename-buffer (generate-new-buffer-name (abbreviate-file-name default-directory)))) | |
:config | |
(add-hook 'eshell-first-time-mode-hook 'rename) | |
(add-hook 'eshell-directory-change-hook 'rename) | |
(defun eshell/find-files (&rest args) | |
(mapc #'find-file (mapcar #'expand-file-name (eshell-flatten-list (reverse args)))))) | |
(use-package eww | |
:commands (eww) | |
:init | |
(setq shr-use-fonts nil)) | |
;; (add-hook 'eww-mode-hook | |
;; '(lambda () (add-to-list 'window-size-change-functions | |
;; '(lambda () (eww-reload t)) nil t)))) | |
(use-package proof-general | |
;; https://github.com/ProofGeneral/PG | |
:ensure nil | |
:if (file-readable-p "~/.emacs.d/vendor/PG/generic/proof-site.el") | |
:init | |
(require 'proof-site "~/.emacs.d/vendor/PG/generic/proof-site")) | |
(use-package auctex | |
:mode ("\\.tex\\'" . latex-mode)) | |
(use-package tidal | |
;; https://github.com/tidalcycles/Tidal | |
:ensure nil | |
:if (file-readable-p "~/.emacs.d/vendor/tidal.el") | |
:init | |
(load "~/.emacs.d/vendor/tidal.el") ;; :config? | |
(require 'tidal) | |
(setq tidal-interpreter "/usr/local/bin/stack") | |
(setq tidal-interpreter-arguments | |
'("--install-ghc" "repl" "--resolver" "nightly-2017-06-02" | |
"--package" "tidal" "--ghci-options=-XOverloadedStrings"))) | |
(use-package gf | |
:ensure nil | |
:if | |
(file-readable-p "~/.emacs.d/vendor/grammatical-framework/gf.el") | |
:mode | |
("\\(\\.ebnf\\'\\|\\.cf\\'\\|\\.gf\\(\\|e\\|r\\|cm?\\)\\'\\)" . gf-mode) | |
:init | |
(load "~/.emacs.d/vendor/grammatical-framework/gf") | |
(autoload 'run-gf "gf" nil t) | |
(autoload 'gf-mode "gf" nil t)) | |
(use-package visual-fill-column | |
:commands (visual-fill-column-mode)) | |
(use-package sml-mode | |
:mode ("\\.ml" . sml-mode)) | |
(use-package nix-mode | |
:mode "\\.nix") | |
(use-package org-plus-contrib | |
:pin org | |
:bind (("C-c l" . org-store-link) | |
("C-c c" . org-capture) | |
("C-c a" . org-agenda) | |
("C-c b" . org-iswitchb)) | |
:init | |
(setq org-image-actual-width 400) | |
(setq org-return-follows-link 't) | |
(setq org-startup-indented 't) | |
(setq org-indent-mode-turns-on-hiding-stars 't) | |
(require 'org-install) | |
(require 'ob-haskell) | |
(require 'ob-sh) | |
(org-babel-do-load-languages | |
'org-babel-load-languages | |
'((sh . t) | |
(dot . t) | |
(haskell . t) | |
(emacs-lisp . t))) | |
(require 'org-capture) | |
(setq org-capture-templates '( | |
("p" "Protocol" entry | |
(file+headline "~/NOTES.org" "Inbox") | |
"* %^{Title}\nSource: %u, %c\n #+BEGIN_QUOTE\n%i\n#+END_QUOTE\n\n\n%?") | |
("L" "Protocol Link" entry | |
(file+headline "~/NOTES.org" "Inbox") | |
"* %? [[%:link][%:description]] \nCaptured On: %U"))) | |
) | |
(use-package markdown-mode | |
:mode "\\.md" | |
:init | |
(setq markdown-enable-math 't)) | |
(use-package pandoc-mode | |
:init | |
(add-hook 'markdown-mode-hook 'pandoc-mode)) | |
(use-package ssh-config-mode | |
:mode "sshd_config") | |
(use-package epg | |
:init | |
(setq epg-user-id (concat user-login-name "@" system-name))) | |
(use-package image-file | |
:init | |
(auto-image-file-mode)) | |
(use-package wordnut | |
:bind | |
(("C-c d" . wordnut-search))) | |
(use-package visual-fill-column | |
:init | |
(set-display-table-slot standard-display-table 'wrap ?\ )) | |
(use-package projectile | |
:init | |
(setq projectile-use-git-grep t) | |
:config | |
(projectile-global-mode) | |
(setq projectile-mode-line | |
'(:eval (if (projectile-project-p) (format " Projectile:%s" (projectile-project-name)))))) | |
(use-package pragmata-pro | |
:ensure nil | |
:if (find-font (font-spec :family "PragmataPro")) | |
:init | |
(set-face-attribute 'default nil :family "PragmataPro" :height 180) | |
(setq prettify-symbols-unprettify-at-point t) | |
(defconst pragmatapro-prettify-symbols-alist | |
(mapcar (lambda (s) `(,(car s) . ,(concat (list ?\C-i) (list (decode-char 'ucs (cadr s)))))) | |
(list '("[ERROR]" #XE380) | |
'("[DEBUG]" #XE381) | |
'("[INFO]" #XE382) | |
'("[WARN]" #XE383) | |
'("[WARNING]" #XE384) | |
'("[ERR]" #XE385) | |
'("[FATAL]" #XE386) | |
'("[TRACE]" #XE387) | |
'("!!" #XE720) | |
'("!=" #XE721) | |
'("!==" #XE722) | |
'("!!!" #XE723) | |
'("!≡" #XE724) | |
'("!≡≡" #XE725) | |
'("!>" #XE726) | |
'("#(" #XE740) | |
'("#_" #XE741) | |
'("#{" #XE742) | |
'("#?" #XE743) | |
'("#>" #XE744) | |
'("##" #XE745) | |
'("%=" #XE750) | |
'("%>" #XE751) | |
'("&%" #XE760) | |
'("&&" #XE761) | |
'("&*" #XE762) | |
'("&+" #XE763) | |
'("&-" #XE764) | |
'("&/" #XE765) | |
'("&=" #XE766) | |
'("&&&" #XE767) | |
'("&>" #XE768) | |
'("***" #XE780) | |
'("*=" #XE781) | |
'("*/" #XE782) | |
'("*>" #XE783) | |
'("++" #XE790) | |
'("+++" #XE791) | |
'("+=" #XE792) | |
'("+>" #XE793) | |
'("++=" #XE794) | |
'("--" #XE7A0) | |
'("-<" #XE7A1) | |
'("-<<" #XE7A2) | |
'("-=" #XE7A3) | |
'("->" #XE7A4) | |
'("->>" #XE7A5) | |
'("---" #XE7A6) | |
'("-->" #XE7A7) | |
'("-+-" #XE7A8) | |
'("-\\/" #XE7A9) | |
'(".." #XE7B0) | |
'("..." #XE7B1) | |
'("..<" #XE7B2) | |
'(".>" #XE7B3) | |
'(".~" #XE7B4) | |
'(".=" #XE7B5) | |
'("/*" #XE7C0) | |
'("//" #XE7C1) | |
'("/>" #XE7C2) | |
'("/=" #XE7C3) | |
'("/==" #XE7C4) | |
'("///" #XE7C5) | |
'("/**" #XE7C6) | |
'("::" #XE7D0) | |
'(":=" #XE7D1) | |
'(":≡" #XE7D2) | |
'(":>" #XE7D3) | |
'(":=>" #XE7D4) | |
'("<$>" #XE7E0) | |
'("<*" #XE7E1) | |
'("<*>" #XE7E2) | |
'("<+>" #XE7E3) | |
'("<-" #XE7E4) | |
'("<<" #XE7E5) | |
'("<<<" #XE7E6) | |
'("<<=" #XE7E7) | |
'("<=" #XE7E8) | |
'("<=>" #XE7E9) | |
'("<>" #XE7EA) | |
'("<|>" #XE7EB) | |
'("<<-" #XE7EC) | |
'("<|" #XE7ED) | |
'("<=<" #XE7EE) | |
'("<~" #XE7EF) | |
'("<~~" #XE7F0) | |
'("<<~" #XE7F1) | |
'("<$" #XE7F2) | |
'("<+" #XE7F3) | |
'("<!>" #XE7F4) | |
'("<@>" #XE7F5) | |
'("<#>" #XE7F6) | |
'("<%>" #XE7F7) | |
'("<^>" #XE7F8) | |
'("<&>" #XE7F9) | |
'("<?>" #XE7FA) | |
'("<.>" #XE7FB) | |
'("</>" #XE7FC) | |
'("<\\>" #XE7FD) | |
'("<\">" #XE7FE) | |
'("<:>" #XE7FF) | |
'("<~>" #XE800) | |
'("<**>" #XE801) | |
'("<<^" #XE802) | |
'("<!" #XE803) | |
'("<@" #XE804) | |
'("<#" #XE805) | |
'("<%" #XE806) | |
'("<^" #XE807) | |
'("<&" #XE808) | |
'("<?" #XE809) | |
'("<." #XE80A) | |
'("</" #XE80B) | |
'("<\\" #XE80C) | |
'("<\"" #XE80D) | |
'("<:" #XE80E) | |
'("<->" #XE80F) | |
'("<!--" #XE810) | |
'("<--" #XE811) | |
'("<~<" #XE812) | |
'("<==>" #XE813) | |
'("==<" #XE820) | |
'("==" #XE821) | |
'("===" #XE822) | |
'("==>" #XE823) | |
'("=>" #XE824) | |
'("=~" #XE825) | |
'("=>>" #XE826) | |
'("=/=" #XE827) | |
'("≡≡" #XE830) | |
'("≡≡≡" #XE831) | |
'("≡:≡" #XE832) | |
'(">-" #XE840) | |
'(">=" #XE841) | |
'(">>" #XE842) | |
'(">>-" #XE843) | |
'(">==" #XE844) | |
'(">>>" #XE845) | |
'(">=>" #XE846) | |
'(">>^" #XE847) | |
'("??" #XE860) | |
'("?~" #XE861) | |
'("?=" #XE862) | |
'("?>" #XE863) | |
'("???" #XE864) | |
'("^=" #XE868) | |
'("^." #XE869) | |
'("^?" #XE86A) | |
'("^.." #XE86B) | |
'("^<<" #XE86C) | |
'("^>>" #XE86D) | |
'("^>" #XE86E) | |
'("\\\\" #XE870) | |
'("\\>" #XE871) | |
'("\\/-" #XE872) | |
'("@>" #XE877) | |
'("|=" #XE880) | |
'("||" #XE881) | |
'("|>" #XE882) | |
'("|||" #XE883) | |
'("|+|" #XE884) | |
'("|->" #XE885) | |
'("|-->" #XE886) | |
'("|=>" #XE887) | |
'("|==>" #XE888) | |
'("~=" #XE890) | |
'("~>" #XE891) | |
'("~~>" #XE892) | |
'("~>>" #XE893) | |
'("\">" #XE8B0)))) | |
(defun add-pragmatapro-prettify-symbols-alist () | |
(dolist (alias pragmatapro-prettify-symbols-alist) | |
(push alias prettify-symbols-alist)) | |
(prettify-symbols-mode -1) | |
(prettify-symbols-mode +1)) | |
(add-hook 'prog-mode-hook #'add-pragmatapro-prettify-symbols-alist) | |
(add-hook 'interactive-haskell-mode-hook #'add-pragmatapro-prettify-symbols-alist) | |
(global-prettify-symbols-mode +1))) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment