X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/b1fb0f48d5a7d3057f6ddb0473356cc6d07c0ecf..981ff3ce9a26c24ad5fd0a2cdfed33a015156edf:/init.el diff --git a/init.el b/init.el index fbf2af1..b80e00f 100644 --- a/init.el +++ b/init.el @@ -1,4 +1,4 @@ -;;; init.el --- Amin Bandali's Emacs config -*- lexical-binding: t ; eval: (view-mode 1)-*- +;;; init.el --- Amin Bandali's Emacs config -*- lexical-binding: t -*- ;; Copyright (C) 2018 Amin Bandali @@ -27,7 +27,6 @@ ;; amin-... public variables or non-interactive functions ;; amin--... private anything (non-interactive), not safe for direct use ;; amin/... an interactive function; safe for M-x or keybinding -;; amin:... an evil operator, motion, or command ;; amin|... a hook function ;; amin*... an advising function ;; amin@... a hydra command @@ -35,6 +34,9 @@ ;;; Code: + +;; * Initial setup + (defvar amin--before-user-init-time (current-time) "Value of `current-time' when Emacs begins loading `user-init-file'.") (message "Loading Emacs...done (%.3fs)" @@ -223,6 +225,9 @@ compilation." (declare (indent defun) (debug t)) `(progn ,@(mapcar (lambda (x) (list 'setq x value)) vars))) + +;; * Core + ;; (fringe-mode '(3 . 1)) (fringe-mode nil) @@ -570,6 +575,9 @@ compilation." ("h" . outline-hide-subtree) ("s" . outline-show-subtree))) + +;; * Borg's `layer/essentials' + (use-package dash :config (dash-enable-font-lock)) @@ -655,6 +663,9 @@ compilation." ;; (setq undo-tree-mode-lighter "" ;; undo-tree-auto-save-history t)) + +;; * Editing + (use-package company :defer 1 :bind @@ -670,6 +681,9 @@ compilation." :config (global-company-mode t)) + +;; * Syntax and spell checking + (use-package flycheck :defer 3 :hook (prog-mode . flycheck-mode) @@ -710,6 +724,9 @@ compilation." (advice-add #'ispell-parse-output :filter-args #'endless/replace-quote)) + +;; * Programming modes + (use-package alloy-mode :defer t :config (setq alloy-basic-offset 2)) @@ -787,6 +804,9 @@ compilation." :defer t :mode "\\.nix\\'") + +;; * Emacs Enhancements + (use-package which-key :defer 1 :config (which-key-mode)) @@ -1073,9 +1093,9 @@ create a new window and switch to it. (use-package multi-term :defer 1 - :bind (("C-c C-j" . term-line-mode) - ("C-c m m" . multi-term) - ("C-c m p" . multi-term-dedicated-toggle)) + :bind (("C-c C-j" . term-line-mode) + ("C-c a s m m" . multi-term) + ("C-c a s m p" . multi-term-dedicated-toggle)) :config (setq multi-term-program "/bin/screen" ;; TODO: add separate bindings for connecting to existing @@ -1100,6 +1120,13 @@ create a new window and switch to it. term-unbind-key-alist '("C-z" "C-x" "C-c" "C-h" "C-y" ""))) +(use-package page-break-lines + :config + (global-page-break-lines-mode)) + + +;; * Email + (defvar amin-maildir (expand-file-name "~/mail/")) (after! recentf (add-to-list 'recentf-exclude amin-maildir)) @@ -1313,12 +1340,18 @@ create a new window and switch to it. (gnus-harvest-install 'message-x) (gnus-harvest-install))) + +;; * Blogging + (use-package ox-hugo :after ox) (use-package ox-hugo-auto-export :load-path "lib/ox-hugo") + +;; * Post initialization + (message "Loading %s...done (%.3fs)" user-init-file (float-time (time-subtract (current-time) amin--before-user-init-time)))