emacs - fix the bug modeline modified indicator not show readly when the
[dotfiles.git] / emacs.d / config.org
index 8ee6f53..f0a8f95 100644 (file)
@@ -437,7 +437,7 @@ Revised powerline-center-theme
     :group 'powerline)
 
   ;; Don't show buffer modified for scratch and eshell mode
-  (defun sd/buffer-show-modified ()
+  (defun sd/buffer-is-eshel-or-scratch ()
     "Dot not show modified indicator for buffers"
     (interactive)
     (unless (or (string-match "*scratch*" (buffer-name))
@@ -454,7 +454,7 @@ Revised powerline-center-theme
                             (mode-line-buffer-id (if active 'sd/mode-line-buffer-id 'mode-line-buffer-id-inactive))
                             (mode-line (if active 'mode-line 'mode-line-inactive))
                             (my-face1 (if active 'sd/powerline-active1 'powerline-inactive1))
-                            (my-face-buffer-modified (if (and (sd/buffer-show-modified) (buffer-modified-p)) 
+                            (my-face-buffer-modified (if (and (sd/buffer-is-eshel-or-scratch) (buffer-modified-p) (not buffer-read-only)) 
                                                          'sd/buffer-modified-active1
                                                        (if buffer-read-only 'sd/buffer-view-active1
                                                          my-face1)))
@@ -904,9 +904,7 @@ Setting agenda files and the agenda view
 #+END_SRC
 
 ** Export PDF
-
 Install MacTex-basic and some tex packages
-
 #+BEGIN_SRC bash 
 
   sudo tlmgr update --self
@@ -1400,19 +1398,52 @@ Color for Man-mode
     (define-key org-tree-slide-mode-map [escape] 'org-tree-slide-move-previous-tree))
 #+END_SRC
 
+** pdf-tools
+#+BEGIN_SRC bash
+  brew install poppler
+#+END_SRC
+
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (use-package pdf-tools
+    :ensure t
+    :init
+    ;; run to complete the installation
+    (pdf-tools-install)
+    :config
+    (add-to-list 'auto-mode-alist '("\.pdf$" . pdf-view-mode))
+    (add-hook 'pdf-outline-buffer-mode-hook #'sd/pdf-outline-map))
+
+  (defun sd/pdf-outline-map ()
+    "My keybindings in pdf-outline-map"
+    (interactive)
+    (define-key pdf-outline-buffer-mode-map (kbd "C-o") nil)
+    (define-key pdf-outline-buffer-mode-map (kbd "i") 'outline-toggle-children)
+    (define-key pdf-outline-buffer-mode-map (kbd "j") 'next-line)
+    (define-key pdf-outline-buffer-mode-map (kbd "k") 'previous-line))
+#+END_SRC
+
 * Dired
 ** Dired config
 =C-o= is defined as a global key for window operation, here unset it in dired mode
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (defun sd/dired-key-map ()
+    "My keybindings for dired"
+    (interactive)
+    (define-key dired-mode-map (kbd "SPC") 'scroll-up-command)
+    (define-key dired-mode-map (kbd "S-SPC") 'scroll-down-command)
+    (define-key dired-mode-map (kbd "C-o") nil)
+    (define-key dired-mode-map (kbd "M-s") nil)
+    (define-key dired-mode-map (kbd "l") 'dired-isearch-filenames)
+    (define-key dired-mode-map (kbd "H") 'dired-omit-mode)
+    (define-key dired-mode-map (kbd "DEL") (lambda () (interactive) (find-alternate-file ".."))))
+
   (use-package dired
     :config
     (require 'dired-x)
     (setq dired-omit-mode t)
     (setq dired-omit-files (concat dired-omit-files "\\|^\\..+$"))
     (add-hook 'dired-mode-hook (lambda ()
-                                 (define-key dired-mode-map (kbd "C-o") nil)
-                                 (define-key dired-mode-map (kbd "H") 'dired-omit-mode)
-                                 (define-key dired-mode-map (kbd "DEL") (lambda () (interactive) (find-alternate-file "..")))
+                                 (sd/dired-key-map)
                                  (dired-omit-mode))))
 #+END_SRC
 
@@ -2223,7 +2254,11 @@ toggle the mark ring. the best way is add a new action and mapping to =helm-sour
 since there is no map such as =helm-mark-ring=map=, so I cannot binding a key to the quit action.
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (setq mark-ring-max 50)
-  (global-set-key (kbd "M-`") #'helm-mark-ring)
+
+  (use-package helm
+    :ensure t
+    :init
+    (global-set-key (kbd "M-`") #'helm-mark-ring))
 
   (define-key minibuffer-local-map (kbd "M-`") 'keyboard-escape-quit)
 #+END_SRC
@@ -2282,10 +2317,8 @@ Search, replace and hightlight will in later paragraph
 
 *** =Imenu= goto tag
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  ;; (global-set-key (kbd "M-i") #'counsel-imenu)
-  (global-set-key (kbd "M-i") #'imenu)
-
-  ;; (global-set-key (kbd "M-l") 'goto-line)
+  (global-set-key (kbd "M-i") #'counsel-imenu)
+  ;; (global-set-key (kbd "M-i") #'imenu)
 #+END_SRC
 
 *** Go-to line
@@ -2305,7 +2338,11 @@ Search, replace and hightlight will in later paragraph
 =helm-show-kill-ring=
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
   (setq kill-ring-max 100)                ; default is 60p
-  (global-set-key (kbd "M-y") #'helm-show-kill-ring)
+
+  (use-package helm
+    :ensure t
+    :init
+    (global-set-key (kbd "M-y") #'helm-show-kill-ring))
 #+END_SRC
 
 *** undo-tree
@@ -2553,7 +2590,7 @@ stolen from [[https://github.com/mariolong/emacs.d/blob/f6a061594ef1b5d1f4750e9d
     ("n" er/mark-next-accessor "next")
 
     ("x" exchange-point-and-mark "exchange")
-  
+
     ;; Search
     ;; higlight