       (setq font-lock-maximum-decoration (quote ((dired-mode . nil) (t . t)))   ; turn off barf colors
             diredp-hide-details-initially-flag t
             diredp-image-preview-in-tooltip 400
-            diredp-auto-focus-frame-for-thumbnail-tooltip-flag t)))
+            diredp-auto-focus-frame-for-thumbnail-tooltip-flag t))
   :ensure nil)
 
 (use-package flyspell
   :commands ( flyspell-prog-mode flyspell-mode flyspell-auto-correct-previous-word flyspell-correct-previous-word-generic)
   :init
-  (progn
-    (setq ispell-personal-dictionary (expand-file-name "hunspell/words" me:config-directory))
-    (add-hook 'prog-mode-hook #'flyspell-prog-mode)
-    (add-hook 'text-mode-hook #'flyspell-mode))
-  :config
-  (progn
-    (use-package flyspell-correct-ivy :demand)
-    ;; setup spell check, prefer hunspell
-    (cond
-      ((executable-find "hunspell")
-        (setq ispell-program-name "hunspell")
-        (setq ispell-local-dictionary "en_US")
-        (setq ispell-local-dictionary-alist
-              ;; Please note the list `("-d" "en_US")` contains ACTUAL parameters passed to hunspell
-              ;; You could use `("-d" "en_US,en_US-med")` to check with multiple dictionaries
-              '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US") nil utf-8)
-                )))
-      ((executable-find "aspell")
-        (setq ispell-program-name "aspell")
-        ;; Please note ispell-extra-args contains ACTUAL parameters passed to aspell
-        (setq ispell-extra-args '("--sug-mode=ultra" "--lang=en_US")))))
+  (setq ispell-personal-dictionary (expand-file-name "hunspell/words" me:config-directory))
+  (add-hook 'prog-mode-hook #'flyspell-prog-mode)
+  (add-hook 'text-mode-hook #'flyspell-mode)
+  :config
+  (use-package flyspell-correct-ivy :demand)
+  ;; setup spell check, prefer hunspell
+  (cond
+    ((executable-find "hunspell")
+      (setq ispell-program-name "hunspell")
+      (setq ispell-local-dictionary "en_US")
+      (setq ispell-local-dictionary-alist
+            ;; Please note the list `("-d" "en_US")` contains ACTUAL parameters passed to hunspell
+            ;; You could use `("-d" "en_US,en_US-med")` to check with multiple dictionaries
+            '(("en_US" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-d" "en_US") nil utf-8)
+              )))
+    ((executable-find "aspell")
+      (setq ispell-program-name "aspell")
+      ;; Please note ispell-extra-args contains ACTUAL parameters passed to aspell
+      (setq ispell-extra-args '("--sug-mode=ultra" "--lang=en_US"))))
   :diminish (flyspell-mode . "Ⓢ"))
 
 (use-package ivy

  :commands compile
  :config
  :init
  (progn
    (defun me:rotate-skip-threshold ()
      (interactive)
      (compilation-set-skip-threshold
       (cond ((= compilation-skip-threshold 1) 2)
             ((= compilation-skip-threshold 2) 0)
             (t 1))))
    (setq compilation-scroll-output t
          compilation-ask-about-save nil    ; save all modified
          compilation-auto-jump-to-first-error t
          compilation-finish-functions
          (lambda (buf str)
            (compilation-set-skip-threshold 1)
            (if (null (string-match ".*exited abnormally.*" str))
                ;;if no errors, make the compilation window go away in a few seconds
                (progn
                  (run-at-time "2 sec" nil 'delete-windows-on (get-buffer-create "*compilation*"))
                  (message "No Compilation Errors!"))
          compilation-skip-threshold 2)))
    (add-hook 'compilation-start-hook
              (lambda (proc) (compilation-set-skip-threshold 2)))
    (add-hook 'compilation-mode-hook
      (lambda ()
        (define-key compilation-mode-map (kbd "g") nil)
        (define-key compilation-mode-map (kbd "j") nil)
        (define-key compilation-mode-map (kbd "k") nil)
        (define-key compilation-mode-map (kbd "h") nil)
        (define-key compilation-mode-map (kbd "l") nil)
        (define-key compilation-mode-map (kbd "<spc>") nil)
        (define-key compilation-mode-map (kbd "<tab>") #'me:rotate-skip-threshold)
        (define-key compilation-mode-map (kbd ";") #'next-error-follow-minor-mode)
        (define-key compilation-mode-map (kbd "<up>") #'compilation-previous-error)
        (define-key compilation-mode-map (kbd "<down>") #'compilation-next-error)
        (define-key compilation-mode-map (kbd "<prior>") #'compilation-previous-file)
        (define-key compilation-mode-map (kbd "<next>") #'compilation-next-file)))))

;; view symbols of libraries
(use-package elf-mode

  (setq woman-use-topic-at-point t                          ; man page on word at point if exists
        Man-notify-method 'aggressive)                      ; show&select man page in other window
  :config
  (set-face-attribute 'Man-overstrike nil :inherit font-lock-type-face :bold t)
  (set-face-attribute 'Man-underline nil :inherit font-lock-keyword-face :underline t))

(use-package doc-view
  :ensure nil
  :config
  :init
  (setq doc-view-continuous t
        doc-view-resolution 144)
  :bind
  (:map doc-view-mode-map
        ("j" . doc-view-next-line-or-next-page)
