#+BEGIN_SRC emacs-lisp
(setq debug-on-event 'siguser2)
#+END_SRC
-* Add library paths
-
+* Initial startup stuff
+** Disable startup screen
#+BEGIN_SRC emacs-lisp
- (add-to-list 'load-path '"~/lib/emacs_el/")
- (add-to-list 'load-path '"~/lib/emacs_el/tiny-tools/lisp/tiny")
- (add-to-list 'load-path '"~/lib/emacs_el/tiny-tools/lisp/other")
- (add-to-list 'load-path '"~/lib/emacs_el/magit-annex")
+ (setq inhibit-startup-screen t)
#+END_SRC
-
-* Package management
-** package repositories and package manager
+** Disable cluter
#+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/") ))
+ ; (if (fboundp 'menu-bar-mode) (menu-bar-mode -1))
+ (if (fboundp 'tool-bar-mode) (tool-bar-mode -1))
+ (if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
#+END_SRC
-** [[https://github.com/jwiegley/use-package/][use-package]]
+** Fullscreen
#+BEGIN_SRC emacs-lisp
- (package-initialize)
- (condition-case nil
- (require 'use-package)
- (progn (package-install 'use-package)
- (require 'use-package)))
+ (setq frame-resize-pixelwise t)
+ (add-to-list 'default-frame-alist '(fullscreen . maximixed))
+#+END_SRC
+* Package management
+** package repositories and package manager
+Borrowed from https://github.com/nilcons/emacs-use-package-fast/ to
+load [[https://github.com/jwiegley/use-package/][use-package]] even faster
+#+BEGIN_SRC emacs-lisp
+ (setq package-enable-at-startup nil)
+ (setq package--init-file-ensured t)
+ (eval-and-compile
+ (setq use-package-verbose (not (bound-and-true-p byte-compile-current-file))))
+ (mapc #'(lambda (add) (add-to-list 'load-path add))
+ (eval-when-compile
+ (package-initialize)
+ (unless (package-installed-p 'use-package)
+ (package-refresh-contents)
+ (package-install 'use-package))
+ (let ((package-user-dir-real (file-truename package-user-dir)))
+ ;; The reverse is necessary, because outside we mapc
+ ;; add-to-list element-by-element, which reverses.
+ (nreverse (apply #'nconc
+ ;; Only keep package.el provided loadpaths.
+ (mapcar #'(lambda (path)
+ (if (string-prefix-p package-user-dir-real path)
+ (list path)
+ nil))
+ load-path))))))
+
+ (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
+ ("melpa" . "https://melpa.org/packages/")
+ ("org" . "http://orgmode.org/elpa/") ))
+ (require 'use-package)
+ (require 'diminish)
+ (require 'bind-key)
#+END_SRC
** Paradox
#+BEGIN_SRC emacs-lisp
(use-package paradox
:ensure paradox
- )
+ :commands (paradox-upgrade-packages paradox-list-packages)
+ :config (setq paradox-execute-asynchronously t)
+ )
+#+END_SRC
+* Add library paths
+
+#+BEGIN_SRC emacs-lisp
+ (add-to-list 'load-path '"~/lib/emacs_el/")
+ (add-to-list 'load-path '"~/lib/emacs_el/magit-annex")
#+END_SRC
* Disable custom-vars
#+BEGIN_SRC emacs-lisp
** Eyebrowse
#+BEGIN_SRC emacs-lisp
- ;; (use-package eyebrowse
- ;; :ensure t
- ;; :diminish eyebrowse-mode
- ;; :init (setq eyebrowse-keymap-prefix (kbd "C-c C-\\"))
- ;; :config (progn
- ;; (setq eyebrowse-wrap-around t)
- ;; (eyebrowse-mode t)
- ;;
- ;; (defun my/eyebrowse-new-window-config ()
- ;; (interactive)
- ;; (let ((done nil))
- ;; (dotimes (i 10)
- ;; ;; start at 1 run till 0
- ;; (let ((j (mod (+ i 1) 10)))
- ;; (when (and (not done)
- ;; (not (eyebrowse--window-config-present-p j)))
- ;; (eyebrowse-switch-to-window-config j)
- ;; (call-interactively 'eyebrowse-rename-window-config2 j)
- ;; (setq done t)
- ;; ))
- ;; )))
- ;;
- ;; ;; I don't use latex-preview-pane
- ;; ;; (require 'latex-preview-pane)
- ;; ;; (defun my/close-latex-preview-pane-before-eyebrowse-switch ()
- ;; ;; ;; latex-preview-pane uses window-parameters which are
- ;; ;; ;; not preserved by eyebrowse, so we close the preview
- ;; ;; ;; pane before switching, it will be regenerated when we
- ;; ;; ;; edit the TeX file.
- ;; ;; (when (lpp/window-containing-preview)
- ;; ;; (delete-window (lpp/window-containing-preview))))
- ;;
- ;; ;; (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)
- ;; )
- ;; )
+ (use-package eyebrowse
+ :ensure t
+ :diminish eyebrowse-mode
+ :init (setq eyebrowse-keymap-prefix (kbd "C-c e"))
+ :config (progn
+ (setq eyebrowse-wrap-around t)
+ (eyebrowse-mode t)
+
+ (defun my/eyebrowse-new-window-config ()
+ (interactive)
+ (let ((done nil))
+ (dotimes (i 10)
+ ;; start at 1 run till 0
+ (let ((j (mod (+ i 1) 10)))
+ (when (and (not done)
+ (not (eyebrowse--window-config-present-p j)))
+ (eyebrowse-switch-to-window-config j)
+ (call-interactively 'eyebrowse-rename-window-config2 j)
+ (setq done t)
+ ))
+ )))
+
+ ;; I don't use latex-preview-pane
+ ;; (require 'latex-preview-pane)
+ ;; (defun my/close-latex-preview-pane-before-eyebrowse-switch ()
+ ;; ;; latex-preview-pane uses window-parameters which are
+ ;; ;; not preserved by eyebrowse, so we close the preview
+ ;; ;; pane before switching, it will be regenerated when we
+ ;; ;; edit the TeX file.
+ ;; (when (lpp/window-containing-preview)
+ ;; (delete-window (lpp/window-containing-preview))))
+
+ ;; (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)
+ )
+ )
#+END_SRC
** Window handling
** Mutt
*** Message-mode
#+BEGIN_SRC emacs-lisp
- (use-package message-mode
+ (use-package message
:mode "muttng-[a-z0-9]+-[0-9]+-"
:mode "mutt-[a-z0-9]+-[0-9]+-"
#+END_SRC
** Agenda Configuration
#+BEGIN_SRC emacs-lisp
- :mode "\\.\\(org\\|org_archive\\|txt\\)$"
+ :mode ("\\.\\(org\\|org_archive\\|txt\\)\\'" . org-mode)
:bind (("C-c l" . org-store-link)
("C-c a" . org-agenda)
- ("C-c b" . org-iswitchb)
+ ("C-c b" . org-iswitchb))
:config
(setq-default org-log-done 'time)
(setq-default org-agenda-ndays 5)
(write-file "/tmp/timeline.org")
(org-agenda arg "L")))
(define-key org-mode-map (kbd "C-c t") 'org-agenda-timeline-all)
- ;; add automatic reminders for appointments
- (defadvice org-agenda-redo (after org-agenda-redo-add-appts)
- "Pressing `r' on the agenda will also add appointments."
- (progn
- (setq appt-time-msg-list nil)
- (org-agenda-to-appt)))
#+END_SRC
** General config
(load-file "~/.hide/org_gcal.el"))
)
)
+#+END_SRC
+** appt integration
+#+BEGIN_SRC emacs-lisp
+ (use-package appt
+ :config
+ ;; Show notification 10 minutes before event
+ (setq appt-message-warning-time 10)
+ ;; Disable multiple reminders
+ (setq appt-display-interval appt-message-warning-time)
+ (setq appt-display-mode-line nil)
+
+ ;; add automatic reminders for appointments
+ (defun my/org-agenda-to-appt ()
+ (interactive)
+ (setq appt-time-msg-list nil)
+ (org-agenda-to-appt))
+ ;; add reminders when starting emacs
+ (my/org-agenda-to-appt)
+ ;; when rebuilding the agenda
+ (defadvice org-agenda-redo (after org-agenda-redo-add-appts)
+ "Pressing `r' on the agenda will also add appointments."
+ (my/org-agenda-to-appt)
+ )
+ ;; when saving all org buffers
+ (defadvice org-save-all-org-buffers (after org-save-all-org-buffers-add-appts)
+ "Re-add appts after saving all org buffers"
+ (my/org-agenda-to-appt))
+ ;; Display appointments as a window manager notification
+ (setq appt-disp-window-function 'my/appt-display)
+ (setq appt-delete-window-function (lambda () t))
+
+ (setq my/appt-notification-app (concat (getenv "HOME") "/bin/appt_notification"))
+
+ (defun my/appt-display (min-to-app new-time msg)
+ (if (atom min-to-app)
+ (start-process "my/appt-notification-app" nil my/appt-notification-app min-to-app msg)
+ (dolist (i (number-sequence 0 (1- (length min-to-app))))
+ (start-process "my/appt-notification-app" nil my/appt-notification-app
+ (nth i min-to-app) (nth i msg))))
+ )
+ )
+
+
#+END_SRC
** End use-package
#+BEGIN_SRC emacs-lisp
#+END_SRC
* Misc (uncharacterized)
#+BEGIN_SRC emacs-lisp
- (setq calendar-latitude 40.11)
- (setq calendar-longitude -88.24)
+ (setq calendar-latitude 38.6)
+ (setq calendar-longitude -121.5)
(setq case-fold-search t)
(setq confirm-kill-emacs (quote y-or-n-p))
(setq cperl-lazy-help-time nil)