;; Xft.antialias: true
;; Xft.rgba: rgb
-(set-frame-font "Inconsolata 14")
+(set-frame-font "Inconsolata 15")
;; (package-initialize)
+;;(set-face-attribute 'default nil :height 130)
+
+;;(set-default-font "Inconsolata 13")
;; (set-default-font "Bitstream vera sans mono 12")
;; (set-default-font "Liberation Mono-13")
;; (set-default-font "DejaVu sans mono 15")
;; Where I keep my own scripts
-(add-to-list 'load-path "~/sources/gpl/elisp")
-(add-to-list 'load-path "~/sources/elisp")
+(add-to-list 'load-path "~/src/gpl/elisp")
+(add-to-list 'load-path "~/src/elisp")
(add-to-list 'load-path "~/local/elisp")
;; No, I do not like menus
;; What modes for what file extentions
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
-(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))
+;;(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))
(require 'org-table)
;; (add-hook 'lua-mode-hook 'flyspell-prog-mode)
(add-hook 'log-edit-mode-hook 'flyspell-mode)
-(add-hook 'markdown-mode-hook 'flyspell-mode)
-(add-hook 'markdown-mode-hook 'auto-fill-mode)
+;; (add-hook 'markdown-mode-hook 'flyspell-mode)
+;; (add-hook 'markdown-mode-hook 'auto-fill-mode)
;; I am a power-user
(defun ff/alsa-sound (file)
"Plays a sound with ALSA."
(interactive)
- (process-kill-without-query (start-process-shell-command "aplay"
+ (process-query-on-exit-flag (start-process-shell-command "aplay"
nil
"aplay" "-q" file)))
;; then uncommenting would be very counter-intuitive).
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defun ff/comment-and-go-down (arg)
- "Comments and goes down ARG lines."
- (interactive "p")
- (condition-case nil
- (comment-region (point-at-bol) (point-at-eol)) (error nil))
- (next-line 1)
- (if (> arg 1) (ff/comment-and-go-down (1- arg))))
+;; (defun ff/comment-and-go-down (arg)
+;; "Comments and goes down ARG lines."
+;; (interactive "p")
+;; (condition-case nil
+;; (comment-region (point-at-bol) (point-at-eol)) (error nil))
+;; (next-line 1)
+;; (if (> arg 1) (ff/comment-and-go-down (1- arg))))
+;;
+;; (defun ff/uncomment-and-go-up (arg)
+;; "Uncomments and goes up ARG lines."
+;; (interactive "p")
+;; (condition-case nil
+;; (uncomment-region (point-at-bol) (point-at-eol)) (error nil))
+;; (next-line -1)
+;; (if (> arg 1) (ff/uncomment-and-go-up (1- arg))))
+;;
+;; (define-key global-map [(shift down)] 'ff/comment-and-go-down)
+;; (define-key global-map [(shift up)] 'ff/uncomment-and-go-up)
-(defun ff/uncomment-and-go-up (arg)
- "Uncomments and goes up ARG lines."
- (interactive "p")
- (condition-case nil
- (uncomment-region (point-at-bol) (point-at-eol)) (error nil))
- (next-line -1)
- (if (> arg 1) (ff/uncomment-and-go-up (1- arg))))
-
-(define-key global-map [(shift down)] 'ff/comment-and-go-down)
-(define-key global-map [(shift up)] 'ff/uncomment-and-go-up)
+(define-key global-map [(shift down)] 'comment-line)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(interactive)
(let ((b (get-buffer "*compilation*")))
- (if b (show-buffer (split-window-right) b)
+ (if b (display-buffer b)
(error "Cannot find a compilation buffer"))
)
)
)
;; Show the time, mail and stuff
-(display-time)
+;; (display-time)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Moving through buffers
(term-set-escape-char ?\C-x)
;; I like the shell buffer and windows to be deleted when the
- ;; shell process terminates. It's a bit of a mess to acheive this.
+ ;; shell process terminates. It's a bit of a mess to achieve this.
(let ((process (get-buffer-process (current-buffer))))
- (process-kill-without-query process)
+ (process-query-on-exit-flag process)
(set-process-sentinel process
;; 'ff/kill-associated-buffer-and-delete-windows
'ff/kill-associated-buffer
(when (ff/load-or-alert "alarm-vc" t)
(setq alarm-vc-mode-exceptions "^VM"))
-(when (ff/load-or-alert "git")
- (setq git-show-unknown nil)
- )
+;; (when (ff/load-or-alert "git")
+ ;; (setq git-show-unknown nil)
+ ;; )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Makes .sh and others files executable automagically
(load "vc-git")
(defun ff/git-pull-push (universal) (interactive "P")
+ (message "black *.py ...")
+ (shell-command "black *.py" nil)
(when universal (shell-command "git commit -a -m \"Update.\"" nil))
(message "git pull / push ...")
- (async-shell-command "git remote get-url origin && git pull && git push" nil)
+ (shell-command "git pull && git push" nil)
+ ;;(async-shell-command "git remote get-url origin && git pull && git push" nil)
+ (message "All good captain")
)
(defun ff/git-pull () (interactive)
(define-key global-map [(control x) (v) (p)] 'ff/git-pull-push)
(define-key global-map [(control x) (v) (P)] 'ff/git-pull)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; The big stuff (bbdb, mailcrypt, etc.)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(setq bbdb-file "~/private/bbdb")
-
-(when (file-exists-p bbdb-file)
-
- ;; Failsafe version if we can't load bbdb
- (defun ff/explicit-name (email) email)
-
- (when (with-no-warnings (ff/load-or-alert "bbdb"))
-
- (setq
- ;; Stop asking (if not t or nil, will not ask)
- bbdb-offer-save 'never
- ;; I hate when bbdb decides to mess up my windows
- bbdb-use-pop-up nil
- ;; I have no problem with bbdb asking me if the sender email
- ;; does not match exactly the address we have in the database
- bbdb-quiet-about-name-mismatches 0
- ;; I have european friends, too
- bbdb-north-american-phone-numbers-p nil
- ;; To cycle through all possible addresses
- bbdb-complete-name-allow-cycling t
- ;; Cycle with full names only, not through all net-addresses alone too
- bbdb-dwim-net-address-allow-redundancy t
- ;; Do not add new addresses automatically
- bbdb-always-add-addresses nil
- )
-
- (defface ff/known-address-face
- '((t (:foreground "blue2")))
- "The face to display known mail identities.")
-
- (defface ff/unknown-address-face
- '((t (:foreground "gray50")))
- "The face to display unknown mail identities.")
-
- (defun ff/explicit-name (email)
- "Returns a string identity for the first address in EMAIL. The
-identity is taken from bbdb if possible or from the address itself
-with mail-extract-address-components. The suffix \"& al.\" is added if
-there are more than one address.
-
-If no bbdb record is found, the name is propertized with the face
-ff/unknown-address-face. If a record is found and contains a note
-'face, the associated face is used, otherwise
-ff/known-address-face is used."
-
- (and email
- (let* ((data (mail-extract-address-components email))
- (name (car data))
- (net (cadr data))
- (record (bbdb-search-simple nil net)))
-
- (concat
-
- (condition-case nil
- (propertize (bbdb-record-name record)
- 'face
- (or (cdr (assoc 'face
- (bbdb-record-raw-notes record)))
- 'ff/known-address-face))
- (error
- (propertize (or (and data (concat "<" net ">"))
- "*undefined*")
- 'face 'ff/unknown-address-face)
- ))
- (if (string-match "," (mail-strip-quoted-names email)) " & al.")
- )))
- )
-
- (ff/configure-faces '((ff/robot-address-face :foreground "green4")
- (ff/personal-address-face :foreground "dark magenta" :weight 'bold)
- (ff/important-address-face :foreground "red3"
- :weight 'bold
- )))
-
- )
- )
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; An encrypted file to put secure stuff (passwords, ...)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(append '("xdvi-for-latex" nil "xdvi")
ff/xdvi-for-latex-options
(list dvi-name))))
- (process-kill-without-query xdvi-process))))
+ (process-query-on-exit-flag xdvi-process))))
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\\usepackage{amsmath,amssymb,dsfont}
\\usepackage[pdftex]{graphicx}
\\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref}
-\\usepackage{tikz}
\\usepackage[round]{natbib}
-\\usepackage{cmbright}
+%\\usepackage{cmbright}
+%\\usepackage{showframe}
+
+\\usepackage{tikz}
+\\usetikzlibrary{arrows,arrows.meta,calc}
+\\usetikzlibrary{patterns,backgrounds}
+\\usetikzlibrary{positioning,fit}
+\\usetikzlibrary{shapes.geometric,shapes.multipart}
+\\usetikzlibrary{patterns.meta,decorations.pathreplacing,calligraphy}
+\\usetikzlibrary{tikzmark}
+\\usetikzlibrary{decorations.pathmorphing}
\\setlength{\\parindent}{0cm}
\\setlength{\\parskip}{12pt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\\begin{frame}{")
+\\begin{frame}[fragile]{")
(save-excursion (insert "}{}
"))
(insert "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\\begin{frame}{")
+\\begin{frame}[fragile]{")
(save-excursion (insert "}{}
;; buffer, and to edit the .fig or bitmap image used to generate the
;; .eps at point
-(define-key global-map [f4] 'ff/run-viewer)
+(defun ff/speech-whisper () (interactive)
+ (shell-command
+ (concat "speech-whisper.sh " (if current-input-method "fr" "en"))
+ (current-buffer)
+ )
+)
+
+(define-key global-map [f4] 'ff/speech-whisper)
;; Closes the current \begin{}
only one in the frame. If the buffer has to be kept, go to the
next one. With universal argument, kill all killable buffers."
(interactive "P")
- (if universal
- (let ((nb-killed 0))
- (mapc (lambda (x)
- (unless (string-match ff/kill-this-buffer-and-delete-window-exceptions
- (buffer-name x))
- (kill-buffer x)
- (setq nb-killed (1+ nb-killed))
- ))
- (buffer-list))
- (message "Killed %d buffer%s" nb-killed (if (> nb-killed 1) "s" "")))
- (if (string-match ff/kill-this-buffer-and-delete-window-exceptions (buffer-name))
- (ff/next-buffer)
- (kill-this-buffer)))
- (unless (one-window-p t) (delete-window))
+ (unless (minibuffer-window-active-p (selected-window))
+ (if universal
+ (let ((nb-killed 0))
+ (mapc (lambda (x)
+ (unless (string-match ff/kill-this-buffer-and-delete-window-exceptions
+ (buffer-name x))
+ (kill-buffer x)
+ (setq nb-killed (1+ nb-killed))
+ ))
+ (buffer-list))
+ (message "Killed %d buffer%s" nb-killed (if (> nb-killed 1) "s" "")))
+ (if (string-match ff/kill-this-buffer-and-delete-window-exceptions (buffer-name))
+ (ff/next-buffer)
+ (let ((kill-buffer-query-functions nil))
+ (kill-this-buffer))
+ ))
+ (unless (one-window-p t) (delete-window))
+ )
)
(define-key global-map [(control backspace)] 'ff/kill-this-buffer-and-delete-window)
'(
ff/file-not-remote-but-symlink
"enotes$" "secure-notes$" "media-playlists$"
- "bbdb$"
+ ;; "bbdb$"
"svn-commit.tmp$" ".git/COMMIT_EDITMSG$"
"\.bbl$" "\.aux$" "\.toc$"
))
(define-key global-map [(meta \\)] 'media)
- (setq media/expert t
+ (setq media/mplayer/executable "mpv"
+ media/expert t
media/add-current-song-to-interrupted-when-killing t
media/duration-to-history 30
media/history-size 1000
;; (insert (format-time-string "%d.%m.%Y" (current-time))))
)
-(define-key ff/map [(control g)] 'ff/git-status)
+(define-key ff/map [(control g)] 'magit)
+;;(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 "c" 'ff/count-char)
(define-key ff/map [(control p)] 'ff/print-to-file)
(define-key ff/map "P" 'ff/print-to-printer)
-(define-key ff/map [(control b)] 'bbdb)
+;; (define-key ff/map [(control b)] 'bbdb)
(define-key ff/map "m" 'ff/selector-mail-from-bbdb)
(define-key ff/map [(control m)] 'woman)
(define-key ff/map "b" 'bookmark-jump)
;; ;; Raises the window when the server is invoked
;; (add-hook 'server-switch-hook 'ff/raise-frame-and-give-focus)
+
+(defun ff/black-current-file () (interactive)
+ (save-buffer)
+ (shell-command (concat "black " (buffer-file-name)))
+ (revert-buffer nil t)
+)
+
+(define-key ff/map [(control b)] 'ff/black-current-file)