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)
org-ref-bibliography-notes "~/usr/org/notes.org"
org-ref-pdf-directory "~/usr/org/bibtex-pdfs/"))
-;; ugh, temporary (still better than using the proprietary web app)
-(use-package slack
- :commands (slack-start)
- :init
- (eval-when-compile ; silence the byte-compiler
- (defvar url-http-data nil)
- (defvar url-http-extra-headers nil)
- (defvar url-http-method nil)
- (defvar url-callback-function nil)
- (defvar url-callback-arguments nil)
- (defvar oauth--token-data nil))
- (setq slack-buffer-emojify t
- slack-prefer-current-team t)
- :config
- (slack-register-team
- :name "nday-students"
- :default t
- :token nday-students-token
- :subscribed-channels '(general)
- :full-and-display-names t)
- (add-to-list 'swiper-font-lock-exclude 'slack-message-buffer-mode t)
- (setq lui-time-stamp-format "[%Y-%m-%d %H:%M:%S]"
- lui-time-stamp-only-when-changed-p t
- lui-time-stamp-position 'right)
- :bind
- (("C-c s s" . slack-start)
- ("C-c s u" . slack-select-unread-rooms)
- ("C-c s b" . slack-select-rooms)
- ("C-c s t" . slack-change-current-team)
- ("C-c s c" . slack-ws-close)
- :map slack-mode-map
- ("M-p" . slack-buffer-goto-prev-message)
- ("M-n" . slack-buffer-goto-next-message)
- ("C-c e" . slack-message-edit)
- ("C-c k" . slack-message-delete)
- ("C-c C-k" . slack-channel-leave)
- ("C-c r a" . slack-message-add-reaction)
- ("C-c r r" . slack-message-remove-reaction)
- ("C-c r s" . slack-message-show-reaction-users)
- ("C-c p l" . slack-room-pins-list)
- ("C-c p a" . slack-message-pins-add)
- ("C-c p r" . slack-message-pins-remove)
- ("@" . slack-message-embed-mention)
- ("#" . slack-message-embed-channel)))
-
(use-package alert
:commands (alert)
+ :init (setq alert-default-style 'notifications))
+
+(use-package ivy-xref
:init
- (setq alert-default-style 'notifier))
+ (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