Skip to content

Instantly share code, notes, and snippets.

@novoid
Created August 15, 2015 10:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save novoid/cd728e2aca9a399b3a6e to your computer and use it in GitHub Desktop.
Save novoid/cd728e2aca9a399b3a6e to your computer and use it in GitHub Desktop.
CCCamp 2015: Emacs/Org-mode for Skeptic Geeks

CCCamp15: Emacs/Org-mode for Skeptic Geeks

Emacs setup for talk

These are just some settings I copied from my emacs configuration. If you are interested in the whole config file, please do visit https://github.com/novoid/dot-emacs

For task dependencies (TRIGGER, BLOCKED), you have to have org-depend.el activated.

(tool-bar-mode -1) ;; hide icons
(menu-bar-mode 0) ;; hide menu bar
(setq backup-inhibited t);; turn off backup files
(setq calendar-week-start-day 1);; set start of week to Monday (not sunday) http://sunsite.univie.ac.at/textbooks/emacs/emacs_33.html
(setq-default indent-tabs-mode t);; damit C-x r o keine TABs benutzt:
;;(add-hook 'write-file-hooks 'time-stamp)
(setq sentence-end-double-space nil);; do not add double space after periods http://www.reddit.com/r/emacs/comments/2l5gtz/real_sentence_in_emacs/
(setq column-number-mode t);; show current column
(defvar my-elisp-dir "~/.emacs.d-vk/") ;; this is where additional packages are located for this demo

(defun my-load-local-el (part)
  "load lisp file and warn if not found"
  (let ((fullname (concat my-elisp-dir part)))
    (if (file-exists-p fullname)
	(load fullname)
      (message (format "Loading %s (source)...failed" fullname)))))

