;; The following lines are always needed. Choose your own keys.
(add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode))
(require 'org)
+(require 'org-agenda)
+(require 'org-habit)
+(eval-when-compile
+ (require 'cl))
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)
"~/projects/org-notes/wildman.org"
"~/projects/org-notes/uddin.org"
"~/projects/org-notes/reviews.org"
+ "~/projects/org-notes/hpcbio.org"
"~/projects/org-notes/fh.org")))
(set-register ?n (cons 'file "~/projects/org-notes/notes.org"))
"* TODO Review %c\n%U\n" :immediate-finish t)
("M" "Meeting" entry (file "~/projects/org-notes/refile.org")
"* MEETING with %? :MEETING:\n%U" :clock-in t :clock-resume t)
+ ("S" "Seminar" entry (file "~/projects/org-notes/refile.org")
+ "* SEMINAR notes %? :SEMINAR:\n%U" :clock-in t :clock-resume t)
+ ("P" "Paper to read" entry (file+headline "~/projects/research/papers_to_read.org" "Refile")
+ "* TODO Get/Read %? \n%U" :clock-in t :clock-resume t)
("p" "Phone call" entry (file "~/projects/org-notes/refile.org")
"* PHONE %? :PHONE:\n%U" :clock-in t :clock-resume t)
("J" "job" entry (file "~/projects/org-notes/refile.org")
- "* TODO Apply for %a%? :job:\nSCHEDULED: %(format-time-string \"<%Y-%m-%d %a 17:00-17:30>\")\n%U\n" :clock-in t :clock-resume t)
+ "* TODO Apply for %a%? :job:\nSCHEDULED: %(format-time-string \"<%Y-%m-%d 17:00-17:30>\")\n%U\n%a\n" :clock-in t :clock-resume t)
("h" "Habit" entry (file "~/projects/org-notes/refile.org")
- "* NEXT %?\n%U\n%a\nSCHEDULED: %(format-time-string \"<%Y-%m-%d %a .+1d/3d>\")\n:PROPERTIES:\n:STYLE: habit\n:REPEAT_TO_STATE: NEXT\n:END:\n")
+ "* NEXT %?\n%U\n%a\nSCHEDULED: %(format-time-string \"<%Y-%m-%d .+1d/3d>\")\n:PROPERTIES:\n:STYLE: habit\n:REPEAT_TO_STATE: NEXT\n:END:\n%a\n")
)
)
(interactive)
(save-excursion
(beginning-of-line 0)
- (org-remove-empty-drawer-at "LOGBOOK" (point))))
+ (org-remove-empty-drawer-at (point))))
(defun my/org-add-id ()
(interactive)
; change the outline mode prefix from C-c @ to C-c C-2
(setq outline-minor-mode-prefix "C-c C-2")
-(add-hook 'outline-minor-mode-hook
- (lambda () (local-set-key (kbd "C-c C-2")
- outline-mode-prefix-map)))
+;(add-hook 'outline-minor-mode-hook
+; (lambda () (local-set-key (kbd "C-c C-2")
+; outline-mode-prefix-map)))
(global-set-key (kbd "<f9> I") 'bh/punch-in)
(global-set-key (kbd "<f9> O") 'bh/punch-out)
-(add-hook 'org-clock-out-hook 'bh/remove-empty-drawer-on-clock-out 'append)
+; (add-hook 'org-clock-out-hook 'bh/remove-empty-drawer-on-clock-out 'append)
; add ids on creation of nodes
(add-hook 'org-capture-prepare-finalize-hook 'my/org-add-id)
; create function to create headlines in file. This comes from
;; from Mutt, and that it will shut down emacsclient once finished;
;; fallback to legacy behavior when not invoked via org-protocol.
(require 'org-protocol)
-(add-hook 'org-capture-mode-hook 'delete-other-windows)
+; (add-hook 'org-capture-mode-hook 'delete-other-windows)
(setq my-org-protocol-flag nil)
(defadvice org-capture-finalize (after delete-frame-at-end activate)
"Delete frame at remember finalization"
; I pretty much always want hiearchical checkboxes
(setq org-hierachical-checkbox-statistics nil)
-
-;; stolen from
+
+;; Add \begin{equation}\end{equation} templates to the org mode easy templates
+(add-to-list 'org-structure-template-alist
+ '("E" "\\begin{equation}\n?\n\\end{equation}"))
+
+ ;; stolen from
;; http://www-public.it-sudparis.eu/~berger_o/weblog/2012/03/23/how-to-manage-and-export-bibliographic-notesrefs-in-org-mode/
(defun my-rtcite-export-handler (path desc format)
(message "my-rtcite-export-handler is called : path = %s, desc = %s, format = %s" path desc format)
;; Default packages included in /every/ tex file, latex, pdflatex or xelatex
(setq org-latex-default-packages-alist
- '())
+ '(("" "amsmath" t)))
(setq org-latex-packages-alist
'(("" "graphicx" t)
("" "fontspec" t)
(not org-clock-resolving-clocks-due-to-idleness))
(bh/clock-in-parent-task)))
-(add-hook 'org-clock-out-hook 'bh/clock-out-maybe 'append)
+; (add-hook 'org-clock-out-hook 'bh/clock-out-maybe 'append)
(require 'org-id)
(defun bh/clock-in-task-by-id (id)
(org-clock-in nil))))
+(defun org-export-to-ods ()
+ (interactive)
+ (let ((csv-file "data.csv"))
+ (org-table-export csv-file "orgtbl-to-csv")
+ (org-odt-convert csv-file "ods" 'open)))
+
; allow for zero-width-space to be a break in regexp too
-(setcar org-emphasis-regexp-components " [:space:] \t('\"{")
-(setcar (nthcdr 1 org-emphasis-regexp-components) " [:space:]- \t.,:!?;'\")}\\")
-(org-set-emph-re 'org-emphasis-regexp-components org-emphasis-regexp-components)
+; (setcar org-emphasis-regexp-components " [:space:] \t('\"{")
+; (setcar (nthcdr 1 org-emphasis-regexp-components) " [:space:]- \t.,:!?;'\")}\\")
+; (org-set-emph-re 'org-emphasis-regexp-components org-emphasis-regexp-components)
+
+;; support inserting screen shots
+(defun my/org-insert-screenshot ()
+ "Take a screenshot into a time stamped unique-named file in the
+same directory as the org-buffer and insert a link to this file."
+ (interactive)
+ (defvar my/org-insert-screenshot/filename)
+ (setq my/org-insert-screenshot/filename
+ (read-file-name
+ "Screenshot to insert: "
+ nil
+ (concat (buffer-file-name) "_" (format-time-string "%Y%m%d_%H%M%S") ".png")
+ )
+ )
+ (call-process "import" nil nil nil my/org-insert-screenshot/filename)
+ (insert (concat "[[" my/org-insert-screenshot/filename "]]"))
+ (org-display-inline-images))