-;; -*-Emacs-Lisp-*-
+;; -*- mode: Emacs-Lisp; mode: rainbow; -*-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This program is free software; you can redistribute it and/or ;;
;; Contact <francois@fleuret.org> for comments & bug reports ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Ugly hack because 23.2 is not installed properly in my Debian
+
+(when (and (>= emacs-major-version 23)
+ (>= emacs-minor-version 2))
+ (add-to-list 'load-path "/usr/share/emacs/site-lisp/vm/")
+ (add-to-list 'load-path "/usr/share/emacs/site-lisp/bbdb/lisp/")
+ (add-to-list 'load-path "/usr/share/emacs/site-lisp/mailcrypt/")
+)
+
;; It's better to set the preferences in the .Xresources so that the
;; window is not first displayed with the wrong options
:inverse-video nil)
(mode-line-inactive :background "gray60" :foreground "black" :box nil
:inverse-video nil)
- ;; (tex-verbatim :family nil)
(region :background "springgreen2")
(ff/date-info-face :foreground "white" :weight 'bold)
(ff/mail-alarm-face :foreground "red" :weight 'bold)
;; (ff/configure-faces '((default :background "gray80" :foreground "black")))
(when window-system
- (setq
- display-time-use-mail-icon t)
+ ;; (setq
+ ;; display-time-use-mail-icon t)
(ff/configure-faces
'(
- (escape-glyph :foreground "gray70" :weight 'bold)
+ (escape-glyph :foreground "#c0c0c0" :weight 'bold)
(default :background "gray90" :foreground "black")
(cperl-array-face :background "gray90" :foreground "blue" :weight 'bold)
(cperl-hash-face :background "gray90" :foreground "purple" :weight 'bold)
(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-comment-face :foreground "")
+ ;; (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")
(header-line :background "gray65")
:inverse-video nil)
;; (fringe :background "black" :foreground "gray90")
(fringe :background "gray65")
+ (tex-verbatim :family "courrier")
(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)
(setq ps-print-color-p nil
;; ps-paper-type 'letter
ps-paper-type 'a4
- ps-top-margin (* 1.75 56.692)
- ps-left-margin 56.692
- ps-bottom-margin 56.692
- ps-right-margin 56.692
+ ;; ps-top-margin (* 1.75 56.692)
+ ;; ps-left-margin 56.692
+ ;; ps-bottom-margin 56.692
+ ;; ps-right-margin 56.692
;; Simple header. Remove that silly frame shadow.
ps-print-header nil
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; http://blog.tuxicity.se/elisp/emacs/2010/03/26/rename-file-and-buffer-in-emacs.htm
+
+(defun rename-file-and-buffer ()
+ "Renames current buffer and file it is visiting."
+ (interactive)
+ (let ((name (buffer-name))
+ (filename (buffer-file-name)))
+ (if (not (and filename (file-exists-p filename)))
+ (message "Buffer '%s' is not visiting a file!" name)
+ (let ((new-name (read-file-name "New name: " filename)))
+ (cond ((get-buffer new-name)
+ (message "A buffer named '%s' already exists!" new-name))
+ (t
+ (rename-file name new-name 1)
+ (rename-buffer new-name)
+ (set-visited-file-name new-name)
+ (set-buffer-modified-p nil)))))))
+
+(global-set-key (kbd "C-c r") 'rename-file-and-buffer)
+
(defun ff/non-existing-filename (dir prefix suffix)
"Returns a filename of the form DIR/PREFIX[.n].SUFFIX whose file does
not exist"
(propertize
(with-temp-buffer (apply 'call-process x)
(buffer-string))
- 'face 'highlight)
+ 'face '(:background "gray80"))
(with-temp-buffer (apply 'call-process x)
(buffer-string))
))
display-time-interval 15 ;; Check every 15s
display-time-string-forms `(
+
;; (if mail
;; (concat " "
;; (propertize " mail "
"The face to display known mail identities.")
(defface ff/unknown-address-face
- '((t (:foreground "red3")))
+ '((t (:foreground "red4")))
"The face to display unknown mail identities.")
(defun ff/explicit-name (email)
(bbdb-record-raw-notes record)))
'ff/known-address-face))
(error
- (propertize (or (and data (concat "<" email ">"))
+ (propertize (or (and data (concat "<" net ">"))
"*undefined*")
'face 'ff/unknown-address-face)
))
(or (re-search-forward "{\\([^{}]*.\\)eps}" (point-at-eol) t)
(re-search-forward "{\\([^{}]*.\\)pdf}" (point-at-eol) t)
(re-search-forward "{\\([^{}]*.\\)pdf_t}" (point-at-eol) t)
+ (re-search-forward "{\\([^{}]*.\\)png}" (point-at-eol) t)
+ (re-search-forward "{\\([^{}]*.\\)jpg}" (point-at-eol) t)
)))
(and (<= (match-beginning 1) (point))
(>= (match-end 1) (- (point) 2))))
(ff/run-eps-edition (match-string-no-properties 1)
'(("fig" . "xfig")
+ ("jpg" . "gimp" )
("png" . "gimp") ("pgm" . "gimp") ("ppm" . "gimp")
("jpg" . "xv"))
universal)
(when (ff/load-or-alert "lookup-dict" t)
(define-key global-map [(control \?)] 'lookup-dict))
+;; (defun ff/generate-password () (interactive)
+ ;; (let ((c "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-"))
+ ;; (nth (random (length c)) c))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Automatization of things I do often
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
%% \\usepackage{hyperref}
%% \\usepackage{harvard}
+\\setlength{\\parindent}{0cm}
+\\setlength{\\parskip}{12pt}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Sans serif fonts
%% \\usepackage[T1]{fontenc}
%% \\usepackage[scaled]{helvet}
%% \\usepackage[cm]{sfmath}
%% \\renewcommand{\\ttdefault}{pcr}
%% \\renewcommand*\\familydefault{\\sfdefault}
-
-\\setlength{\\parindent}{0cm}
-\\setlength{\\parskip}{12pt}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Draft layout
+%% \\setlength{\\parindent}{1cm}
+%% \\renewcommand{\\baselinestretch}{2.0}
+%% \\setlength{\\oddsidemargin}{-0.6cm}
+%% \\setlength{\\evensidemargin}{0cm}
+%% \\setlength{\\textwidth}{17.5cm}
+%% \\setlength{\\textheight}{23cm}
+%% \\setlength{\\topmargin}{-1.5cm}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \\renewcommand{\\baselinestretch}{1.3}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun ff/remove-ip-header () (interactive)
+ (save-excursion
+ (goto-char (point-min))
+ (when (and (re-search-forward "START_IP_HEADER" nil t)
+ (re-search-forward "END_IP_HEADER" nil t))
+ (message "yep"))
+ ))
+
(defun ff/add-gpl ()
"Adds the GPL statements at the beginning of current buffer."
(interactive)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defun ff/start-c ()
+ "Adds the header to start a C program."
+ (interactive)
+ ;; (beginning-of-buffer)
+ (insert
+ "
+#include <stdio.h>
+#include <stdlib.h>
+
+int main(int argc, char **argv) {
+ exit(EXIT_SUCCESS);
+}
+")
+ (previous-line 2)
+ )
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
(defun ff/start-c++ ()
"Adds the header to start a C++ program."
(interactive)
(interactive)
(let ((flag-name (replace-regexp-in-string
"[\. \(\)]" "_"
- (upcase (file-name-nondirectory (buffer-name))))))
+ (upcase (file-name-nondirectory (buffer-file-name))))))
(goto-char (point-max))
(insert "\n#endif\n")
(goto-char (point-min))
"))
)
-(add-hook 'latex-mode-hook (lambda ()
- (define-key latex-mode-map
- [(meta S)] 'ff/start-slide)
- (define-key latex-mode-map
- [(control c) (control a)] 'align-current)
- ))
+(add-hook
+ 'latex-mode-hook
+ (lambda ()
+ (define-key latex-mode-map [(meta S)] 'ff/start-slide)
+ (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)
+ (flyspell-mode)
+ (reftex-mode)
+ ))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(previous-line 1)
)
+ (when (string-match "\\.c$" filename)
+ (c-mode)
+ (ff/add-copyrights)
+ (ff/start-c))
+
(when (string-match "\\.cc$" filename)
(c++-mode)
(ff/add-copyrights)
;; Closes the current \begin{}
-(add-hook 'latex-mode-hook (lambda () (define-key latex-mode-map [(control end)] 'tex-close-latex-block)))
-
(when (ff/load-or-alert "longlines")
(setq longlines-show-hard-newlines t
longlines-auto-wrap t
- longline-show-effect #(" -- |\n" 0 2 (face escape-glyph))
+ ;; longlines-show-effect #("|\n" 0 2 (face escape-glyph))
)
;; (defun ff/auto-longlines ()
)
-(add-hook 'latex-mode-hook
- (lambda ()
- (define-key latex-mode-map [(control tab)]
- 'ispell-complete-word)))
-
;; Meta-/ remaped (completion)
(define-key global-map [(shift right)] 'dabbrev-expand)
"-framedrop"
"-zoom"
"-subfont-osd-scale" "3"
+ ;; "-stop-xscreensaver"
;; "-osdlevel" "3"
)
media/mplayer/timing-request-period 5.0
(flyspell-mode)
(when flyspell-mode (flyspell-buffer)))
+(defun ff/move-region-to-fridge () (interactive)
+ "Cut the current region, paste it in a file called ./fridge
+with a time tag, and save this file"
+ (kill-region (region-beginning) (region-end))
+ (with-current-buffer (find-file-noselect "fridge")
+ (goto-char (point-max))
+ (insert "\n"
+ (format-time-string "%Y %b %d %H:%M:%S" (current-time))
+ "\n\n")
+ (yank)
+ (save-buffer)
+ )
+ )
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; My own keymap
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-key ff/map [(control g)] 'ff/git-status)
(define-key ff/map [(control w)] 'server-edit)
(define-key ff/map [(control d)] 'ff/elisp-debug-on)
+(define-key ff/map "d" 'diary)
(define-key ff/map [(control \`)] 'ff/bash-new-buffer)
(define-key ff/map [(control n)] 'enotes/show-all-notes)
(define-key ff/map [(control s)] 'ff/secure-note-add)
(define-key ff/map [(control c)] 'calendar)
;; (define-key ff/map [(control c)] (lambda () (interactive) (save-excursion (calendar))))
(define-key ff/map [(control l)] 'goto-line)
+(define-key ff/map "l" 'longlines-mode)
(define-key ff/map [(control o)] 'selector/quick-pick-recent)
(define-key ff/map "s" 'selector/quick-move-in-buffer)
(define-key ff/map "S" 'selector/search-sentence)
(lambda () (interactive)
(bookmark-set)
(bookmark-save)))
+(define-key ff/map "f" 'ff/move-region-to-fridge)
(define-key ff/map [(control f)] 'ff/flyspell-mode)
(define-key ff/map [?\C-0] 'ff/delete-annoying-windows)
(when (ff/load-or-alert "enotes" t)
(setq enotes/file "~/private/enotes"
enotes/show-help nil
- enotes/full-display nil)
+ enotes/full-display nil
+ enotes/default-time-fields "9:30")
+
(enotes/init)
;; (add-hook 'enotes/alarm-hook
;; (lambda () (ff/play-sound-async "~/local/sounds/three_notes2.wav")))