(global-unset-key (kbd "C-c C-,")); causes error: "Invalid modifier in string"
(define-prefix-command 'my-map)
(define-key my-map "-" 'text-scale-decrease)
(define-key my-map "+" 'text-scale-increase)
(define-key my-map "=" 'text-scale-increase);; because "+" needs "S-=" and I might forget pressing shift

(global-set-key (kbd "C-c C-,") 'my-map)
(global-set-key (kbd "C-c ,") 'my-map)
(my-load-local-el "~/.emacs.d-vk/contrib/org-mode/contrib/lisp/org-checklist.el")
(my-load-local-el "~/.emacs.d-vk/contrib/org-mode/contrib/lisp/org-depend.el")
(autoload 'org-checklist "org-checklist.el")

  ;; http://repo.or.cz/w/org-mode.git?a=blob_plain;f=contrib/lisp/org-expiry.el;hb=HEAD
  ;; Expiry dates handling
  (autoload 'org-expiry "org-expiry.el")
  (setq org-enforce-todo-dependencies t)
  ;; smart navigation
  (setq org-special-ctrl-a/e t)
  (setq org-special-ctrl-k t)
  ;; Standard key bindings
  (global-set-key "\C-cl" 'org-store-link)
  (global-set-key "\C-ca" 'org-agenda)
  (global-set-key "\C-cb" 'org-iswitchb)

  ;; unset C-c , (org-priority) because I get confused when I mistype C-c C-,
  ;;(global-unset-key (kbd "C-c ,"))
  (global-set-key (kbd "C-c ,") 'my-map)

  ;; ######################################################
  ;; remembering positions
  (global-set-key (kbd "C-c %") 'org-mark-ring-push)
  (global-set-key (kbd "C-c <left>") 'org-mark-ring-goto)
  (global-set-key (kbd "C-c <down>") 'org-mark-ring-push)
  (require 'ox-html);; 2014-11-16 if replaced with autoload above, it
                    ;; throws error: "Debugger entered--Lisp error: (void-variable org-latex-classes)"
  (require 'ox-latex)
  (require 'ox-koma-letter)
  ;;(autoload 'ox-beamer "ox-beamer.el")
  (require 'ox-ascii)
  ;;(autoload 'ox-odt "ox-odt.el")
  ;;(autoload 'ox-freemind "ox-freemind.el")
  ;;(autoload 'ox-taskjuggler "ox-taskjuggler.el")

  ;; add bibtex to pdf export method:
  ;; http://orgmode.org/worg/exporters/anno-bib-template-worg.html#sec-5
   (setq org-latex-pdf-process
      '("pdflatex -interaction nonstopmode -output-directory %o %f"
        "bibtex %b"
        "pdflatex -interaction nonstopmode -output-directory %o %f"
        "pdflatex -interaction nonstopmode -output-directory %o %f"))

    (setq org-agenda-files (append (quote (
					   "~/Org-mode_CCCamp15.org"
					   )
					  )
				   )
	  )
  ;; ######################################################
  ;; 2014-06-03: switch to open Agenda or open new one:
  (defun my-buffer-exists (bufname)
    (not (eq nil (get-buffer bufname)))
    )

  (defun my-org-agenda ()
    "Opens the already opened agenda or opens new one instead"
    (interactive)
    (if (my-buffer-exists "*Org Agenda*")
	(switch-to-buffer "*Org Agenda*")
      (org-agenda-list)
      )
    )
  (define-key my-map "a" 'my-org-agenda)

  ;; ######################################################
  ;; 2014-06-28: Memacs org-agenda shortcut
  (defun my-memacs-org-agenda ()
    "Opens an org-agenda with activated archive"
    (interactive)
    (org-agenda-list)
    ;;(call-interactively 'org-agenda-log-mode)
    (org-agenda-log-mode '(4))
    (call-interactively 'org-agenda-archives-mode)
    (org-agenda-archives-mode 'files)
    )
  (define-key my-map "m" 'my-memacs-org-agenda)
  (global-set-key "\C-cm" 'my-memacs-org-agenda)
  (add-hook 'org-babel-after-execute-hook 'org-display-inline-images)

  ;; active Babel languages
  (org-babel-do-load-languages
   'org-babel-load-languages
   '(
     (python . t)
     (ruby . t)
     (gnuplot . t)
     (sh . t)
     (org . t)
     (R . t)
     (emacs-lisp . t)
     (ditaa . t)
     (dot . t)
     (sql . t)
     ))

  ;; Do not prompt to confirm evaluation
  ;; This may be dangerous - make sure you understand the consequences
  ;; of setting this -- see the docstring for details
  (setq org-confirm-babel-evaluate nil)

  ;; http://orgmode.org/manual/Sparse-trees.html#index-org_002dshow_002dentry_002dbelow-179
  (setq org-show-entry-below (quote ((default))))

  ;; http://kitchingroup.cheme.cmu.edu/blog/2014/12/21/Capturing-stderr-from-Python-in-org-mode-take-2/
  (setq org-babel-python-command "python -i -c \"import sys; sys.stderr = sys.stdout\"")

  (setq org-global-properties (quote (("STYLE_ALL" . "habit"))))
  ;; position the habit graph on the agenda to the right of the default
  (setq org-habit-graph-column 50)

<2015-08-13 Thu>-<2015-08-17 Mon> Trip to CCC Camp 2015

http://Orgmode.org

Pack things

  • [ ] Camping stuff
    • [ ] tent
    • [ ] sleeping bag
    • my beloved girlfriend
  • [ ] IT
    1. [ ] Notebook + Battery
    2. [ ] Charging cable
    3. [ ] Phone
    4. [ ] Network cables

Load Car

Drive to Mildenberg

Check free space on laptop

df -h .
du -sc bin .emacs.d-vk *org |grep -v total
pie(dirs[,1], labels = dirs[,2])

Expenses

WhatWhenEuro
Train: Berlin-Mildenberg<2015-08-13 Thu>23
Groceries<2015-08-13 Thu>42
65
FamilyPersonsExpense per Person
Smith26.50
Petersons34.33
52.60

Bonus Topics

http://Orgmode.org

  • MILLIONS of other stuff:
    • tags
    • clocking your business effort
    • e.g., integrate Python script, use its output as input for a perl script, and use this result for a visualization with R
    • reproducible research
    • GANTT export
    • … and much more

How to follow Karl Voit

  • I tweet PIM stuff: @n0v0id
  • I blog about PIM: http://Karl-Voit.at
  • PIM contributions: https://github.com/novoid
    • including: full version of Org-mode demo
    • if I get requests, I’ll create a GitHub repos with this Org-mode file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment