X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=emacs.el;h=0301d03b41fd972c26484946e70d2aded3291f0b;hb=a6876d786f18071b9abf0bfc56e6fc313e503e72;hp=c708d870094373b282ac95504222eacf69730c0e;hpb=de8dfabe25f8469dff7e8901919a5ae970592725;p=elisp.git diff --git a/emacs.el b/emacs.el index c708d87..0301d03 100644 --- a/emacs.el +++ b/emacs.el @@ -48,7 +48,9 @@ (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)) @@ -129,8 +131,12 @@ load-warning buffer in case of failure." ;; make emacs use the clipboard so that copy/paste works for other ;; x-programs. I have no clue how all that clipboard thing works. + ;; (setq x-select-enable-clipboard t) ;; (setq interprogram-paste-function 'x-cut-buffer-or-selection-value) +;; (setq x-select-enable-primary t) +;; (setq x-select-enable-clipboard t) +;; (global-set-key "\C-y" 'clipboard-yank) (setq @@ -203,7 +209,8 @@ load-warning buffer in case of failure." ;; 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 @@ -214,6 +221,12 @@ load-warning buffer in case of failure." 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 @@ -290,10 +303,12 @@ load-warning buffer in case of failure." ;; What modes for what file extentions (add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode)) +(require 'org-table) + (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) @@ -341,7 +356,7 @@ load-warning buffer in case of failure." )) ;; "tool" bar? Are you kidding? -(when (boundp 'tool-bar-mode) (tool-bar-mode -1)) +(when (fboundp 'tool-bar-mode) (tool-bar-mode -1)) ;; ;; If my own letter icon is here, use it and change its color ;; (when (file-exists-p "~/local/share/emacs/letter.xbm") @@ -370,6 +385,8 @@ load-warning buffer in case of failure." (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) @@ -386,14 +403,13 @@ load-warning buffer in case of failure." (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 "blue") - (sh-heredoc-face :foreground "blue") + (sh-heredoc :foreground "black" :background "#fff0f0") + (sh-heredoc-face :foreground "black" :background "#fff0f0") (font-lock-keyword-face :foreground "blue") (highlight :background "darkseagreen3") (isearch :background "orange" :foreground "black") @@ -408,7 +424,7 @@ load-warning buffer in case of failure." :inverse-video nil) (mode-line-inactive :background "gray60" :foreground "black" :box nil :inverse-video nil) - (region :background "springgreen2") + (region :background "white") (ff/date-info-face :foreground "white" :weight 'bold) (ff/mail-alarm-face :foreground "red" :weight 'bold) (gui-button-face :background "green" :foreground "white") @@ -427,7 +443,9 @@ load-warning buffer in case of failure." (ff/configure-faces '( - (escape-glyph :foreground "#c0c0c0" :weight 'bold) + ;; (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) (cperl-hash-face :background "gray90" :foreground "purple" :weight 'bold) @@ -443,15 +461,16 @@ load-warning buffer in case of failure." (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") (header-line :background "gray65") - (sh-heredoc :foreground "darkorange3") - (sh-heredoc-face :foreground "darkorange3") (highlight :background "turquoise") (message-cited-text-face :foreground "firebrick") (isearch :background "yellow" :foreground "black") @@ -463,19 +482,19 @@ load-warning buffer in case of failure." (trailing-whitespace :background "gray65") (cursor :inverse-video t) (enotes/list-title-face :foreground "blue" :weight 'bold) - (mode-line :background "#9090f0" :foreground "black" :box nil + (mode-line :background "#b0b0ff" :foreground "black" :box nil :inverse-video nil) (header-line :background "cornflowerblue" :foreground "black" :box nil :inverse-video nil) - (mode-line-inactive :background "#606080" :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 @@ -486,6 +505,19 @@ load-warning buffer in case of failure." :inverse-video nil)) )) +;; Why should I have to do this? +(add-hook 'sh-mode-hook + (lambda () + (set-face-attribute 'sh-heredoc nil + :foreground "#604000" + :background "white" + :italic t) + (set-face-attribute 'sh-heredoc-face nil + :foreground "#604000" + :background "white" + :italic t) + )) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Move the window on the buffer without moving the cursor ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -584,31 +616,6 @@ load-warning buffer in case of failure." ;; 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 " @@ -669,8 +676,8 @@ occurrences " (load "ps-print") (setq ps-print-color-p nil - ;; ps-paper-type 'letter - ps-paper-type 'a4 + 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 @@ -796,7 +803,7 @@ printer." (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)) ) @@ -815,8 +822,10 @@ printer." (ff/battery-percent "energy")))) ((string= battery-status "Discharging") - (format "B%d%%" (max (ff/battery-percent "charge") - (ff/battery-percent "energy")))) + (let* ((c (max (ff/battery-percent "charge") + (ff/battery-percent "energy"))) + (s (format "B%d%%" c))) + (if (>= c 20) s (propertize s 'face 'font-lock-warning-face)))) (t battery-status) @@ -1117,6 +1126,8 @@ goback argument, go back where we were." ;; Failsafe version if we can't load bbdb (defun ff/explicit-name (email) email) +(load "vc-git") + (when (ff/load-or-alert "bbdb") (setq @@ -1180,7 +1191,9 @@ ff/known-address-face is used." ) (ff/configure-faces '((ff/robot-address-face :foreground "green4") - (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" @@ -1188,7 +1201,6 @@ ff/known-address-face is used." ;; :slant 'italic ))) - ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1203,18 +1215,18 @@ ff/known-address-face is used." ) (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) - (find-file "~/private/secure-notes.gpg") + (find-file ff/secure-note-file) ;; Adds a new entry (i.e. date and a bunch of empty lines) (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 @@ -1222,10 +1234,11 @@ ff/known-address-face is used." (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) @@ -1408,21 +1421,20 @@ universal argument starts xfig even if the .fig does not exist" (insert "%% -*- mode: latex; mode: reftex; mode: flyspell; coding: utf-8; tex-command: \"pdflatex.sh\" -*- \\documentclass[12pt]{article} -\\usepackage[a4paper,top=2.5cm,bottom=2cm,left=1.5cm,right=1.5cm]{geometry} +\\usepackage[a4paper,top=2.5cm,bottom=2cm,left=2.5cm,right=2.5cm]{geometry} \\usepackage[utf8]{inputenc} \\usepackage{amsmath} \\usepackage{amssymb} -\\usepackage{hyperref} +\\usepackage[pdftex]{graphicx} +\\usepackage{microtype} +\\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref} -%% \\usepackage[pdftex]{graphicx} -%% \\usepackage{eurosym} +\\setlength{\\parindent}{0cm} +\\setlength{\\parskip}{12pt} +\\renewcommand{\\baselinestretch}{1.3} -\\hypersetup{ - colorlinks=true, - linkcolor=blue, - urlcolor=blue, - citecolor=blue -} +\\def\\argmax{\\operatornamewithlimits{argmax}} +\\def\\argmin{\\operatornamewithlimits{argmin}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Sans serif fonts @@ -1432,12 +1444,16 @@ universal argument starts xfig even if the .fig does not exist" %% \\renewcommand{\\ttdefault}{pcr} %% \\renewcommand*\\familydefault{\\sfdefault} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% \\def\\argmax{\\operatornamewithlimits{argmax}} -%% \\def\\argmin{\\operatornamewithlimits{argmin}} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% \\setlength{\\parindent}{0cm} -%% \\setlength{\\parskip}{12pt} -%% \\renewcommand{\\baselinestretch}{1.3} +%% The \\todo command +\\newcounter{nbdrafts} +\\setcounter{nbdrafts}{0} +\\makeatletter +\\newcommand{\\checknbdrafts}{ +\\ifnum \\thenbdrafts > 0 +\\@latex@warning@no@line{*WARNING* The document contains \\thenbdrafts \\space draft note(s)} +\\fi} +\\newcommand{\\todo}[1]{\\addtocounter{nbdrafts}{1}{\\color{red} #1}} +\\makeatother %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \\begin{document} @@ -1626,6 +1642,11 @@ int main(int argc, char **argv) {