X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/fb078e63a2c28d971e294dc536326e4b300f1e7b..9f7db1e88b102c1bfd696096fcc6452ffc124573:/.emacs.d/init.el?ds=sidebyside diff --git a/.emacs.d/init.el b/.emacs.d/init.el index e1f1262..b09f080 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -56,12 +56,11 @@ 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) @@ -93,7 +92,9 @@ ;; Not necessary when using straight.el ;; (C-h v straight-package-neutering-mode RET) -(comment +(when (and + (not (featurep 'straight)) + (version< emacs-version "27")) (setq package-enable-at-startup nil) ;; (package-initialize) ) @@ -146,7 +147,9 @@ (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) @@ -442,6 +445,14 @@ For disabling the behaviour for certain buffers and/or modes." ;; 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))) + ;;; General bindings @@ -456,7 +467,7 @@ For disabling the behaviour for certain buffers and/or modes." ("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) @@ -537,6 +548,7 @@ For disabling the behaviour for certain buffers and/or modes." (("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) @@ -625,6 +637,7 @@ For disabling the behaviour for certain buffers and/or modes." (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 @@ -851,6 +864,17 @@ For disabling the behaviour for certain buffers and/or modes." (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) @@ -885,6 +909,7 @@ For disabling the behaviour for certain buffers and/or modes." ;; highlight uncommitted changes in the left fringe (use-package diff-hl + :defer 0.6 :config (setq diff-hl-draw-borders nil) (global-diff-hl-mode) @@ -1373,9 +1398,7 @@ For disabling the behaviour for certain buffers and/or modes." ("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" @@ -1389,6 +1412,7 @@ For disabling the behaviour for certain buffers and/or modes." 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) @@ -1517,6 +1541,10 @@ For disabling the behaviour for certain buffers and/or modes." :init (setq alert-default-style 'notifier)) +(use-package ivy-xref + :init + (setq xref-show-xrefs-function #'ivy-xref-show-xrefs)) + ;;; Email (with Gnus) @@ -1628,7 +1656,9 @@ For disabling the behaviour for certain buffers and/or modes." ("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/") @@ -1701,7 +1731,8 @@ For disabling the behaviour for certain buffers and/or modes." (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") @@ -1720,9 +1751,11 @@ For disabling the behaviour for certain buffers and/or modes." :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