esup-child-profile-require-level 0)
;; set them back to their defaults once we're done initializing
-(add-hook
- 'after-init-hook
- (lambda ()
- (setq gc-cons-threshold a/gc-cons-threshold
- gc-cons-percentage a/gc-cons-percentage
- file-name-handler-alist a/file-name-handler-alist)))
+(defun a/post-init ()
+ (setq gc-cons-threshold a/gc-cons-threshold
+ gc-cons-percentage a/gc-cons-percentage
+ file-name-handler-alist a/file-name-handler-alist))
+(add-hook 'after-init-hook #'a/post-init)
;; increase number of lines kept in *Messages* log
(setq message-log-max 20000)
(interactive)
(straight-transaction
(straight-mark-transaction-as-init)
- (load user-init-file)))
+ (setq a/file-name-handler-alist file-name-handler-alist)
+ (load user-init-file)
+ (a/post-init)))
;; use-package
(straight-use-package 'use-package)
;; allow scrolling in Isearch
(setq isearch-allow-scroll t)
+(use-feature vc
+ :bind ("C-x v C-=" . vc-ediff))
+
+(use-feature ediff
+ :config (add-hook 'ediff-after-quit-hook-internal 'winner-undo)
+ :custom ((ediff-window-setup-function 'ediff-setup-windows-plain)
+ (ediff-split-window-function 'split-window-horizontally)))
+
\f
;;; General bindings
("C-c F m" . make-frame-command)
("C-c F d" . delete-frame)
- ("C-c F D" . delete-other-frames)
+ ("C-c F D" . server-edit)
("C-c o" . other-window)
(("C-c a o a" . org-agenda)
:map org-mode-map
("M-L" . org-insert-last-stored-link)
+ ("M-O" . org-toggle-link-display)
("s-T" . org-todo))
:hook ((org-mode . org-indent-mode)
(org-mode . auto-fill-mode)
(nconc magit-section-initial-visibility-alist
'(([unpulled status] . show)
([unpushed status] . show)))
+ :custom (magit-display-buffer-function #'magit-display-buffer-fullframe-status-v1)
:custom-face (magit-diff-file-heading ((t (:weight normal)))))
;; recently opened files
(setq ediff-after-quit-hook-internal nil)
(set-window-configuration wnd))))
(error "no more than 2 files should be marked"))))
+
+ (require 'dired-x)
+ (setq dired-guess-shell-alist-user
+ '(("\\.pdf\\'" "evince" "zathura" "okular")
+ ("\\.doc\\'" "libreoffice")
+ ("\\.docx\\'" "libreoffice")
+ ("\\.ppt\\'" "libreoffice")
+ ("\\.pptx\\'" "libreoffice")
+ ("\\.xls\\'" "libreoffice")
+ ("\\.xlsx\\'" "libreoffice")
+ ("\\.flac\\'" "mpv")))
:bind (:map dired-mode-map
("b" . dired-up-directory)
("e" . dired-ediff-files)
("C-c a s m p" . multi-term-prev)
("C-c a s m n" . multi-term-next)
:map term-mode-map
- ("C-c C-j" . term-char-mode)
- :map term-raw-map
- ("C-c C-j" . term-line-mode))
+ ("C-c C-j" . term-char-mode))
:config
(setq multi-term-program "screen"
multi-term-program-switches (concat "-c"
term-bind-key-alist
'(("C-c C-c" . term-interrupt-subjob)
("C-c C-e" . term-send-esc)
+ ("C-c C-j" . term-line-mode)
("C-k" . kill-line)
;; ("C-y" . term-paste)
("C-y" . term-send-raw)
:init
(setq alert-default-style 'notifier))
+(use-package ivy-xref
+ :init
+ (setq xref-show-xrefs-function #'ivy-xref-show-xrefs))
+
\f
;;; Email (with Gnus)
("gnu.*"
(gcc-self . t))
("gnu\\."
- (subscribed . t)))
+ (subscribed . t))
+ ("nnimap\\+uw:.*"
+ (gcc-self . t)))
gnus-large-newsgroup 50
gnus-home-directory (no-littering-expand-var-file-name "gnus/")
gnus-directory (concat gnus-home-directory "news/")
(body "Added to 2019supporters.html.\n\nMoving to campaigns.\n\n-amin\n")
(eval (setq a/message-cite-say-hi nil)))
("nnimap\\+uw:.*"
- (address "abandali@uwaterloo.ca")
+ (address "abandali@uwaterloo.ca"))
+ ("nnimap\\+uw:INBOX"
(gcc "\"nnimap+uw:Sent Items\""))
("nnimap\\+csc:.*"
(address "abandali@csclub.uwaterloo.ca")
:config
(setq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)"))
-(use-feature gnus-win
- :config
- (setq gnus-use-full-window nil))
+(comment
+ ;; problematic with ebdb's popup, *EBDB-Gnus*
+ (use-feature gnus-win
+ :config
+ (setq gnus-use-full-window nil)))
(use-feature gnus-dired
:commands gnus-dired-mode