;; -*- Mode: Emacs-Lisp -*-
;; Fichier de config (X)Emacs. La plupart des packages demandant une
;; config un peu plus grosse (enfin normalement) ont leur propre
;; fichier de config appelé en cours de route.
;; À faire (un jour): compatibilité GNU/Emacs
(message "Mise en place des préférences")
;; mon répertoire. Mis en premier pour la recherche des fichiers
;; chargés plus tard.
(setq seb-lisp-dir (expand-file-name "~/.elisp/"))
(setq load-path (cons seb-lisp-dir
load-path))
;; Pour dire qu'on utilise Gnus 5.8 plutôt qu'une autre
(setq st::load-pgnus t)
;(if st::load-pgnus
; (setq load-path (cons (expand-file-name "~bot/.elisp/gnus/lisp")
; load-path)))
(message "Affectation des variables diverses")
;; quelques valeurs qu'on ne sait où mettre
(setq-default
tab-width 8
display-time-24hr-format t
require-final-newline t
ps-paper-type 'a4
ispell-dictionary "francais"
delete-key-deletes-forward t
column-number-mode t
line-number-mode t
make-backup-files nil
;; Obsolète bicoze templates.
; html-helper-htmldtd-version
; "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
font-lock-maximum-decoration t
)
;;*=======================
;;* make netscape use a new window when clicking a URL
;; by Karl Kleinpaste
(setq browse-url-new-window-p t)
(defun karl-browse (a)
"Wrapper, for new window use."
(browse-url-netscape a t))
(setq browse-url-browser-function (function karl-browse))
;; Marre d'écrire 'yes' en entier
(fset 'yes-or-no-p 'y-or-n-p)
;; clavier
(define-key function-key-map [dead-circumflex]
'compose-circumflex-map)
;; et puis ça c'est bien pour utiliser des trucs genre C-x 8 <
(require 'iso-insert)
;; Avant qu'on commence à charger le mulet
;(load "st-compile")
(message "Configuration de MIME")
;; MIME
(if (not st::load-pgnus)
; Pose problème avec Gnus 5.8.x
(progn
(load "mime-setup")
(setq mime-editor/transfer-level 8)
(setq mime-editor/split-message nil)))
;;*=======================
;;* recent-files.el --- Maintain menu of recently opened files.
(load "recent-files")
(recent-files-initialize)
;;*=======================
;;* history -- Keep track of the files last opened
(require 'history)
(load "history")
;;*=======================
;;* Filladapt-Mode
(require 'filladapt)
(setq-default filladapt-mode t)
(setq filladapt-fill-column-tolerance 5)
(add-hook 'c-mode-hook
'turn-off-filladapt-mode)
(add-hook 'text-mode-hook
'(lambda () (auto-fill-mode 1) ))
;:* crypt
;: Load crypt, which is a package for automatically decoding and
;: reencoding files by various methods - for example, you can visit a
;: .Z or .gz file, edit it, and have it automatically re-compressed
;: when you save it again.
(setq
;: default encryption mechanism
crypt-encryption-type 'pgp
;: make sure new passwords are correct
crypt-confirm-password t
;: if you don't encrypt anything, set this to tell it not to assume
;: that "binary" files are encrypted and require a password.
;: crypt-never-ever-decrypt t
)
(require 'crypt)
(message "Configuration du mode CSS")
(autoload `css-mode "css-mode")
(setq auto-mode-alist
(cons '("\\.css\\'" . css-mode) auto-mode-alist))
(message "Configuration de aucTeX")
(load "seb-emacs.tex")
(message "Configuration SGML/XML")
(load "seb-emacs.sgml")
;(message "Configuration de OO-Browser")
;(load "seb-emacs.oob")
(load "prog-conf.el")
;; Fonction pour aligner des expressions
(autoload 'align "align" nil t)
;; couleurs
(require 'font-lock)
;; on flash la parenthèse d'en face.
(require 'paren)
(paren-set-mode 'paren)
(message "Configuration BBDB")
(require 'bbdb)
(if (not st::load-pgnus)
(bbdb-initialize 'gnus 'message 'sc)
;; BBDB-type-completion in GNUS 5.8
(defun bbdb-insinuate-message ()
"Call this function to hook BBDB completion into message"
(define-key message-mode-map "\M-\t" 'bbdb-complete-name))
;; Call this function to hook BBDB completion into message
(add-hook 'message-mode-hook 'bbdb-insinuate-message)
)
(add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)
(setq
;; if you want to enter phone numbers that aren't the same
bbdb-north-american-phone-numbers-p nil
;; display a continuously-updating bbdb window
bbdb-use-pop-up nil
bbdb-auto-notes-alist (list
(list "x-face"
(list
(concat "[ \t\n]*\\([^ \t\n]*\\)"
"\\([ \t\n]+\\([^ \t\n]+\\)\\)?"
"\\([ \t\n]+\\([^ \t\n]+\\)\\)?"
"\\([ \t\n]+\\([^ \t\n]+\\)\\)?"
)
'face
"\\1\\3\\5\\7"))
;; This grabs the "Organization" header &
;; updates the company slot.
'("Organization"
(".*" company 0))
'("Newsgroups"
("[^,]+" newsgroups 0))
'("Subject"
(".*" last-subj 0 t))
'("User-Agent"
(".*" mailer 0))
'("X-Mailer"
(".*" mailer 0))
'("X-Newsreader"
(".*" mailer 0)))
)
(setq bbdb-offer-save 'auto) ;just save, don't ask
;;* Make the sequence "C-x w" execute the `what-line' command,
;;* which prints the current line number in the echo area.
(global-set-key "\C-xw" 'what-line)
;(load-default-sounds)
;; On mets les choses vraiment spécifiques à part
(cond
((string-match "XEmacs" emacs-version)
(progn (message "Chargement de spécificités XEmacs")
(load "seb-xemacs"))))
;; Et puis ça, aussi:
; Jolies couleurs pour Info
(load "gc-info")
(autoload 'which "which" "Show where FUNCTION will be loaded from" t)
;; Pour changer le titre de la fenêtre
(defconst se::system-short-name
(let* ((sys-name (system-name))
(per-match (string-match "\\." sys-name)))
(if (not per-match)
sys-name
(substring sys-name 0 per-match))))
(if (eq window-system 'x)
(setq frame-title-format
(concat "%S@" se::system-short-name ": %b")))
(resize-minibuffer-mode 1)
; Pour jouer avec des templates.
(setq tpl-dir (concat seb-lisp-dir "template"))
(setq load-path (append
load-path
(list (concat tpl-dir "/lisp/"))))
(require 'template)
(template-initialize)
;; Mode type :set num de VI
(autoload 'setnu-mode "setnu" nil t)
(autoload 'watson "watson" "Mode sherlock" t t)
;; Mode d'édition de fortunes
(autoload 'fortune "fortune" nil t)
(autoload 'fortune-add-fortune "fortune" nil t)
(autoload 'fortune-from-region "fortune" nil t)
(autoload 'fortune-compile "fortune" nil t)
(autoload 'fortune-to-signature "fortune" nil t)
;;
;; Config auto par XEmacs lui-même
;;
(custom-set-variables
'(locale-package t)
'(package-get-remote (quote (("ftp.lip6.fr" "/pub/emacs/xemacs/packages"))))
'(template-default-directories (list (concat tpl-dir "/templates")))
'(template-auto-insert t)
'(fortune-dir "~/src/sigs/")
)
(custom-set-faces
'(message-cited-text-face ((((class color) (background dark)) (:foreground "LightBlue")) (((class color) (background light)) (:foreground "DarkBlue")) (t (:bold t)))))