Update.
[elisp.git] / emacs.el
index 64500c7..3e49e71 100644 (file)
--- a/emacs.el
+++ b/emacs.el
@@ -49,6 +49,7 @@
 
 ;; Nor fringes
 (when (functionp 'fringe-mode) (fringe-mode '(0 . 0)))
+;; (when (functionp 'fringe-mode) (fringe-mode '(0 . 1)))
 
 ;; And I do not like scrollbar neither
 (when (functionp 'scroll-bar-mode) (scroll-bar-mode -1))
@@ -64,7 +65,7 @@
 ;; use colorization for all modes
 (global-font-lock-mode t)
 
-(setq font-lock-maximum-decoration 2
+(setq font-lock-maximum-decoration 3
       ;;'((latex-mode . 2) (t . 2))
       )
 
 (setq savehist-file "~/private/emacs/savehist")
 (when (functionp 'savehist-mode) (savehist-mode 1))
 
+;; And allow minibuffer recursion
+(setq enable-recursive-minibuffers t)
+(minibuffer-depth-indicate-mode 1)
+
 ;; I do not like tooltips
 (when (functionp 'tooltip-mode) (tooltip-mode nil))
 
@@ -225,8 +230,9 @@ load-warning buffer in case of failure."
  backup-by-copying-when-linked t
  )
 
-(setq
- user-emacs-directory "~/misc/emacs.d/")
+(setq tramp-backup-directory-alist backup-directory-alist)
+
+(setq user-emacs-directory "~/misc/emacs.d/")
 
 (setq
  abbrev-file-name (concat user-emacs-directory "abbrev_defs")
@@ -367,9 +373,9 @@ load-warning buffer in case of failure."
      (info-title-2 :foreground "green")
      (cperl-array-face :background "gray90" :foreground "blue" :weight 'bold)
      (cperl-hash-face :background "gray90" :foreground "purple" :weight 'bold)
-     (diff-added-face :foreground "blue" :weight 'bold)
-     (diff-changed-face :foreground "green" :weight 'bold)
-     (diff-removed-face :foreground "red" :weight 'bold)
+     (diff-added :background "gray90" :foreground "green4" :weight 'bold)
+     (diff-removed :background "gray90" :foreground "red2" :weight 'bold)
+     (diff-changed :background "gray90" :foreground "blue" :weight 'bold)
      (diff-file-header-face :background "white" :foreground "black"
                             :weight 'bold)
      (diff-header-face :background "white" :foreground "black")
@@ -387,8 +393,8 @@ load-warning buffer in case of failure."
      (flyspell-incorrect-face :foreground "red2")
      (flyspell-duplicate-face :foreground "OrangeRed2")
      (hl-line :background "white")
-     (sh-heredoc :foreground "blue")
-     (sh-heredoc-face :foreground "blue")
+     (sh-heredoc :foreground "black" :background "#fff0f0")
+     (sh-heredoc-face :foreground "black" :background "#fff0f0")
      (font-lock-keyword-face :foreground "blue")
      (highlight :background "darkseagreen3")
      (isearch :background "orange" :foreground "black")
@@ -427,9 +433,10 @@ load-warning buffer in case of failure."
      (cperl-array-face :background "gray90" :foreground "blue" :weight 'bold)
      (cperl-hash-face :background "gray90" :foreground "purple" :weight 'bold)
      (message-cited-text :foreground "red4")
+     (diff-mode :background "gray90" :weight 'bold)
      (diff-added :background "gray90" :foreground "green4" :weight 'bold)
      (diff-removed :background "gray90" :foreground "red2" :weight 'bold)
-     (diff-changed :background "gray90" :foreground "blue")
+     (diff-changed :background "gray90" :foreground "blue" :weight 'bold)
      (diff-file-header :background "white" :foreground "black"
                        :weight 'bold)
      (diff-header :background "white" :foreground "black")
@@ -443,9 +450,9 @@ load-warning buffer in case of failure."
      (flyspell-incorrect-face :foreground "red2")
      (flyspell-duplicate-face :foreground "OrangeRed2")
      (hl-line :background "white")
+     (sh-heredoc :foreground "black" :background "#fff0f0")
+     (sh-heredoc-face :foreground "black" :background "#fff0f0")
      (header-line :background "gray65")
-     (sh-heredoc :foreground "darkorange3")
-     (sh-heredoc-face :foreground "darkorange3")
      (highlight :background "turquoise")
      (message-cited-text-face :foreground "firebrick")
      (isearch :background "yellow" :foreground "black")
@@ -457,11 +464,11 @@ load-warning buffer in case of failure."
      (trailing-whitespace :background "gray65")
      (cursor :inverse-video t)
      (enotes/list-title-face :foreground "blue" :weight 'bold)
-     (mode-line :background "#9090f0" :foreground "black" :box nil
+     (mode-line :background "#b0b0ff" :foreground "black" :box nil
                 :inverse-video nil)
      (header-line :background "cornflowerblue" :foreground "black" :box nil
                   :inverse-video nil)
-     (mode-line-inactive :background "#606080" :foreground "black" :box nil
+     (mode-line-inactive :background "#b0b0b0" :foreground "black" :box nil
                          :inverse-video nil)
      ;; (fringe :background "black" :foreground "gray90")
      (fringe :background "gray65")
@@ -480,6 +487,17 @@ load-warning buffer in case of failure."
                 :inverse-video nil))
    ))
 
+;; Why should I have to do this?
+(add-hook 'sh-mode-hook
+          (lambda ()
+            (set-face-attribute 'sh-heredoc nil
+                                :foreground "black"
+                                :background "#fff0f0")
+            (set-face-attribute 'sh-heredoc-face nil
+                                :foreground "black"
+                                :background "#fff0f0")
+            ))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Move the window on the buffer without moving the cursor
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -778,7 +796,7 @@ printer."
       (/ (* 100 (string-to-number (ff/file-first-line (format "%s/%s_now" ff/battery-dir prefix))))
          (string-to-number (ff/file-first-line (format "%s/%s_full"  ff/battery-dir prefix))))
     (error -1))
-    )
+  )
 
 (defun ff/laptop-info-string () (interactive)
   (condition-case nil
@@ -910,7 +928,7 @@ printer."
                              load
 
                              ,(if (ff/laptop-info-string)
-                                  '(concat " /" (ff/laptop-info-string) "/"))
+                                  '(concat " " (ff/laptop-info-string)))
 
                              )
 
@@ -1136,7 +1154,7 @@ goback argument, go back where we were."
     "The face to display known mail identities.")
 
   (defface ff/unknown-address-face
-    '((t (:foreground "red4")))
+    '((t (:foreground "gray50")))
     "The face to display unknown mail identities.")
 
   (defun ff/explicit-name (email)
@@ -1201,7 +1219,7 @@ ff/known-address-face is used."
   "The face to display the dates in the modeline.")
 
 (defun ff/secure-note-add () (interactive)
-  (find-file "~/private/secure-notes.gpg")
+  (find-file ff/secure-note-file)
 
   ;; Adds a new entry (i.e. date and a bunch of empty lines)
 
@@ -1694,16 +1712,16 @@ and refilling all the paragraphs."
    ;; Strange that I have to specify that
    ;; (setq paragraph-separate "[%     \f]*$")
    ;; (setq paragraph-separate
-         ;; (concat "[%]*\\|[\f%]\\|[ \t]*\\($\\|"
-                 ;; "\\\\[][]\\|"
-                 ;; "\\\\" (regexp-opt (append
-                                     ;; (mapcar 'car latex-section-alist)
-                                     ;; '("begin" "label" "end" )) t)
-                 ;; "\\>\\|\\\\\\(" (regexp-opt '("item" "bibitem" "newline"
-                                               ;; "noindent" "newpage" "footnote"
-                                               ;; "marginpar" "parbox" "caption"))
-                 ;; "\\|\\$\\$\\|[a-z]*\\(space\\|skip\\|page[a-z]*\\)"
-                 ;; "\\>\\)[ \t]*\\($\\|%\\)\\)"))
+   ;; (concat "[%]*\\|[\f%]\\|[ \t]*\\($\\|"
+   ;; "\\\\[][]\\|"
+   ;; "\\\\" (regexp-opt (append
+   ;; (mapcar 'car latex-section-alist)
+   ;; '("begin" "label" "end" )) t)
+   ;; "\\>\\|\\\\\\(" (regexp-opt '("item" "bibitem" "newline"
+   ;; "noindent" "newpage" "footnote"
+   ;; "marginpar" "parbox" "caption"))
+   ;; "\\|\\$\\$\\|[a-z]*\\(space\\|skip\\|page[a-z]*\\)"
+   ;; "\\>\\)[ \t]*\\($\\|%\\)\\)"))
    ;; (flyspell-mode 1)
    ;; (reftex-mode 1)
    ))
@@ -1853,6 +1871,17 @@ a file in /tmp"
     (add-to-list 'find-file-not-found-functions 'ff/start-file)
   (add-to-list 'find-file-not-found-hooks 'ff/start-file))
 
+(when (>= emacs-major-version 24)
+  (define-obsolete-function-alias 'make-local-hook 'ignore "21.1")
+  (setq send-mail-function 'sendmail-send-it) ;; emacs 24.x stuff
+
+  (custom-set-faces
+   '(diff-added ((default (:background "gray90" :foreground "green4" :weight bold))))
+   '(diff-removed ((default (:background "gray90" :foreground "red2" :weight bold))))
+   '(diff-changed ((default (:background "gray90" :foreground "blue" :weight bold))))
+   )
+  )
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define-key global-map [f8] 'ff-find-other-file)
@@ -2277,6 +2306,7 @@ next one. With universal argument, kill all killable buffers."
         media/mplayer/args '(
                              "-framedrop"
                              "-zoom"
+                             "-cache" "512"
                              "-subfont-osd-scale" "3"
                              ;; "-stop-xscreensaver"
                              ;; "-osdlevel" "3"
@@ -2390,8 +2420,10 @@ proposes to visit them."
   )
 
 (defun ff/flyspell-mode (arg) (interactive "p")
-  (flyspell-mode)
-  (when flyspell-mode (flyspell-buffer)))
+  (if flyspell-mode (flyspell-mode -1)
+    (flyspell-mode 1)
+    (flyspell-buffer))
+)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; The fridge!
@@ -2493,27 +2525,27 @@ with a time tag, and save this file"
   ;; ugly.
 
   ;; (defun ff/yank-with-xclip (&optional arg)
-    ;; "Paste the content of the X clipboard with the xclip
-;; command. Without ARG converts some of the '\\uxxxx' characters."
-    ;; (interactive "P")
-    ;; (with-temp-buffer
-      ;; (shell-command "xclip -o" t)
-      ;; (unless arg
-        ;; (mapc (lambda (x) (replace-string (concat "\\u" (car x)) (cdr x) nil (point-min) (point-max)))
-              ;; '(("fffd" . "??")
-                ;; ("2013" . "-")
-                ;; ("2014" . "--")
-                ;; ("2018" . "`")
-                ;; ("2019" . "'")
-                ;; ("201c" . "``")
-                ;; ("201d" . "''")
-                ;; ("2022" . "*")
-                ;; ("2026" . "...")
-                ;; ("20ac" . "EUR")
-                ;; )))
-      ;; (kill-ring-save (point-min) (point-max)))
-
-    ;; (yank))
+  ;; "Paste the content of the X clipboard with the xclip
+  ;; command. Without ARG converts some of the '\\uxxxx' characters."
+  ;; (interactive "P")
+  ;; (with-temp-buffer
+  ;; (shell-command "xclip -o" t)
+  ;; (unless arg
+  ;; (mapc (lambda (x) (replace-string (concat "\\u" (car x)) (cdr x) nil (point-min) (point-max)))
+  ;; '(("fffd" . "??")
+  ;; ("2013" . "-")
+  ;; ("2014" . "--")
+  ;; ("2018" . "`")
+  ;; ("2019" . "'")
+  ;; ("201c" . "``")
+  ;; ("201d" . "''")
+  ;; ("2022" . "*")
+  ;; ("2026" . "...")
+  ;; ("20ac" . "EUR")
+  ;; )))
+  ;; (kill-ring-save (point-min) (point-max)))
+
+  ;; (yank))
 
   ;; (define-key global-map [(meta y)] 'ff/yank-with-xclip)