;; Xft.antialias: true
;; Xft.rgba: rgb
+;; This is where I put most of my emacs-related files
+(setq ff/emacs-dir "~/private/emacs")
+(unless (file-exists-p ff/emacs-dir)
+ (mkdir ff/emacs-dir t))
+
;; Give the focus to the emacs window if we are under a windowing
;; system
(menu-bar-mode -1)
;; Nor fringes
-(when (functionp 'fringe-mode) (fringe-mode '(0 . 0)))
+;; (when (functionp 'fringe-mode) (fringe-mode '(0 . 0)))
;; (when (functionp 'fringe-mode) (fringe-mode '(0 . 1)))
+(when (functionp 'fringe-mode) (fringe-mode 10))
;; And I do not like scrollbar neither
(when (functionp 'scroll-bar-mode) (scroll-bar-mode -1))
(iswitchb-mode 1)
;; Save the minibuffer history
-(setq savehist-file "~/private/emacs/savehist")
+(setq savehist-file (concat ff/emacs-dir "/savehist"))
(when (functionp 'savehist-mode) (savehist-mode 1))
;; And allow minibuffer recursion
;; And I like ascii files
epa-armor t
- tramp-default-method "ssh"
+ ;; tramp-default-method "ssh"
+ tramp-default-method "scp"
;; I have no problem with files having their own local variables
enable-local-eval t
mc-use-default-recipients t
;; browse-url-new-window-flag t
+
+ ;; I do not like compilation to automatically split the active window
+ ;; vertically, even when the said window is very wide
+ split-height-threshold 0
+ split-width-threshold nil
+
)
;; The backups
(add-to-list 'auto-mode-alist '("\\.txt\\'" . (lambda()
(text-mode)
(orgtbl-mode)
- (auto-fill-mode)
+ ;; (auto-fill-mode)
(flyspell-mode))))
(add-hook 'c++-mode-hook 'flyspell-prog-mode)
(ff/configure-faces
'((italic :underline nil)
(info-title-2 :foreground "green")
+ (font-lock-comment-delimiter-face :foreground "black")
+ (font-lock-comment-face :foreground "black")
(cperl-array-face :background "gray90" :foreground "blue" :weight 'bold)
(cperl-hash-face :background "gray90" :foreground "purple" :weight 'bold)
(diff-added :background "gray90" :foreground "green4" :weight 'bold)
(font-lock-string-face :foreground "green")
(font-lock-variable-name-face :foreground "blue")
(font-lock-constant-face :foreground "blue")
- (font-lock-function-name-face :foreground "blue")
(font-lock-preprocessor-face :foreground "green")
(font-lock-function-name-face :foreground "cyan")
- (flyspell-incorrect-face :foreground "red2")
- (flyspell-duplicate-face :foreground "OrangeRed2")
+ (flyspell-incorrect :foreground "red2")
+ (flyspell-duplicate :foreground "OrangeRed2")
(hl-line :background "white")
(sh-heredoc :foreground "black" :background "#fff0f0")
(sh-heredoc-face :foreground "black" :background "#fff0f0")
:inverse-video nil)
(mode-line-inactive :background "gray60" :foreground "black" :box nil
:inverse-video nil)
- (region :background "springgreen2")
+ (region :background "white" :foreground "black")
(ff/date-info-face :foreground "white" :weight 'bold)
(ff/mail-alarm-face :foreground "red" :weight 'bold)
+ (selector/selection :background "yellow")
(gui-button-face :background "green" :foreground "white")
(enotes/information-face :foreground "cyan")
))
(ff/configure-faces
'(
;; (escape-glyph :foreground "#c0c0c0" :weight 'bold)
+
(escape-glyph :foreground "green3" :weight 'bold)
(default :background "gray90" :foreground "black")
(cperl-array-face :background "gray90" :foreground "blue" :weight 'bold)
(font-lock-builtin-face :foreground "deeppink3")
(font-lock-string-face :foreground "dark olive green")
(font-lock-variable-name-face :foreground "sienna")
- (font-lock-function-name-face :foreground "blue4" :weight 'bold)
+ ;; (font-lock-function-name-face :foreground "blue" :weight 'bold)
+ (font-lock-function-name-face :foreground "blue")
;; (font-lock-comment-delimiter-face :foreground "dark violet")
;; (font-lock-comment-face :foreground "dark violet")
- (flyspell-incorrect-face :foreground "red2")
- (flyspell-duplicate-face :foreground "OrangeRed2")
+ (flyspell-incorrect :background "#ff0000" :foreground "black")
+ (flyspell-duplicate :background "#ff9000" :foreground "black")
(hl-line :background "white")
(sh-heredoc :foreground "black" :background "#fff0f0")
(sh-heredoc-face :foreground "black" :background "#fff0f0")
:inverse-video nil)
(header-line :background "cornflowerblue" :foreground "black" :box nil
:inverse-video nil)
- (mode-line-inactive :background "#b0b0b0" :foreground "black" :box nil
+ (mode-line-inactive :background "gray80" :foreground "black" :box nil
:inverse-video nil)
;; (fringe :background "black" :foreground "gray90")
- (fringe :background "gray65")
- (tex-verbatim :family "courrier")
+ (fringe :background "gray80")
(ff/date-info-face :foreground "white" :weight 'bold)
(ff/mail-alarm-face :foreground "white" :background "red2")
;; (alarm-vc-face :foreground "black" :background "yellow" :weight 'normal)
- ))
+ (gui-button-face :background "green" :foreground "black")
+ ))
)
;; When we are root, put the modeline in red
;; Counting various entities in text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defun ff/count-char ()
- "Prints the number of characters between the first previous \"--\"
-and the firt next \"--\"."
- (interactive)
- (let ((from (save-excursion (re-search-backward "^--$\\|BEGIN_COUNT" nil t)))
- (to (save-excursion (re-search-forward "^--$\\|END_COUNT" nil t))))
- (if (and to from) (message "%d character(s)" (- to from 6))
- (error "Can not find the -- delimiters"))))
-
-(defun ff/count-words ()
- "Print number of words between the first previous \"--\" and the
-firt next \"--\"."
- (interactive)
- (let ((from (save-excursion (re-search-backward "^--$" nil t)))
- (to (save-excursion (re-search-forward "^--$" nil t))))
- (if (and to from)
- (save-excursion
- (goto-char from)
- (let ((count 0))
- (while (< (point) to)
- (re-search-forward "\\w+\\W+")
- (setq count (1+ count)))
- (message "%d word(s)" count)))
- (error "Can not find the -- delimiters"))))
-
(defun ff/word-occurences ()
"Display in a new buffer the list of words sorted by number of
occurrences "
(if (> temp 50)
(concat
(let ((s (format "%dC " temp)))
- (if (> temp 65) (propertize s 'face
+ (if (> temp 70) (propertize s 'face
'font-lock-warning-face)
s))
)
)
(ff/configure-faces '((ff/robot-address-face :foreground "green4")
- (ff/personal-address-face :foreground "dark magenta"
- :weight 'bold)
- (ff/important-address-face :foreground "blue2"
+ (ff/personal-address-face :foreground "blue2" :weight 'bold)
+ (ff/important-address-face :foreground "red3"
+ ;; :foreground "blue2"
;; :underline t
;; :background "white"
;; :foreground "green4"
)
(defface ff/secure-date
- '((t (:background "gold" :weight bold)))
+ '((t (:background "white" :weight bold)))
"The face to display the dates in the modeline.")
(defun ff/secure-note-add () (interactive)
(goto-char (point-min))
(insert "-- "
(format-time-string "%Y %b %d %H:%M:%S" (current-time))
- " ------------------------------------------------\n\n")
+ " --\n\n")
(previous-line 1)
;; Colorizes the dates
(save-excursion
(goto-char (point-min))
(while (re-search-forward
- "^-+ [0-9]+ [a-z]+ [0-9]+ [0-9]+:[0-9]+:[0-9]+.+$"
+ "^-- [0-9]+ [a-z]+ [0-9]+ [0-9]+:[0-9]+:[0-9]+ -+$"
nil t)
(add-text-properties
- (match-beginning 0) (match-end 0) '(face ff/secure-date))))
+ (match-beginning 0) (1+ (match-end 0))
+ '(face ff/secure-date rear-nonsticky t))))
(set-buffer-modified-p nil)
(setq buffer-undo-list nil)
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title></title>
+<style>
+p {
+ color:#009900;
+}
+</style>
</head>
<body>
(define-key latex-mode-map [(control c) (control a)] 'align-current)
(define-key latex-mode-map [(control end)] 'tex-close-latex-block)
(define-key latex-mode-map [(control tab)] 'ispell-complete-word)
- ;; 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]*\\($\\|%\\)\\)"))
- ;; (flyspell-mode 1)
- ;; (reftex-mode 1)
+ (copy-face 'default 'tex-verbatim)
+ ;; (ff/configure-faces '((tex-verbatim :background "gray95")))
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; (when (ff/load-or-alert "flyspell-timer" t)
;; (add-hook 'flyspell-mode-hook 'flyspell-timer-ensure-idle-timer))
+(defun ff/start-flyspell () (interactive)
+ (ff/configure-faces
+ '(
+ ;; (flyspell-incorrect :background "#ff0000" :foreground "black")
+ ;; (flyspell-duplicate :background "#ff9000" :foreground "black")
+ (flyspell-incorrect :foreground "#ff0000" :weight 'bold)
+ (flyspell-duplicate :foreground "#ff9000" :weight 'bold)
+ ))
+ ;; (flyspell-buffer)
+ )
+
+(add-hook 'flyspell-mode-hook 'ff/start-flyspell)
+
(defun ff/pick-dictionnary () (interactive)
(when (and (boundp 'flyspell-mode) flyspell-mode)
(if (and current-input-method (string-match "latin" current-input-method))
"\.bbl$" "\.aux$" "\.toc$"
))
recentf-max-saved-items 1000
- recentf-save-file "~/private/emacs/recentf"
+ recentf-save-file (concat ff/emacs-dir "/recentf")
)
(when (boundp 'recentf-keep) (add-to-list 'recentf-keep 'file-remote-p))
media/add-current-song-to-interrupted-when-killing t
media/duration-to-history 30
media/history-size 1000
- media/playlist-file "~/private/emacs/media-playlists"
+ media/playlist-file (concat ff/emacs-dir "/media-playlists")
media/mplayer/args '(
"-framedrop"
"-zoom"
;; "-stop-xscreensaver"
;; "-osdlevel" "3"
)
- media/mplayer/timing-request-period 5.0
+ media/mplayer/timing-request-period 1.0
)
)
)
)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; My script to automatically count the number of words and characters
+;; between two markers
+
+(ff/load-or-alert "text-counters.el")
+
+;; Display them in the modeline when in text-mode
+
+(add-hook 'text-mode-hook 'tc/add-text-counters-in-modeline)
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; A function to remove temporary alarm windows
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Let's be zen. Remove the modeline and fringes.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(setq ff/zen-original-setting nil)
+
+(defun ff/zen () (interactive)
+ (if ff/zen-original-setting
+ (setq mode-line-format (car ff/zen-original-setting)
+ fringe-mode (cdr ff/zen-original-setting)
+ ff/zen-original-setting nil)
+ (setq ff/zen-original-setting (cons mode-line-format fringe-mode)
+ mode-line-format nil
+ fringe-mode '(0 . 0))
+ (delete-other-windows)
+ )
+ (fringe-mode fringe-mode)
+ (if ff/zen-original-setting
+ (message "Zen mode")
+ (message "Cluttered mode"))
+ )
+
+;; (define-key global-map [(control x) (x)] 'ff/zen)
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; My own keymap
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq ff/map (make-sparse-keymap))
(define-key global-map [(control \`)] ff/map)
-;;(define-key global-map [(control @)] ff/map)
+
+(unless window-system
+ ;; (define-key global-map [(control @)] ff/map)
+ (define-key global-map [(meta O) \`] ff/map)
+)
(define-key esc-map "`" ff/map)
(define-key ff/map [?\C-3] 'ff/twin-horizontal-current-buffer)
(define-key ff/map " " 'delete-trailing-whitespace)
+(define-key ff/map [(control x)] 'ff/zen)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Hacks so that all keys are functionnal in xterm and through ssh.
;; Where to save the bookmarks and where is bbdb
-(setq bookmark-default-file "~/private/emacs/bmk"
+(setq bookmark-default-file (concat ff/emacs-dir "/bmk")
bbdb-file "~/private/bbdb"
- custom-file "~/private/emacs/custom")
+ custom-file (concat ff/emacs-dir "/custom"))
;; enotes.el is one of my own scripts, check my web page