summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dotemacs/.emacs229
1 files changed, 207 insertions, 22 deletions
diff --git a/dotemacs/.emacs b/dotemacs/.emacs
index 9d928fc..6622c01 100644
--- a/dotemacs/.emacs
+++ b/dotemacs/.emacs
@@ -6,6 +6,8 @@
(require 'autopair)
(require 'color-theme)
(require 'flymake)
+(require 'org-install)
+(require 'zenburn)
;; Autoloads
(autoload 'vala-mode
@@ -37,36 +39,200 @@
(run-at-time 0.5 nil 'delete-windwos-on buf)
(message "NO COMPILATION ERRORS!")))
+(defun bh/hide-other ()
+ (interactive)
+ (save-excursion
+ (org-back-to-heading)
+ (org-shifttab)
+ (org-reveal)
+ (org-cycle)))
+
+(defun bh/go-to-scratch ()
+ (interactive)
+ (switch-to-buffer "*scratch*")
+ (delete-other-windows))
+
+(defun bh/untabify ()
+ (interactive)
+ (untabify (point-min) (point-max)))
+
+(defun bh/killframe ()
+ (interactive)
+ (unless (buffer-modified-p)
+ (kill-buffer (current-buffer)))
+ (delete-frame))
+
;; Platform specifics
-(if (eq system-type 'gnu/linux) ; if we're running linux
+(if (eq system-type 'gnu/linux) ; if we're running linux
(set-frame-font "-xos4-terminus-medium-*-*-*-14-*-*-*-*-*-*-*"))
;; Variables
(setq
- inhibit-startup-message t ; don't show welcom screen
- require-final-newline t ; always append a newline to a file, if it doesn't have one
- font-lock-maximum-decoration t ; denotes my interest in maximum possible fontification
- uniquify-buffer-name-style 'reverse ; reverse uniquify file names
- backup-directory-alist `((".*" . ,temporary-file-directory)) ; backup filelocation
- auto-save-file-name-transforms `((".*" ,temporary-file-directory t))) ; autosave file location
-
-(setq-default indent-tabs-mode nil) ; spaces, no tabs
+ inhibit-startup-message t ; don't show welcom screen
+ require-final-newline t ; always append a newline to a file, if
+ ; it doesn't have one
+ font-lock-maximum-decoration t ; denotes my interest in maximum possible
+ ; fontification
+ uniquify-buffer-name-style 'reverse ; reverse uniquify file names
+ backup-directory-alist `((".*" . ,temporary-file-directory))
+ ; backup file location
+ auto-save-file-name-transforms `((".*" ,temporary-file-directory t)))
+ ; autosave file location
+(setq org-todo-keywords (quote ((sequence "TODO(t)"
+ "NEXT(n)"
+ "|" "Done(d!/!)")
+ (sequence "WAITING(w@/!)"
+ "SOMEDAY(s!)"
+ "|" "CANCELLED(c@/!)")
+ (sequence "QUOTE(q!)"
+ "QUOTED(Q!)"
+ "|" "APPROVED(A@)"
+ "EXPIRED(E@)"
+ "REJECTED(R@)")
+ (sequence "OPEN(O)"
+ "|" "CLOSED(C)"))))
+(setq org-todo-keyword-faces
+ (quote (("TODO" :foreground "red" :weight bold)
+ ("NEXT" :foreground "blue" :weight bold)
+ ("DONE" :foreground "forest green" :weight bold)
+ ("WAITING" :foreground "yellow" :weight bold)
+ ("SOMEDAY" :foreground "goldenrod" :weight bold)
+ ("CANCELLED" :foreground "orangered" :weight bold)
+ ("QUOTE" :foreground "hotpink" :weight bold)
+ ("QUOTED" :foreground "indianred1" :weight bold)
+ ("APPROVED" :foreground "forest green" :weight bold)
+ ("EXPIRED" :foreground "olivedrab1" :weight bold)
+ ("REJECTED" :foreground "olivedrab" :weight bold)
+ ("OPEN" :foreground "magenta" :weight bold)
+ ("CLOSED" :foreground "forest green" :weight bold))))
+(setq org-use-fast-todo-selection t)
+(setq org-todo-state-tags-triggers
+ (quote (("CANCELLED"
+ ("CANCELLED" . t))
+ ("WAITING"
+ ("WAITING" . t))
+ ("SOMEDAY"
+ ("WAITING" . t))
+ (done
+ ("WAITING"))
+ ("TODO"
+ ("WAITING")
+ ("CANCELLED"))
+ ("NEXT"
+ ("WAITING"))
+ ("DONE"
+ ("WAITING")
+ ("CANCELED")))))
+(setq org-default-notes-file "~/prj/org/refile.org")
+(setq org-capture-templates (quote (("t" "todo" entry (file "~/prj/org/refile.org") "* TODO %?
+%U
+%a" :clock-in t :clock-resume t)
+ ("n" "note" entry (file "~/prj/org/refile.org") "* %?
+%U
+%a
+:CLOCK:
+:END:" :clock-in t :clock-resume t))))
+(setq org-completion-use-ido t) ; Use IDO for target completion
+(setq org-refile-targets (quote ((org-agenda-files :maxlevel . 5) (nil :maxlevel . 5))))
+ ; Targets include this file and any file
+ ; and any file contributing to the agenda
+ ; - up to 5 levels deep
+(setq org-refile-use-outline-path (quote file))
+ ; Targets start with the file name -
+ ; allows creating level 1 tasks
+(setq org-outline-path-complete-in-steps t)
+ ; Targets complete in steps so we start
+ ; with filename, TAB shows the next
+ ; level of targets etc
+(setq org-refile-allow-creating-parent-nodes (quote confirm))
+ ; Allow refile to create parent tasks
+ ; with confirmation
+(setq org-agenda-custom-commands
+ (quote (("w" "Tasks waiting on something" tags "WAITING/!"
+ ((org-use-tag-inheritance nil)
+ (org-agenda-todo-ignore-scheduled nil)
+ (org-agenda-todo-ignore-deadlines nil)
+ (org-agenda-todo-ignore-with-date nil)
+ (org-agenda-overriding-header "Waiting Tasks")))
+ ("r" "Refile New Notes and Tasks" tags "LEVEL=1+REFILE"
+ ((org-agenda-todo-ignore-with-date nil)
+ (org-agenda-todo-ignore-deadlines nil)
+ (org-agenda-todo-ignore-scheduled nil)
+ (org-agenda-overriding-header "Tasks to Refile")))
+ ("N" "Notes" tags "NOTE"
+ ((org-agenda-overriding-header "Notes")))
+ ("n" "Next" tags-todo "-WAITING-CANCELLED/!NEXT"
+ ((org-agenda-overriding-heaer "Next Tasks")))
+ ("p" "Projects" tags-todo "LEVEL=2-REFILE|LEVEL=1+REFILE/!-DONE-CANCELLED"
+ (;(org-agenda-skip-function 'bh/skip-non-projects)
+ (org-agenda-overriding-header "Projects")))
+ ("o" "other (Non-Project) tasks" tags-todo "LEVEL=2-REFILE|LEVEL=1+REFILE/!-DONE-CANCELLED"
+ (;(org-agenda-skip-function 'bh/skip-projects)
+ (org-agenda-overriding-header "Other Non-Project Tasks")))
+ ("A" "Tasks to be Archived" tags "LEVEL=2-REFILE/DONE|CANCELLED"
+ ((org-agenda-overriding-header "Tasks to Archive")))
+ ("h" "Habits" tags "STYLE=\"habit\""
+ ((org-agenda-todo-ignore-with-date nil)
+ (org-agenda-todo-ignore-scheduled nil)
+ (org-agenda-todo-ignore-deadlines nil)
+ (org-agenda-overriding-header "Habits")))
+ ("#" "Stuck Projects" tags-todo "LEVEL=2-REFILE|LEVEL=1+REFILE/!-DONE-CANCELLED"
+ ((org-agenda-skip-function 'bh/skip-non-stuck-projects)
+ (org-agenda-overriding-header "Stuck Projects")))
+ ("c" "Select default clocking task" tags "LEVEL=2-REFILE"
+ ((org-agenda-skip-function
+ '(org-agenda-skip-subree-if 'notregexp "^\\*\\* Organization"))
+ (org-agenda-overriding-header "Set default clocking task with C-u C-u I"))))))
+(setq-default indent-tabs-mode nil) ; spaces, no tabs
-(fset 'yes-or-no-p 'y-or-n-p) ; switch yes or no answers to y or n answers
+(fset 'yes-or-no-p 'y-or-n-p) ; switch yes or no answers to y or n
+ ; answers
;; Mode settings
-( tool-bar-mode -1) ; no toolbar
-( menu-bar-mode -1) ; no menu
-( line-number-mode -1) ; don't show line numbers in splitter
-( global-linum-mode t) ; show line numbers in gutter
-( column-number-mode t) ; show column numbers in splitter
-(global-font-lock-mode t) ; show syntax highlighting
-( show-paren-mode t) ; show matching parens
-( autopair-global-mode) ; enable autopair mode
-(delete-selection-mode t) ; delete selection upon typing
+( tool-bar-mode -1) ; no toolbar
+( menu-bar-mode -1) ; no menu
+( line-number-mode -1) ; don't show line numbers in splitter
+( global-linum-mode t) ; show line numbers in gutter
+( column-number-mode t) ; show column numbers in splitter
+(global-font-lock-mode t) ; show syntax highlighting
+( show-paren-mode t) ; show matching parens
+( autopair-global-mode) ; enable autopair mode
+(delete-selection-mode t) ; delete selection upon typing
;; Keybindings
-(global-set-key "\C-m" 'newline-and-indent) ; Automatically indent on newline
+(global-set-key "\C-m" 'newline-and-indent) ; Automatically indent on newline
+;;; Org Mode
+(global-set-key "\C-cl" 'org-store-link)
+(global-set-key "\C-ca" 'org-agenda)
+(global-set-key "\C-cb" 'org-iswitchb)
+(global-set-key (kbd "<f12>") 'org-agenda)
+;(global-set-key (kbd "<f5>") 'bh/org-todo)
+;(global-set-key (kbd "<S-f5>") 'bh/widen)
+(global-set-key (kbd "<f7>") 'set-truncate-lines)
+(global-set-key (kbd "<f8>") 'org-cycle-agenda-files)
+;(global-set-key (kbd "<f9> b") 'bbdb)
+(global-set-key (kbd "<f9> c") 'calendar)
+(global-set-key (kbd "<f9> f") 'boxquote-insert-file)
+;(global-set-key (kbd "<f9> g") 'gnus)
+(global-set-key (kbd "<f9> h") 'bh/hide-other)
+;(global-set-key (kbd "<f9> i") 'bh/org-info)
+;(global-set-key (kbd "<f9> I") 'bh/clock-in)
+;(global-set-key (kbd "<f9> O") 'bh/clock-out)
+(global-set-key (kbd "<f9> r") 'boxquote-region)
+(global-set-key (kbd "<f9> s") 'bh/go-to-scratch)
+;(global-set-key (kbd "<f9> t") 'bh/insert-inactive-timestamp)
+(global-set-key (kbd "<f9> u") 'bh/untabify)
+(global-set-key (kbd "<f9> v") 'visible-mode)
+;(global-set-key (kbd "<f9> SPC") 'bh/clock-in-last-task)
+(global-set-key (kbd "C-<f9>") 'previous-buffer)
+(global-set-key (kbd "C-x n r") 'narrow-to-region)
+(global-set-key (kbd "C-<f10>") 'next-buffer)
+(global-set-key (kbd "<f11>") 'org-clock-goto)
+(global-set-key (kbd "C-<f11>") 'org-clock-in)
+(global-set-key (kbd "C-s-<f12>") 'bh/save-then-publish)
+(global-set-key (kbd "M-<f11>") 'org-resolve-clocks)
+(global-set-key (kbd "C-M-r") 'org-capture)
+(global-set-key (kbd "M-<f9>") 'bh/killframe)
;; File associations
(add-to-list 'auto-mode-alist '("\\.vala$" . vala-mode))
@@ -80,8 +246,27 @@
(add-to-list 'compilation-finish-functions 'my-comp-finish-function)
;; Color theme
-(require 'color-theme-weirdness)
-(color-theme-weirdness)
+;;(require 'color-theme-weirdness)
+(color-theme-zenburn)
;; Hooks
(add-hook 'find-file-hook 'flymake-find-file-hook)
+(add-hook 'org-mode-hook
+ (lambda ()
+ (flyspell-mode 1)
+ (auto-fill-mode 1)))
+(add-hook 'css-mode-hook (lambda ()
+ (rainbow-mode)))
+
+(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.
+ '(org-agenda-files (quote ("~/prj/org/tgn.org" "~/Documents/iACTOR/tasks.org" "~/prj/org/seiko.org" "~/prj/org/projects.org" "~/prj/org/refile.org" "~/prj/org/aethon.org"))))
+(custom-set-faces
+ ;; custom-set-faces 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.
+ )