* Package management
** package repositories and package manager
#+BEGIN_SRC emacs-lisp
+ (require 'package)
(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
("melpa" . "https://melpa.org/packages/")
("org" . "http://orgmode.org/elpa/") ))
;; (add-to-list 'eyebrowse-pre-window-switch-hook
;; #'my/close-latex-preview-pane-before-eyebrowse-switch)
- (my/set-menu-key "[" #'my/eyebrowse-new-window-config)
- (my/set-menu-key ";" #'eyebrowse-prev-window-config)
- (my/set-menu-key "'" #'eyebrowse-next-window-config)
- (my/set-menu-key "]" #'eyebrowse-close-window-config)
- (my/set-menu-key "\\" #'eyebrowse-rename-window-config))
+ ;; (my/set-menu-key "[" #'my/eyebrowse-new-window-config)
+ ;; (my/set-menu-key ";" #'eyebrowse-prev-window-config)
+ ;; (my/set-menu-key "'" #'eyebrowse-next-window-config)
+ ;; (my/set-menu-key "]" #'eyebrowse-close-window-config)
+ ;; (my/set-menu-key "\\" #'eyebrowse-rename-window-config)
+ )
)
#+END_SRC
+** Window handling
+
+*** Splitting
+#+BEGIN_SRC emacs-lisp
+ (defun my/vsplit-last-buffer ()
+ "Split the window vertically and display the previous buffer."
+ (interactive)
+ (split-window-vertically)
+ (other-window 1 nil)
+ (switch-to-next-buffer))
+
+ (defun my/hsplit-last-buffer ()
+ "Split the window horizontally and display the previous buffer."
+ (interactive)
+ (split-window-horizontally)
+ (other-window 1 nil)
+ (switch-to-next-buffer))
+
+ (bind-key "C-x 2" 'my/vsplit-last-buffer)
+ (bind-key "C-x 3" 'my/hsplit-last-buffer)
+
+ (setq split-width-threshold 100)
+ (setq split-height-threshold 60)
+
+ (defun my/split-window-prefer-horizontally (window)
+ "If there's only one window (excluding any possibly active
+ minibuffer), then split the current window horizontally."
+ (if (and (one-window-p t)
+ (not (active-minibuffer-window))
+ ( > (frame-width) (frame-height))
+ )
+ (let ((split-height-threshold nil))
+ (split-window-sensibly window))
+ (split-window-sensibly window)))
+
+ (setq split-window-preferred-function #'my/split-window-prefer-horizontally)
+ (setq window-combination-resize t)
+#+END_SRC
+
+*** Compilation window
+
+If there is no compilation window, open one at the bottom, spanning
+the complete width of the frame. Otherwise, reuse existing window. In
+the former case, if there was no error the window closes
+automatically.
+
+#+BEGIN_SRC emacs-lisp
+ (add-to-list 'display-buffer-alist
+ `(,(rx bos "*compilation*" eos)
+ (display-buffer-reuse-window
+ display-buffer-in-side-window)
+ (reusable-frames . visible)
+ (side . bottom)
+ (window-height . 0.4)))
+#+END_SRC
+
+#+BEGIN_SRC emacs-lisp
+ (defun my/compilation-exit-autoclose (status code msg)
+ ;; If M-x compile exists with a 0
+ (when (and (eq status 'exit) (zerop code))
+ ;; and delete the *compilation* window
+ (let ((compilation-window (get-buffer-window (get-buffer "*compilation*"))))
+ (when (and (not (window-at-side-p compilation-window 'top))
+ (window-at-side-p compilation-window 'left)
+ (window-at-side-p compilation-window 'right))
+ (delete-window compilation-window))))
+ ;; Always return the anticipated result of compilation-exit-message-function
+ (cons msg code))
+
+ ;; Specify my function (maybe I should have done a lambda function)
+ (setq compilation-exit-message-function #'my/compilation-exit-autoclose)
+#+END_SRC
+
+If you change the variable ~compilation-scroll-output~ to a ~non-nil~
+value, the compilation buffer scrolls automatically to follow the
+output. If the value is ~first-error~, scrolling stops when the first
+error appears, leaving point at that error. For any other non-nil
+value, scrolling continues until there is no more output.
+
+#+BEGIN_SRC emacs-lisp
+ (setq compilation-scroll-output 'first-error)
+#+END_SRC
+
+** Mode line cleaning
+*** Diminish
+#+BEGIN_SRC emacs-lisp
+ (use-package diminish
+ :ensure t)
+#+END_SRC
+
+*** Delight
+#+BEGIN_SRC emacs-lisp
+ (use-package delight
+ :ensure t)
+#+END_SRC
+
** Tinyprocmail
#+BEGIN_SRC emacs-lisp
; don't verify where we are pushing
(setq magit-push-always-verify nil)
;; refine diffs always (hilight words)
- (setq magit-diff-refine-hunk 'all)
+ (setq magit-diff-refine-hunk nil)
;; load magit-annex
(setq load-path
(append '("~/lib/emacs_el/magit-annex")
(ad-activate 'load)
#+END_SRC
-* Misc (uncharacterized)
+* Mis1c (uncharacterized)
#+BEGIN_SRC emacs-lisp
(setq bibtex-user-optional-fields (quote (("annote" "Personal annotation (ignored)") ("abstract" "") ("pmid" "") ("doi" ""))))
(setq calendar-latitude 40.11)