adjust
authorJoerg Jaspert <joerg@ganneff.de>
Mon, 22 Apr 2013 14:36:04 +0000 (16:36 +0200)
committerJoerg Jaspert <joerg@ganneff.de>
Mon, 22 Apr 2013 14:36:04 +0000 (16:36 +0200)
.emacs.d/config/emacs.org
elisp/local/ganneff.el

index 02a746d..4fd774a 100644 (file)
@@ -107,6 +107,36 @@ Attribution-NonCommercial-ShareAlike Unported — CC BY-NC-SA]] license
 unless otherwise noted.
 ----------
 
+** Emacs Prelude
+#+BEGIN_QUOTE
+Prelude is an enhanced Emacs 24 configuration that should make your
+experience with Emacs both more pleasant and more powerful. Prelude
+alters a lot of the default settings, bundles a plethora of additional
+packages and adds its own core library to the mix. The final product
+offers an easy to use Emacs configuration for Emacs newcomers and lots
+of additional power for Emacs power users.
+#+END_QUOTE
+
+So much for their own advertisement, and while I agree it is a pretty
+nice configuration, I only like parts of it. Especially as I am forced
+to use older emacs too (prelude requires emacs24), and I also like to
+do stuff on my own...
+
+Anything copied from prelude should start with prelude-, and their
+license statement is:
+
+----------
+Copyright © 2011-2013 Bozhidar Batsov
+
+Author: Bozhidar Batsov <bozhidar@batsov.com>
+URL: https://github.com/bbatsov/prelude
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 3
+of the License, or (at your option) any later version.
+----------
+You should be able to find a full list of contributors at
+[[https://github.com/bbatsov/prelude/graphs/contributors][their github]] pages.
 
 * Initial preparation
 To have my config here actually work, =emacs= needs a little help. For
@@ -157,7 +187,6 @@ them first.
 
 - match-paren will either jump to the "other" paren or simply insert %
   #+BEGIN_SRC emacs-lisp
-  ;;* Jump to other paren *or* insert %
 (defun match-paren (arg)
   "Go to the matching parenthesis if on parenthesis otherwise insert %."
   (interactive "p")
@@ -187,8 +216,8 @@ I don't list the path to org-mode here, as that is done in init.el
 already (or we couldn't load this file).
 
 I have various elisp packages I install locally (that is, in my
-~/elisp). Some of them aren't packaged, some of them aren't installed
-everywhere I use emacs, so this is easiest.
+~/elisp). Some of them aren't packaged (for Debian), some of them aren't
+installed everywhere I use emacs, so this is easiest.
 
 They might not exist on every system, but it doesn't hurt to have them
 listed, so I just do it here globally.
@@ -240,7 +269,7 @@ Usually I want the lines to break at 72 characters.
 (setq default-fill-column 72)
 #+END_SRC
 
-And it is nice to have a final newline in files
+And it is nice to have a final newline in files.
 #+BEGIN_SRC emacs-lisp
 (setq require-final-newline t)
 #+END_SRC
@@ -261,12 +290,12 @@ it later. Also, I am using gnus.
 (setq mail-user-agent (quote gnus-user-agent))
 #+END_SRC
 
-My default mail server. Well, simply localhost, I have a forwarder that
+My default mail server. Well, simply localhost, I have a forwarder that
 puts mail off the right way, no need for emacs to have any further
 knowledge here.
 #+BEGIN_SRC emacs-lisp
-(setq smtpmail-default-smtp-server "lorien")
-(setq smtpmail-smtp-server "lorien")
+(setq smtpmail-default-smtp-server "localhost")
+(setq smtpmail-smtp-server "localhost")
 #+END_SRC
 
 Enable automatic handling of compressed files.
@@ -274,18 +303,45 @@ Enable automatic handling of compressed files.
 (auto-compression-mode 1)
 #+END_SRC
 
-I sometimes narrow my editing stuff to a region. Good for complicated
-replaces for example. But emacs by default disables it and asks
-questions. Blergh, nope, enable it.
+Emacs forbids a certain set of commands, as they can be very confusing
+for new users. Enable them.
 #+BEGIN_SRC emacs-lisp
 (put 'narrow-to-region 'disabled nil)
+(put 'narrow-to-page 'disabled nil)
+(put 'narrow-to-defun 'disabled nil)
+(put 'upcase-region 'disabled nil)
+(put 'downcase-region 'disabled nil)
 #+END_SRC
 
-*** Font
+*** Look / Theme
+I've tried various different fonts and while I like the Terminus font
+most for my shells, in Emacs Inconsolata clearly wins.
 #+BEGIN_SRC emacs-lisp
 (set-default-font "Inconsolata-14")
 #+END_SRC
 
+And I always liked dark backgrounds with colors setup for them. So I
+had a theme doing it in emacs too, but never entirely liked it. Until I
+found solarized, which is now not only my emacs theme, but also for
+most of my other software too, especially my shell. Consistent look is great.
+#+BEGIN_SRC emacs-lisp
+  (add-to-list 'custom-theme-load-path "~/elisp/emacs-color-theme-solarized")
+  (setq solarized-termcolors 16)
+  (load-theme 'solarized-dark t)
+#+END_SRC
+
+
+Make the fringe (gutter) smaller, the argument is a width in pixels (the default is 8)
+#+BEGIN_SRC emacs-lisp
+(if (fboundp 'fringe-mode)
+    (fringe-mode 4))
+#+END_SRC
+*** Turn the cursor blinking off
+[2013-04-21 So 20:54]
+#+BEGIN_SRC emacs-lisp
+(blink-cursor-mode -1)
+#+END_SRC
+
 *** Menu, Tool and Scrollbar
 I don't want to see the menu-bar, …
 #+BEGIN_SRC emacs-lisp
@@ -303,7 +359,6 @@ I don't want to see the menu-bar, …
 #+BEGIN_SRC emacs-lisp
   (scroll-bar-mode nil)
 #+END_SRC
-
 **** When using emacs in daemon mode
 Emacs has a very nice mode where it detaches itself and runs as daemon -
 and you can just open /frames/ (windows) from it by using [[http://www.emacswiki.org/emacs/EmacsClient][Emacs
@@ -326,31 +381,11 @@ For them to work even then, we have to do two things.
 2. We have to disable the toolbar using the customize interface, so you
    can find that in the [[id:0102208d-fdf6-4928-9e40-7e341bd3aa3a][Customized variables]] section.
 
-*** Turn the cursor blinking off
-[2013-04-21 So 20:54]
-#+BEGIN_SRC emacs-lisp
-(blink-cursor-mode -1)
-#+END_SRC
-
-*** Load our theme
-Actually not ours, it is from Julien Danjou, see [[http://git.naquadah.org/?p%3Dnaquadah-theme.git%3Ba%3Dsummary][git.naquadah.org Git -
-naquadah-theme.git]]
-#+BEGIN_SRC emacs-lisp-no-longer
-(load-file "~/elisp/local/naquadah-theme.el")
-#+END_SRC
-
-Try out solarized.
-#+BEGIN_SRC emacs-lisp
-  (add-to-list 'custom-theme-load-path "~/elisp/emacs-color-theme-solarized")
-  (setq solarized-termcolors 16)
-  (load-theme 'solarized-dark t)
-#+END_SRC
-
 *** Hilight current line in buffer
+As it says, it does a hilight of the current line.
 #+BEGIN_SRC emacs-lisp
 (global-hl-line-mode +1)
 #+END_SRC
-
 *** Allow recursive minibuffers
 This allows (additional) minibuffer commands while in the minibuffer.
 #+BEGIN_SRC emacs-lisp
@@ -358,7 +393,6 @@ This allows (additional) minibuffer commands while in the minibuffer.
 #+END_SRC
 
 *** Modeline related changes
-
 I want to see line and column numbers, so turn them on.
 Size indication lets me know how far I am in a buffer.
 
@@ -379,6 +413,52 @@ modeline in red as soon as you are over the defined limit.
   (set-face-foreground 'modelinepos-column-warning "grey20")
   (set-face-background 'modelinepos-column-warning "red")
 #+END_SRC
+**** diminish
+[2013-04-22 Mon 11:27]
+The modeline is easily cluttered up with stuff I don't really need to
+see. So lets hide those. There are two ways, one of them uses diminish
+to get entirely rid of some modes, the other is a function taken from
+"Mastering Emacs" which replaces the modes text with an own (set of)
+character(s).
+#+BEGIN_SRC emacs-lisp
+    (require 'diminish)
+    (diminish 'auto-fill-function)
+    (eval-after-load "filladapt" '(diminish 'filladapt-mode))
+    (defvar mode-line-cleaner-alist
+      `((auto-complete-mode . " α")
+        (yas/minor-mode . " υ")
+        (paredit-mode . " π")
+        (eldoc-mode . "")
+        (abbrev-mode . "")
+        ;; Major modes
+        (lisp-interaction-mode . "λ")
+        (hi-lock-mode . "")
+        (python-mode . "Py")
+        (emacs-lisp-mode . "EL")
+        (org-mode . "Ω")
+        (org-indent-mode . "")
+        (sh-mode . " Σ")
+        (nxhtml-mode . "nx"))
+      "Alist for `clean-mode-line'.
+     
+    When you add a new element to the alist, keep in mind that you
+    must pass the correct minor/major mode symbol and a string you
+    want to use in the modeline *in lieu of* the original.
+  
+    Want some symbols? Go:
+  
+    ;ςερτζθιοπασδφγηξκλυχψωβνμ
+    :ΣΕΡΤΖΘΙΟΠΑΣΔΦΓΗΞΚΛΥΧΨΩΒΝΜ
+    @ł€¶ŧ←↓→øþ¨~æſðđŋħ̣ĸł˝^`|»«¢„“”µ·…
+    ☃⌕☥
+  ")
+    
+    (add-hook 'after-change-major-mode-hook 'clean-mode-line)
+  
+#+END_SRC
+Unfortunately icicles breaks this with the way it adds/removes itself,
+so take it our for now...
+
 
 *** Default mode
 Back when I started with text-mode. But nowadays I want default mode to
@@ -422,6 +502,7 @@ Basic settings for emacs integrated shell, using zsh
 
 
 #+END_SRC
+
 *** Global keyboard changes not directly related to a mode
 Disable /suspend_frame/ function, I dislike it.
 #+BEGIN_SRC emacs-lisp
@@ -648,14 +729,6 @@ changed in emacs24. I am used to the old way, so get it.
 
 #+END_SRC
 
-*** fringe
-[2013-04-21 So 20:56]
-Make the fringe (gutter) smaller, the argument is a width in pixels (the default is 8)
-#+BEGIN_SRC emacs-lisp
-(if (fboundp 'fringe-mode)
-    (fringe-mode 4))
-#+END_SRC
-
 ** Miscellaneous stuff
 #+BEGIN_SRC emacs-lisp
 (setq backup-by-copying t)
@@ -1696,7 +1769,7 @@ much more like reading and editing of code using its major mode.
 #+BEGIN_SRC emacs-lisp
   (require 'org-latex)
   (setq org-export-latex-listings 'minted)
-
+  
   ;; Originally taken from Bruno Tavernier: http://thread.gmane.org/gmane.emacs.orgmode/31150/focus=31432
   ;; but adapted to use latexmk 4.20 or higher.
   (defun my-auto-tex-cmd ()
@@ -1713,9 +1786,9 @@ much more like reading and editing of code using its major mode.
         (setq texcmd "latexmk -pdflatex='xelatex -shell-escape' -pdf -quiet %f"))
     ;; LaTeX compilation command
     (setq org-latex-to-pdf-process (list texcmd)))
-
+  
   (add-hook 'org-export-latex-after-initial-vars-hook 'my-auto-tex-cmd)
-
+  
   ;; Specify default packages to be included in every tex file, whether pdflatex or xelatex
   (setq org-export-latex-packages-alist
         '(("" "graphicx" t)
@@ -1723,7 +1796,7 @@ much more like reading and editing of code using its major mode.
           ("" "float" nil)
           ("" "minted" nil)
           ))
-
+  
   (defun my-auto-tex-parameters ()
         "Automatically select the tex packages to include."
         ;; default packages for ordinary latex or pdflatex export
@@ -1739,7 +1812,7 @@ much more like reading and editing of code using its major mode.
                 (""     "latexsym"  t)
                 (""     "amssymb"   t)
                 (""     "hyperref"  nil)))
-
+  
         ;; Packages to include when xelatex is used
         (if (string-match "LATEX_CMD: xelatex" (buffer-string))
             (setq org-export-latex-default-packages-alist
@@ -1752,7 +1825,7 @@ much more like reading and editing of code using its major mode.
                     ("" "soul" t)
                     ("xetex" "hyperref" nil)
                     )))
-
+  
         (if (string-match "#+LATEX_CMD: xelatex" (buffer-string))
             (setq org-export-latex-classes
                   (cons '("scrartcl"
@@ -1763,7 +1836,7 @@ much more like reading and editing of code using its major mode.
                           ("\\paragraph{%s}" . "\\paragraph*{%s}")
                           ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
                         org-export-latex-classes))))
-
+  
   (add-hook 'org-export-latex-after-initial-vars-hook 'my-auto-tex-parameters)
 #+END_SRC
 #+BEGIN_SRC emacs-lisp
@@ -2043,6 +2116,7 @@ then I like it nice too...
   (eval-after-load "eldoc"
     '(diminish 'eldoc-mode))
 #+END_SRC
+
 * Customized variables
 :PROPERTIES:
 :ID: 0102208d-fdf6-4928-9e40-7e341bd3aa3a
index 40df55a..9bd1f66 100644 (file)
@@ -902,6 +902,19 @@ buffer is not visiting a file."
   (rainbow-mode +1)
   (setq mode-name "EL"))
 
+;;;###autoload
+(defun clean-mode-line ()
+  (interactive)
+  (loop for cleaner in mode-line-cleaner-alist
+        do (let* ((mode (car cleaner))
+                 (mode-str (cdr cleaner))
+                 (old-mode-str (cdr (assq mode minor-mode-alist))))
+             (when old-mode-str
+                 (setcar old-mode-str mode-str))
+               ;; major mode
+             (when (eq mode major-mode)
+               (setq mode-name mode-str)))))
+
 (provide 'ganneff)
 
 ;(setq org-icalendar-verify-function 'org-mycal-export-limit)