;; Contact <francois@fleuret.org> for comments & bug reports ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; (defadvice display-warning (before ff/blah (type message &optional level buffer-name) activate)
+ ;; (message "--- BLAH %s ---" message)
+ ;; (backtrace)
+;; )
+
;; It's better to set the preferences in the .Xresources so that the
;; window is not first displayed with the wrong options
;; Xft.antialias: true
;; Xft.rgba: rgb
-;; (set-default-font "Inconsolata 15")
+(set-frame-font "Inconsolata 14")
;; (package-initialize)
-(set-default-font "Bitstream vera sans mono-12")
+;; (set-default-font "Bitstream vera sans mono 12")
;; (set-default-font "Liberation Mono-13")
;; (set-default-font "DejaVu sans mono 15")
;; (set-default-font "Droid sans mono 13")
;; use colorization for all modes
(global-font-lock-mode t)
+;; (load "auctex")
+
(setq font-lock-maximum-decoration 3
;;'((latex-mode . 2) (t . 2))
)
(ff/compile-when-needed (concat name ".el"))
(mapc (lambda (dir)
(let* ((src (concat dir "/" name)))
+ ;; (message "Compiling " scr) ;;***********
(when (file-newer-than-file-p src (concat src "c"))
- (if (let ((byte-compile-verbose nil))
- (condition-case nil
- (byte-compile-file src)
- (error nil)))
+ (if
+ ;; (let ((byte-compile-verbose nil))
+ ;; (condition-case nil
+ ;; (byte-compile-file src)
+ ;; (error nil)))
+
+ (byte-compile-file src)
+
(message (format "Compiled %s" src ))
(message (format "Failed compilation of %s" src))))))
load-path)))
next-error-highlight t
;; blink the screen instead of beeping
- ;; visible-bell t
+ visible-bell t
;; take the CR when killing a line
kill-whole-line t
epa-file-cache-passphrase-for-symmetric-encryption t
;; And I like ascii files
epa-armor t
+ ;; This goes with in your ~/.gnupg/gpg-agent.conf:
+ ;; allow-emacs-pinentry
+ ;; allow-loopback-pinentry
+ epa-pinentry-mode 'loopback
;; tramp-default-method "ssh"
tramp-default-method "scp"
;; vertically, even when the said window is very wide
split-height-threshold 0
split-width-threshold nil
-
)
+(custom-set-variables
+ '(query-replace-from-to-separator nil))
+
;; The backups
(setq
(sh-heredoc :foreground "black" :background "#fff0f0")
(sh-heredoc-face :foreground "black" :background "#fff0f0")
(header-line :background "gray65")
- (highlight :background "turquoise")
+ (highlight :background "white")
(message-cited-text-face :foreground "firebrick")
(isearch :background "yellow" :foreground "black")
(isearch-lazy-highlight-face' :background "yellow3" :foreground "black")
;; (fringe :background "black" :foreground "gray90")
(fringe :background "gray80")
(ff/date-info-face :foreground "white")
- (ff/battery-info-face :foreground "black")
+ (ff/battery-info-face :foreground "blue")
(ff/battery-info-alarm-face :foreground "red")
;; (ff/mail-alarm-face :foreground "white" :background "red2")
;; (alarm-vc-face :foreground "black" :background "yellow" :weight 'normal)
(sh-heredoc :foreground "black" :background "#fff0f0")
(sh-heredoc-face :foreground "black" :background "#fff0f0")
(font-lock-keyword-face :foreground "blue")
- (highlight :background "darkseagreen3")
+ (highlight :background "white")
(isearch :background "orange" :foreground "black")
(isearch-lazy-highlight-face' :background "yellow" :foreground "black")
;; (display-time-mail-face :background "white")
(define-key global-map [(shift down)] 'ff/comment-and-go-down)
(define-key global-map [(shift up)] 'ff/uncomment-and-go-up)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun ff/show-compilation-buffer-split-window ()
+ "Split the window vertically and show the compilation buffer in the newly created right one"
+ (interactive)
+
+ (let ((b (get-buffer "*compilation*")))
+ (if b (show-buffer (split-window-right) b)
+ (error "Cannot find a compilation buffer"))
+ )
+)
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Counting various entities in text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Dealing with the laptop battery
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defcustom ff/battery-dirs '("/sys/class/power_supply/BAT0"
- "/sys/class/power_supply/BAT1")
+(defcustom ff/battery-dirs '("/sys/class/power_supply/BAT0")
"*Where to gather the battery information")
(defcustom ff/temperature-files '("/sys/class/thermal/thermal_zone0/temp"
- "/sys/class/thermal/thermal_zone1/temp")
+ "/sys/class/thermal/thermal_zone1/temp"
+ "/sys/class/thermal/thermal_zone2/temp"
+ "/sys/class/thermal/thermal_zone3/temp"
+ "/sys/class/thermal/thermal_zone4/temp"
+ "/sys/class/thermal/thermal_zone5/temp")
"*Where to gather the thermal information")
(defun ff/file-first-line (file)
)
)
- ;; (`unknown "✱")
- (`unknown "F")
+ (`unknown (propertize "☼" 'face 'ff/battery-info-face))
+ ;; (`unknown "☼")
+ ;; (`unknown "F")
(_ "?"))
(error nil))
)
(load "vc-git")
-(defun ff/git-pull-push () (interactive)
+(defun ff/git-pull-push (universal) (interactive "P")
+ (when universal (shell-command "git commit -a -m \"Update.\"" nil))
(message "git pull / push ...")
- (shell-command "git pull && git push" nil)
+ (async-shell-command "git remote get-url origin && git pull && git push" nil)
)
(defun ff/git-pull () (interactive)
;; Failsafe version if we can't load bbdb
(defun ff/explicit-name (email) email)
- (when (ff/load-or-alert "bbdb")
+ (when (with-no-warnings (ff/load-or-alert "bbdb"))
(setq
;; Stop asking (if not t or nil, will not ask)
;; An encrypted file to put secure stuff (passwords, ...)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(when (ff/load-or-alert "mailcrypt")
- (mc-setversion "gpg")
- ;; Keep the passphrase for 10min
- (setq mc-passwd-timeout 600
- ff/secure-note-file "~/private/secure-notes.gpg")
- )
+(setq ff/secure-note-file "~/private/secure-notes.gpg")
+
+;; (when (ff/load-or-alert "mailcrypt")
+ ;; (mc-setversion "gpg")
+ ;; ;; Keep the passphrase for 10min
+ ;; (setq mc-passwd-timeout 600
+ ;; ff/secure-note-file "~/private/secure-notes.gpg")
+ ;; )
(defface ff/secure-date
'((t (:background "white" :weight bold)))
'(("fig" . "xfig")
("jpg" . "gimp" )
("png" . "gimp") ("pgm" . "gimp") ("ppm" . "gimp")
- ("jpg" . "xv"))
+ ("svg" . "inkscape"))
universal)
(if (not (and (buffer-file-name) (string-match "\\(.*\\)\.tex$"
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Tex mode
-;; When working on a tex file with other people, I can just change
-;; ff/tex-command in the -*- part of the file so that I don't mess up
-;; other's people configuration.
+(defun ff/save-window-configuration (universal) (interactive "P")
+ (if universal
+ (progn
+ (setq ff/window-configuration (current-window-configuration))
+ (message "Window configuration stored")
+ )
+ (set-window-configuration ff/window-configuration))
+ )
-(defadvice tex-file (around ff/set-my-own-tex-command () activate)
- (let ((tex-command
- (or (and (boundp 'ff/tex-command)
- ff/tex-command)
- tex-command)))
- ad-do-it))
+(define-key global-map [(control =)] 'ff/save-window-configuration)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Tex mode
+
+;; (defadvice tex-file (around ff/set-my-own-tex-command () activate)
+ ;; (let ((ff/window-configuration-before-compilation (current-window-configuration)))
+ ;; ad-do-it
+ ;; (set-window-configuration ff/window-configuration-before-compilation)
+ ;; )
+ ;; )
;; This is a bit hardcore, but really I can't bear the superscripts in
;; my emacs window and could not find another way to deactivate them.
;; (ff/play-sound-async "~/local/sounds/short_la.wav")
))
-(setq ring-bell-function 'ff/ring-bell)
+;; (setq ring-bell-function 'ff/ring-bell)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Past the content of the url currently in the kill-ring with
(call-process "w3m" nil t nil "-dump" url))
)
-(define-key global-map [(shift mouse-2)]
- (lambda () (interactive) (ff/insert-url (current-kill 0))))
+;; (define-key global-map [(shift mouse-2)]
+ ;; (lambda () (interactive) (ff/insert-url (current-kill 0))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Trying to deal with cut-paste
+
+(setq x-select-enable-clipboard t)
+(setq interprogram-paste-function 'x-cut-buffer-or-selection-value)
+(define-key global-map [(shift mouse-2)] 'clipboard-yank)
;; lookup-dict is one of my own scripts, check my web page
(goto-char (point-min))
(insert "%% -*- mode: latex; mode: reftex; mode: flyspell; coding: utf-8; tex-command: \"pdflatex.sh\" -*-
-\\documentclass[12pt,a4paper,twoside]{article}
+\\documentclass[11pt,a4paper,twoside]{article}
\\usepackage[a4paper,top=2.5cm,bottom=2cm,left=2.5cm,right=2.5cm]{geometry}
\\usepackage[utf8]{inputenc}
\\usepackage{amsmath}
\\usepackage{amssymb}
\\usepackage[pdftex]{graphicx}
-\\usepackage{microtype}
\\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref}
+\\usepackage{tikz}
+\\usepackage[round]{natbib}
+\\usepackage{cmbright}
\\setlength{\\parindent}{0cm}
\\setlength{\\parskip}{12pt}
-\\renewcommand{\\baselinestretch}{1.3}
+%\\renewcommand{\\baselinestretch}{1.3}
+%\\setlength{\\tabcolsep}{0pt}
+%\\renewcommand{\\arraystretch}{1.0}
\\def\\argmax{\\operatornamewithlimits{argmax}}
\\def\\argmin{\\operatornamewithlimits{argmin}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Open sans font
-%%\\usepackage[default]{opensans}
-%%\\usepackage{cmbright}
-%%\\renewcommand{\\familydefault}{fos}
-%%\\renewcommand{\\seriesdefault}{l}
-%%\\renewcommand{\\bfdefault}{sb}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% The \\todo command
\\newcounter{nbdrafts}
(goto-char (point-max))
(insert "
+\\bibliographystyle{abbrvnat}
+
+\\bibliography{dlc}
+
+\\checknbdrafts
+
\\end{document}
"))
(latex-mode))
"Adds all the stuff to start a new python file"
(interactive)
(goto-char (point-min))
- (insert "#!/usr/bin/env python-for-pytorch
-
-import torch, torchvision
+ (insert "#!/usr/bin/env python
import math
+import torch, torchvision
+
from torch import nn
from torch.nn import functional as F
-from torch import Tensor
-from torch import Tensor as T
-
-from torch.autograd import Variable
-from torch.autograd import Variable as V
-from torch.nn.parameter import Parameter
-from torch.nn import Module
-
")
(python-mode)
)
(define-key global-map [(shift f1)] 'compile)
(define-key global-map [f2] 'next-error)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Horrible hack
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun dont-delay-compile-warnings (fun type &rest args)
+ (if (eq type 'bytecomp)
+ (let ((after-init-time t))
+ (apply fun type args))
+ (apply fun type args)))
+(advice-add 'display-warning :around #'dont-delay-compile-warnings)
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Related to mail
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Compiles the latex file in the current buffer
+
+
(setq tex-start-commands "\\input")
(define-key global-map [f3] 'tex-file)
(define-key global-map [(shift f3)] 'tex-bibtex-file)
(error "No file attached to this buffer")))
(defun ff/insert-date (&optional universal) (interactive "P")
- ;; (insert (format-time-string "\n * %Y %b %d %H:%M:%S\n\n" (current-time)))
- ;; (insert (format-time-string "%Y %b %d %H:%M:%S" (current-time)))
- ;; (insert (format-time-string "%d.%m.%y" (current-time)))
- (if universal
- (insert (format-time-string "%d.%m.%Y %H:%M:%S" (current-time)))
- (insert (format-time-string "%d.%m.%Y" (current-time))))
+ (insert (format-time-string "\n * %H:%M:%S %A %B %d, %Y\n\n" (current-time)))
+ ;; ;; (insert (format-time-string "%Y %b %d %H:%M:%S" (current-time)))
+ ;; ;; (insert (format-time-string "%d.%m.%y" (current-time)))
+ ;; (if universal
+ ;; (insert (format-time-string "%d.%m.%Y %H:%M:%S" (current-time)))
+ ;; (insert (format-time-string "%d.%m.%Y" (current-time))))
)
(define-key ff/map [(control g)] 'ff/git-status)
(define-key ff/map [(control a)] 'auto-fill-mode)
(define-key ff/map [(control i)] 'ff/system-info)
(define-key ff/map "w" 'ff/word-occurences)
-(define-key ff/map [(control c)] 'calendar)
+;; (define-key ff/map [(control c)] 'calendar)
+(define-key ff/map [(control c)] 'ff/show-compilation-buffer-split-window)
;; (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)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Runs in server mode, so that emacsclient works
-(server-start)
+;; ;;(server-start)
-(defun ff/raise-frame-and-give-focus ()
- (when window-system
- (raise-frame)
- (x-focus-frame (selected-frame))
- (set-mouse-pixel-position (selected-frame) 4 4)
- ))
+;; (defun ff/raise-frame-and-give-focus ()
+ ;; (when window-system
+ ;; (raise-frame)
+ ;; (x-focus-frame (selected-frame))
+ ;; (set-mouse-pixel-position (selected-frame) 4 4)
+ ;; ))
-;; Raises the window when the server is invoked
+;; ;; Raises the window when the server is invoked
-(add-hook 'server-switch-hook 'ff/raise-frame-and-give-focus)
+;; (add-hook 'server-switch-hook 'ff/raise-frame-and-give-focus)