;;============================================================================== ;;; mode-line.el ;; ;;; Emacs Mode Line Modifications ;; ;;; Author: Kyle W T Sherman ;; ;; Time-stamp: <2008-03-13 13:27:11 (kyle)> ;;============================================================================== (message ";;; mode-line --> Start") ;;============================================================================== ;;; Mode Line ;;============================================================================== (when (>= emacs-major-version 22) (message ";;; mode-line --> Mode Line") ;; set mode line format (setq mode-line-format '("%e" #("-" 0 1 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) mode-line-mule-info mode-line-modified mode-line-frame-identification mode-line-buffer-identification #(" " 0 2 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) mode-line-position ;; #(" w:" 0 3 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) ;; (count-words-paragraph count-words-paragraph) (vc-mode vc-mode) #(" " 0 2 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) mode-line-modes ;; (which-func-mode ;; ("" which-func-format ;; #("--" 0 2 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")))) ;; (global-mode-string ;; (#("--" 0 2 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) ;; global-mode-string)) (global-mode-string (#(" " 0 1 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) global-mode-string)) #("-%-" 0 3 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")))) (set-default 'mode-line-format mode-line-format) ;; set mode line modes (setq mode-line-modes '((#("%[(" 0 3 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) (:propertize ("" mode-name) help-echo "mouse-1: major mode, mouse-2: major mode help, mouse-3: toggle minor modes" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (down-mouse-3 . mode-line-mode-menu-1) (mouse-2 . describe-mode) (down-mouse-1 . mouse-major-mode-menu)))) ("" mode-line-process) (:propertize ("" minor-mode-alist) mouse-face mode-line-highlight help-echo "mouse-2: minor mode help, mouse-3: toggle minor modes" local-map (keymap (header-line keymap (down-mouse-3 . mode-line-mode-menu-1)) (mode-line keymap (down-mouse-3 . mode-line-mode-menu-1) (mouse-2 . mode-line-minor-mode-help)))) #("%n" 0 2 (help-echo "mouse-2: widen" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (mouse-2 . mode-line-widen))))) #(")%]" 0 3 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0"))))) (set-default 'mode-line-modes mode-line-modes) ;; (set (car (last (car mode-line-modes))) ;; '#(")%]" 0 3 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0"))) ) ;;------------------------------------------------------------------------------ ;; Add Count Words Paragraph To Mode Line ;;------------------------------------------------------------------------------ ;; (when (>= emacs-major-version 21) ;; (message ";;; mode-line --> Count Words") ;; ;; store count in variable ;; (defvar count-words-paragraph ;; nil ;; "*Current value returned from `count-words-paragraph' function.") ;; ;; only setup timer once ;; (unless count-words-paragraph ;; ;; seed count-words-paragraph ;; (setq count-words-paragraph "0 ") ;; ;; create timer to keep count-words-paragraph updated ;; (run-with-idle-timer 0.5 t ;; #'(lambda () ;; (let ((count (number-to-string (count-words-paragraph)))) ;; (while (< (length count) 3) ;; (setq count (concat count " "))) ;; (setq count-words-paragraph count))))) ;; ;; add count words paragraph the mode line ;; (if (< emacs-major-version 22) ;; ;; older emacs versions ;; (unless (and (listp (nth 13 mode-line-format)) ;; (memq 'count-words-paragraph (nth 13 mode-line-format))) ;; (push (cons '#("w:" 0 2 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) ;; '(count-words-paragraph)) ;; (nthcdr 13 mode-line-format)) ;; (push '#("--" 0 2 (help-echo "mouse-1: select window, mouse-2: delete others, mouse-3: delete ...")) ;; (nthcdr 14 mode-line-format))) ;; ;; emacs versions 22+ ;; (unless (and (listp (nth 8 mode-line-format)) ;; (memq 'count-words-paragraph (nth 8 mode-line-format))) ;; (push (cons '#(" w:" 0 3 (help-echo "mouse-1: select (drag to resize), mouse-2 = C-x 1, mouse-3 = C-x 0")) ;; '(count-words-paragraph)) ;; (nthcdr 8 mode-line-format)))) ;; ;; set mode line ;; (set-default 'mode-line-format mode-line-format) ;; ) (message ";;; mode-line --> End") ;;============================================================================== ;;; End of File ;;==============================================================================