- Bootstrap
- Tangle external files
- Tron doom theme
- Getting help
- Further plans
- NEXT Migrate to org super agenda
- Replace hideshow mode with origami
- Add submodules for repos that are not on MELPA
- Gtd goals
- Improvements to org mode
- Kinesis-specific keyboard issues
- Integrated compiler / version control / logging facility
- Set up steam integration with emacs
- spotify controls in emacs
- install & configure hackernews mode
- Emacs/W3
- multiple-cursors
- Add more to yasnippet
- Install the alert package
- Install winner, windmove
Get emacs off the ground!
(message "[kris] Setting load path")
(add-to-list 'load-path "~/.emacs.d/elisp/")
(add-to-list 'load-path (concat user-emacs-directory "literate/tron-doom/"))
(setq kris/orgzly-dir "~/org/")
(setq kris/home-dir "~/")
;; GTD files
(setq kris/inbox-file (concat kris/orgzly-dir "inbox.org"))
(setq kris/todo-file (concat kris/orgzly-dir "todo.org"))
(setq kris/projects-file (concat kris/orgzly-dir "projects.org"))
(setq kris/inactive-projects-file (concat kris/orgzly-dir "inactive-projects.org"))
(setq kris/tickler-file (concat kris/orgzly-dir "tickler.org"))
(setq kris/someday-maybe-file (concat kris/orgzly-dir "someday-maybe.org"))
(setq kris/annoy-file (concat kris/orgzly-dir "annoy.org"))
(bind-key "H-a" '(lambda () (interactive) (find-file kris/annoy-file)))
(bind-key "H-t" '(lambda () (interactive) (find-file kris/todo-file)))
(bind-key "H-p" '(lambda () (interactive) (find-file kris/projects-file)))
(bind-key "H-P" '(lambda () (interactive) (find-file kris/inactive-projects-file)))
(bind-key "H-T" '(lambda () (interactive) (find-file kris/tickler-file)))
(bind-key "H-i" '(lambda () (interactive) (find-file kris/inbox-file)))
(bind-key "H-?" '(lambda () (interactive) (find-file kris/someday-maybe-file)))
- To profile accurately, I need to reload all of my packages
- To do this, I need to uncomment this block of code:
;; (require 'package)
;; (package-initialize)
;;(message "[kris] use-package setup")
;;; probably actually rm this
;;(unless (package-installed-p 'use-package)
;; Update the package if it needs updating.
;; NOTE: This contacts melpa every time you reload your config. Overhead!
;; (package-refresh-contents)
;; (package-install 'use-package))
;;(require 'use-package)
;; All packages in a use-package macro should be automagically installed
;; (setq use-package-always-ensure t)
- NOTE: you must have each tangle block on a new line in order for it to be tangled correctly!!!!
- NOTE: It is important that use-package has been loaded before this block is executed
- This is because my external files have “use-package” statements, which won’t work if use-package hasn’t been loaded yet!
(message "[kris] Defining helper macros for tangling")
(setq-default kris/org-config-directory "literate")
(setq-default kris/org-config-dirpath
(expand-file-name (concat user-emacs-directory
kris/org-config-directory)))
(add-to-list 'load-path kris/org-config-dirpath)
(setq-default kris/config-org-files nil)
;; transforms the given name to "kris/name-config-file" and sets it
;; to the given org filename
(defmacro kris/new-config-file (name filename)
(let ((full-file (make-symbol "full-filename")))
`(let ((,full-file
(concat (file-name-as-directory kris/org-config-dirpath) ,filename ".org")))
(defvar ,(intern (concat "kris/" (symbol-name name) "-config-file"))
,full-file)
(add-to-list
(quote kris/config-org-files) (quote (,name . ,filename)) t))))
- NOTE: It is important that use-package has been loaded before this block is executed
- This is because my external files have “use-package” statements, which won’t work if use-package hasn’t been loaded yet!
Sourcing macOS.org, windows.org
(message "[kris] OS-specific config")
(kris/new-config-file macOS "macOS")
(kris/new-config-file windows "windows")
(cond ((eq system-type 'darwin)
(org-babel-load-file kris/macOS-config-file))
((member system-type '(ms-dos windows-nt cygwin))
(org-babel-load-file kris/windows-config-file)))
Sourcing better-defaults.org
(kris/new-config-file better-defaults "better-defaults")
(org-babel-load-file kris/better-defaults-config-file)
Sourcing global-settings.org
(kris/new-config-file global-settings "global-settings")
(org-babel-load-file kris/global-settings-config-file)
(kris/new-config-file minor-packages "minor-packages")
(org-babel-load-file kris/minor-packages-config-file)
Sourcing kris-modeline.org
(kris/new-config-file modeline "modeline")
(org-babel-load-file kris/modeline-config-file)
Sourcing kris-magit.org
(kris/new-config-file kris-magit "kris-magit")
(org-babel-load-file kris/kris-magit-config-file)
Sourcing kris-ivy.org
(kris/new-config-file kris-ivy "kris-ivy")
(org-babel-load-file kris/kris-ivy-config-file)
Sourcing kris-company.org
(kris/new-config-file kris-company "kris-company")
(org-babel-load-file kris/kris-company-config-file)
Sourcing kris-org-mode.org
(kris/new-config-file kris-org-mode "kris-org-mode")
(org-babel-load-file kris/kris-org-mode-config-file)
Sourcing programming-support.org
(kris/new-config-file programming-support "programming-support")
(org-babel-load-file kris/programming-support-config-file)
;;(kris/new-config-file kris-latex "kris-latex")
;;(org-babel-load-file kris/kris-latex-config-file)
;; Load my theme
(add-to-list 'custom-theme-load-path (concat user-emacs-directory "literate/tron-doom/"))
(load-theme 'tron-doom t) ; t for "don't ask me to load this theme"
;; Global settings (defaults)
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t) ; if nil, italics is universally disabled
;; Enable flashing mode-line on errors
;; (doom-themes-visual-bell-config)
This section is not part of my config file per say, but contains instructions for getting help with various parts of emacs
- New code block:
- New source block (lang unspecified): <s [TAB]
- New elisp block: <el [TAB]
- Edit code block: C-c’
,#+BEGIN_EXAMPLE ,#+CAPTION: This is the caption for the next figure link (or table)
Suppose you made a file called new-thing
;; Macro to define a new external tangling file: (kris/new-config-file new-thing "new-thing") ;; Actually load the external file: '(org-babel-load-file kris/my-new-config-file)
If you don’t know why your emacs is breaking, but suspect a tangling issue, then CHECK CONFIG.EL
M-x describe-[key, face, mode, etc.]
C-h [k, o, f, m]
: Quick keybindings for the describe-.* functions
- Custom help written by me: *Cheatsheet
- http://pages.sachachua.com/.emacs.d/Sacha.html
- http://ergoemacs.org/emacs/emacs.html
- https://emacsdojo.github.io/
See https://www.reddit.com/r/orgmode/comments/94q55z/combine_superagenda_with_undated_items/e3ptlkm
See https://github.com/gregsexton/origami.el
https://github.com/jethrokuan/.emacs.d/blob/master/config.org#org-mode-for-gtd
https://github.com/myuhe/org-gcal.el
Summary: Store your emacs config as an org file, and choose which bits to load. Requires: org-7.9.3, cl-lib-1.0 Homepage: https://github.com/vapniks/org-dotemacs
Summary: Display org priorities as custom strings Homepage: https://github.com/harrybournis/org-fancy-priorities
https://github.com/thisirs/org-context
https://github.com/IvanMalison/org-projectile This package provides an interface that can be used to capture TODOs with a category that is selected depending on a some piece of Emacs context.
org-doing Summary: Keep track of what you’re doing Homepage: https://github.com/omouse/org-doing
Summary: Redmine tools using Emacs OrgMode Homepage: https://github.com/gongo/org-redmine
- My hands were hurting after long typing sessions. As a computer science student, I forsaw this as being a potentially-huge problem later on in life. So I decided to get a Kinesis Advantage 2 while I was still young, springy, and stupid enough to consider adapting my muscle memory to a new keyboard style. (…but fuck Dvorak. I ain’t crazy enough for Dvorak.) 2 weeks later, my new Kinesis arrived. I plugged her into my Mac, and with a perverse glee, I started up Emacs to see what was broken. Here, I shall document those things.
- First, I live in the U.S. This keyboard therefore shipped with a P.C. layout. I followed the instructions for “Mac Mode”, as per the quickstart guide. It should be noted that before switching, my layout was modified from the stock OS X layout as follows:
- Global modifications:
- I’ve noticed that when coding in a compiled language such as C/C++,
I often end up in this workflow:
- Type some stuff
- Save
- Try compiling
- If compiler errors
- Make note of what’s wrong
- Try to solve the problem
- Try compiling again
- It would be nice to be able to record the flow of [compiler error / troubleshooting idea / fix] for the purposes of version control
- I want a package that will let me have a debugging diary which will archive my code, compiler output, and any thoughts that i’d like to record.
- Ideally, the package would output an org doc with an undo-tree -like interface for retracing my steps in debugging
;; (setq load-path (cons "/usr/share/emacs/site-lisp" load-path))
;; (condition-case () (require 'w3-auto "w3-auto") (error nil))
;; (use-package multiple-cursors
;; :bind (("C-S-c C-S-c" . mc/edit-lines)))
- provides Growl-like notifications
- would be useful for org-calendar
See https://github.com/angrybacon/dotemacs/blob/master/dotemacs.org