emacs - enable debug error
[dotfiles.git] / emacs.d / config.org
index 4e49685..bd6cf01 100644 (file)
@@ -38,7 +38,7 @@ Set system PATH and emacs exec path
       (menu-bar-mode 1)
     (menu-bar-mode 0))
 
-  ;; (setq debug-on-error t)
+  (setq debug-on-error t)
   (setq inhibit-startup-message t)
 
   (defalias 'yes-or-no-p 'y-or-n-p)
@@ -155,15 +155,11 @@ Check out [[http://tapoueh.org/emacs/el-get.html][el-get]].
 #+END_SRC
 
 ** Smart Comments
-
 [[https://github.com/paldepind/smart-comment][smart-comments]]
-
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-
   (use-package smart-comment
     :ensure t
     :bind ("M-;" . smart-conmment))
-
 #+END_SRC
 
 ** Font Setting
@@ -185,11 +181,11 @@ Check out [[http://tapoueh.org/emacs/el-get.html][el-get]].
 
 Setting the fonts alignment issue
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-   (if window-system
-       (when sd/fixed-font-family
-         (set-frame-font sd/fixed-font-family)
-         (set-face-attribute 'default nil :font sd/fixed-font-family :height 120)
-         (set-face-font 'default sd/fixed-font-family)))
+  (if window-system
+      (when sd/fixed-font-family
+        (set-frame-font sd/fixed-font-family)
+        (set-face-attribute 'default nil :font sd/fixed-font-family :height 140)
+        (set-face-font 'default sd/fixed-font-family)))
 #+END_SRC
 
 *** Chinese fonts
@@ -586,13 +582,15 @@ Fix the issue in mode line when showing triangle
 
 set height in mode line
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  (set-variable 'powerline-height 14)
-  (set-variable 'powerline-text-scale-factor (/ (float 100) 140))
-  ;; (custom-set-variables
-  ;;  '(powerline-height 14)
-  ;;  '(powerline-text-scale-factor (/ (float 100) 140)))
-  ;; 100/140;0.8
-  (set-face-attribute 'mode-line nil :height 100)
+  (with-eval-after-load "powerline"
+    (if window-system
+        (progn 
+          (let* ((base-font-size (face-attribute 'default :height)))
+            ;; 100/140;0.8
+            (set-variable 'powerline-height (/ base-font-size 10))
+            (set-variable 'powerline-text-scale-factor (/ (float 100) base-font-size)))
+          (set-face-attribute 'mode-line nil :height 100)
+          (set-face-attribute 'mode-line-inactive nil :height 100))))
 #+END_SRC
 
 * IDO & SMEX
@@ -730,12 +728,13 @@ Always indents header, and hide header leading starts so that no need type =#+ST
     (setq org-completion-use-ido t)
     (setq org-startup-with-inline-images t)
     ;; latex preview
-    (setq org-startup-with-latex-preview t)
-    (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.2))
+    ;; (setq org-startup-with-latex-preview t)
+    ;; (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.2))
     (require 'org-habit)
     (add-to-list 'org-modules 'org-habit)
     (setq org-habit-graph-column 50)
-    (setq org-hide-emphasis-markers t))
+    (setq org-hide-emphasis-markers t)
+    (setq org-html-validation-link nil))
 
   (el-get-bundle hasu/emacs-ob-racket
     :features ob-racket)
@@ -756,7 +755,8 @@ Always indents header, and hide header leading starts so that no need type =#+ST
                                  (sqlite . t)
                                  (js . t)
                                  (gnuplot . t)
-                                 (ditaa . t)))
+                                 (ditaa . t)
+                                 (plantuml . t)))
 
   ;; use current window for org source buffer editting
   (setq org-src-window-setup 'current-window )
@@ -776,6 +776,24 @@ Always indents header, and hide header leading starts so that no need type =#+ST
     :ensure t)
 #+END_SRC
 
+*** plantUML
+[[http://eschulte.github.io/babel-dev/DONE-integrate-plantuml-support.html][DONE-integrate-plantuml-support]]
+#+BEGIN_SRC sh
+  ## support plantuml
+  brew install plantuml
+#+END_SRC
+
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (use-package plantuml-mode
+    :ensure t)
+
+  (setq org-plantuml-jar-path
+        (expand-file-name "/usr/local/Cellar/plantuml/8041/plantuml.8041.jar"))
+
+  (set-variable 'plantuml-jar-path
+                (expand-file-name "/usr/local/Cellar/plantuml/8041/plantuml.8041.jar"))
+#+END_SRC
+
 ** Org-bullets
 use [[https://github.com/sabof/org-bullets][org-bullets]] package to show utf-8 charactes
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
@@ -789,7 +807,7 @@ use [[https://github.com/sabof/org-bullets][org-bullets]] package to show utf-8
   (setq org-bullets-bullet-list '("⦿" "✪" "◉" "○" "►" "◆"))
 
   ;; increase font size when enter org-src-mode
-  (add-hook 'org-src-mode-hook (lambda () (text-scale-increase 2)))
+  ;; (add-hook 'org-src-mode-hook (lambda () (text-scale-increase 2)))
 #+END_SRC
 
 ** Worf Mode
@@ -1083,41 +1101,91 @@ extend org-mode's easy templates, refer to [[http://coldnew.github.io/coldnew-em
                '("C" "#+BEGIN_SRC c :tangle ?\n\n#+END_SRC"))
   (add-to-list 'org-structure-template-alist
                '("m" "\\begin{equation}\n?\n\\end{equation}"))
+
+  (add-to-list 'org-structure-template-alist
+               '("b" "#+STARTUP: showall
+  ,#+STARTUP: inlineimages
+  ,#+OPTIONS: toc:nil\n"))
 #+END_SRC
 
 ** Org theme
+*** variable-pitch-mode and fixed-pitch-mode
+[[https://yoo2080.wordpress.com/2013/05/30/monospace-font-in-tables-and-source-code-blocks-in-org-mode-proportional-font-in-other-parts/][monospace font in tables and source code blocks in org-mode, proportional font in other parts]]
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (set-face-attribute 'variable-pitch nil :font "Calibri" :height 160)
-  (set-face-attribute 'fixed-pitch nil :font "Source Code Pro" :height 120)
+  (set-face-attribute 'fixed-pitch nil :font "Source Code Pro" :height (face-attribute 'default :height))
 
   (add-hook 'text-mode-hook 'variable-pitch-mode)
 
   ;; Install Ubuntu Mono fonts and apply it in org-table to align Chinese fonts
   (with-eval-after-load "org"
-    (set-face-attribute 'org-code nil :inherit 'fixed-pitch)
-    (set-face-attribute 'org-block nil :inherit 'fixed-pitch)
-    (set-face-attribute 'org-table nil :family "Ubuntu Mono" :height 120)
-    (set-face-attribute 'org-block-background nil :inherit 'fixed-pitch)
+    (mapc (lambda (face)
+            (set-face-attribute face nil :inherit 'fixed-pitch))
+          (list 'org-code 'org-block 'org-block-background))
+    (set-face-attribute 'org-table nil :family "Ubuntu Mono" :height 140)
+    
     ;; fix indent broken by variable-pitch-mode
     ;; http://emacs.stackexchange.com/questions/26864/variable-pitch-face-breaking-indentation-in-org-mode
     (require 'org-indent)
     (set-face-attribute 'org-indent nil :inherit '(org-hide fixed-pitch)))
 #+END_SRC
 
-*** variable-pich mode
-[[https://yoo2080.wordpress.com/2013/05/30/monospace-font-in-tables-and-source-code-blocks-in-org-mode-proportional-font-in-other-parts/][monospace font in tables and source code blocks in org-mode, proportional font in other parts]]
+Also correct the face of  =org-meta-line= in =org-table= 
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-;  (set-face-attribute 'variable-pitch nil :font "Calibri" :height 160)
-;  (set-face-attribute 'fixed-pitch nil :font "Source Code Pro" :height 130)
-
-
-  ;; (add-hook 'text-mode-hook 'variable-pitch-mode)
+  (with-eval-after-load "org"
+    (set-face-attribute 'org-meta-line nil :font "Source Code Pro" :height 120 :slant 'italic :inherit 'font-lock-comment-face))
+#+END_SRC
 
-  ;; monospace mode for block in org-mode
-  ;; (with-eval-after-load "org"
-  ;;   (mapc (lambda (face)
-  ;;           (set-face-attribute face nil :inherit 'fixed-pitch))
-  ;;         (list 'org-code 'org-block 'org-table 'org-block-background)))
+*** Org-head face
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (with-eval-after-load "org"
+    (let* ((base-height (face-attribute 'variable-pitch :height))
+           (base-font-color (face-foreground 'default nil  'default)))
+      (set-face-attribute 'org-document-title nil :weight 'bold :height (+ 60 base-height))
+      (set-face-attribute 'org-level-1 nil :weight 'bold :height (+ 40 base-height))
+      (set-face-attribute 'org-level-2 nil :weight 'bold :height (+ 30 base-height))
+      (set-face-attribute 'org-level-3 nil :weight 'bold :height (+ 20 base-height))
+      (set-face-attribute 'org-level-4 nil :weight 'bold :height (+ 10 base-height))
+      (set-face-attribute 'org-level-5 nil :weight 'bold)
+      (set-face-attribute 'org-level-6 nil :weight 'bold)
+      (set-face-attribute 'org-level-7 nil :weight 'bold)
+      (set-face-attribute 'org-level-8 nil :weight 'bold)))
+#+END_SRC
+
+** Org Blog
+Refer to [[http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html][org-publish-html-tutorial]], and [[https://ogbe.net/blog/blogging_with_org.html][blogging_with_org]]
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (require 'ox-publish)
+
+  (setq org-publish-project-alist
+        `(
+          ("org-notes"
+           :base-directory "~/Private/blog/"
+           :base-extension "org"
+           :publishing-directory "~/Private/publish_html"
+           :recursive t
+           :publishing-function org-html-publish-to-html
+           :headline-levels 4
+           :section-numbers nil
+           :auto-preamble t
+           :auto-sitemap t          ;Generate sitmap.org automagicaly...
+           :sitemap-filename "sitemap.org" ;... call it sitemap.org (it's the default )...
+           :sitemap-title "Sitemap"
+
+           :html-table-of-contents nil
+           :html-postamble nil ;dont export creator auto validation info in html postamble div
+           :html-link-home "/"
+           :html-head "<link rel='stylesheet' href='./css/worg.css' />"
+           :html-head-include-default-style nil
+           :html-head-include-scripts nil)
+          ("org-static"
+           :base-directory "~/Private/blog/"
+           :base-extension "css\\|js\\|png\\|gif\\|pdf\\|mp3\\|ogg\\|swf"
+           :publishing-directory "~/Private/publish_html"
+           :recursive t
+           :publishing-function org-publish-attachment
+           :table-of-contents nil)
+          ("org" :components ("org-notes" "org-static"))))
 #+END_SRC
 
 * Magit
@@ -1590,6 +1658,26 @@ as a http download client tool
                                   (car (last (split-string url "/" t))))))))))
 #+END_SRC
 
+** Elscreen
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (use-package elscreen
+    :ensure t
+    :init
+    (setq elscreen-tab-display-control nil)
+    :config
+    (elscreen-start)
+    (set-face-attribute 'elscreen-tab-current-screen-face nil :foreground "black" :background "yellow")
+    (set-face-attribute 'elscreen-tab-other-screen-face nil :foreground "black" :background "disabledControlTextColor" :underline nil)
+    ;; (global-unset-key (kbd)); M-TAB switch screen
+    (global-set-key (kbd "s-`") '(lambda () (interactive) (elscreen-goto 0)))
+    (dotimes (i 8)
+      (global-set-key (kbd (concat "s-" (number-to-string (+ i 1))))
+                      `(lambda () (interactive) (elscreen-goto ,(+ i 1)))))
+    (global-set-key (kbd "s-t") 'elscreen-create)
+    (global-set-key (kbd "s-n") 'elscreen-next)
+    (global-set-key (kbd "s-p") 'elscreen-previous))
+#+END_SRC
+
 * Dired
 ** Dired bindings
 =C-o= is defined as a global key for window operation, here unset it in dired mode
@@ -1799,11 +1887,12 @@ here on Mac, just use "open" commands to pen =.pdf=,  =.html= and image files
     (define-key company-active-map (kbd "M-p") nil)
     (define-key company-active-map (kbd "C-n") #'company-select-next)
     (define-key company-active-map (kbd "C-p") #'company-select-previous)
-     ;; should map both (kbd "TAB") and [tab],https://github.com/company-mode/company-mode/issues/75
+    ;; should map both (kbd "TAB") and [tab],https://github.com/company-mode/company-mode/issues/75
     (define-key company-active-map (kbd "TAB") #'company-complete-selection)
     (define-key company-active-map [tab] #'company-complete-selection)
     (global-company-mode)
-    (setq company-global-modes '(not org-mode magit-status-mode)))
+    ;; magig-commit is text-modeh
+    (setq company-global-modes '(not org-mode magit-status-mode text-mode eshell-mode)))
 
   (use-package company-statistics
     :ensure t
@@ -2736,8 +2825,9 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
     :config
     (persp-mode)
     :bind
-    (:map projectile-mode-map
-          ("s-t" . projectile-persp-switch-project)))
+    ;; (:map projectile-mode-map
+    ;;       ("s-t" . projectile-persp-switch-project))
+    )
 
   ;; change default-directory of scratch buffer to projectile-project-root 
   (defun sd/project-switch-action ()
@@ -2764,71 +2854,16 @@ Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
   (global-set-key (kbd "<s-return>") 'toggle-frame-fullscreen)
 
   (global-set-key (kbd "s-f") 'projectile-find-file)
-  (global-set-key (kbd "s-`") 'mode-line-other-buffer)
+  ;; (global-set-key (kbd "s-`") 'mode-line-other-buffer)
 
-  (global-set-key (kbd "s-n") 'persp-next)
-  (global-set-key (kbd "s-p") 'persp-prev)
-  (global-set-key (kbd "s-;") 'persp-switch-last)
+  ;; (global-set-key (kbd "s-n") 'persp-next)
+  ;; (global-set-key (kbd "s-p") 'persp-prev)
+  ;; (global-set-key (kbd "s-;") 'persp-switch-last)
 
   (global-set-key (kbd "s-=") 'text-scale-increase)
   (global-set-key (kbd "s--") 'text-scale-decrease)
 
   ;; (global-set-key (kbd "s-u") 'undo-tree-visualize)
-
-
-  ;; someothers default mapping on super (command) key
-  ;; s-s save-buffer
-  ;; s-k kill-this-buffer
-
-
-  ;; s-h  -->  ns-do-hide-emacs
-  ;; s-j  -->  ido-switch-buffer  +
-  ;; s-k  -->  kill-this-buffer
-  ;; s-l  -->  goto-line
-  ;; s-;  -->  undefined
-  ;; s-'  -->  next-multiframe-window
-  ;; s-ret --> toggle-frame-fullscreen +
-
-  ;; s-y  -->  ns-paste-secondary
-  ;; s-u  -->  revert-buffer
-  ;; s-i  -->  undefined - but used for iterm globally
-  ;; s-o  -->  used for emacs globally
-  ;; s-p  -->  projectile-persp-switch-project  +  
-  ;; s-[  -->  next-buffer  +    
-  ;; s-]  -->  previous-buffer +
-
-  ;; s-0  -->  undefined
-  ;; s-9  -->  undefined
-  ;; s-8  -->  undefined
-  ;; s-7  -->  undefined
-  ;; s-6  -->  undefined
-  ;; s--  -->  center-line
-  ;; s-=  -->  undefined
-
-  ;; s-n  -->  make-frame
-  ;; s-m  -->  iconify-frame
-  ;; s-b  -->  undefined
-  ;; s-,  -->  customize
-  ;; s-.  -->  undefined
-  ;; s-/  -->  undefined
-
-  ;; s-g  -->  isearch-repeat-forward
-  ;; s-f  -->  projectile-find-file   +
-  ;; s-d  -->  isearch-repeat-background
-  ;; s-s  -->  save-buffer
-  ;; s-a  -->  make-whole-buffer
-
-  ;; s-b  -->  undefined
-  ;; s-v  -->  yank
-  ;; s-c  -->  ns-copy-including-secondary
-
-  ;; s-t  -->  ns-popup-font-panel
-  ;; s-r  -->  undefined
-  ;; s-e  -->  isearch-yanqk-kill
-  ;; s-w  -->  delete-frame
-  ;; s-q  -->  same-buffers-kill-emacs
-
-  ;; s-`  -->  other-frame
 #+END_SRC
 
 ** Windown & Buffer - =C-o=
@@ -2899,6 +2934,7 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del
     ("C-b" ido-switch-buffer nil :exit t)
     ("C-f" projectile-find-file nil :exit t)
     ("C-p" persp-switch :exit t)
+    ("C-t" projectile-persp-switch-project nil :exit t)
 
     ;; other special buffers
     ("d" sd/project-or-dired-jump nil :exit t)
@@ -3368,10 +3404,12 @@ Refer [[https://github.com/fnwiya/dotfiles/blob/c9ca79f1b22c919d9f4c3a0f944ba828
 #+END_SRC
 
 * TODO todolist
-** rucket
+** Rucket
 ** player video on iphone for 
 ** SICP
 ** music searcher
 search music on some music web site
 
 
+
+** Need separate the Key-bindings and package-initialization