X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/e724cc402f5c4fd2fc84536c2806d0d2f46926d9..d31ff102310a091b5797d5d99315d4dc27bf90cf:/init.org diff --git a/init.org b/init.org index 0503414..c256b7f 100644 --- a/init.org +++ b/init.org @@ -199,20 +199,34 @@ hacker. =straight.el= allows me to have a fully reproducible Emacs setup. #+begin_src emacs-lisp -(setq straight-repository-branch "develop") - -(defvar bootstrap-version) -(let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 5)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage)) +;; Main engine start... + +(setq straight-repository-branch "develop" + straight-check-for-modifications '(check-on-save find-when-checking)) + +(defun a/bootstrap-straight () + (defvar bootstrap-version) + (let ((bootstrap-file + (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) + (bootstrap-version 5)) + (unless (file-exists-p bootstrap-file) + (with-current-buffer + (url-retrieve-synchronously + "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" + 'silent 'inhibit-cookies) + (goto-char (point-max)) + (eval-print-last-sexp))) + (load bootstrap-file nil 'nomessage))) + +;; Solid rocket booster ignition... + +(defun a/build-init () + (a/bootstrap-straight) + (byte-compile-file "init.el")) + +(a/bootstrap-straight) + +;; We have lift off! (setq straight-use-package-by-default t) #+end_src @@ -333,7 +347,8 @@ in my shell. (use-package exec-path-from-shell :defer 1 :init - (setq exec-path-from-shell-check-startup-files nil) + (setq exec-path-from-shell-arguments nil + exec-path-from-shell-check-startup-files nil) :config (exec-path-from-shell-initialize) ;; while we're at it, let's fix access to our running ssh-agent @@ -785,7 +800,7 @@ And here's where my actual Org configurations begin: #+begin_src emacs-lisp (use-feature org - :defer 0.5 + :defer 2 :config (setq org-src-tab-acts-natively t org-src-preserve-indentation nil @@ -797,13 +812,6 @@ And here's where my actual Org configurations begin: org-catch-invisible-edits 'show-and-error org-log-done 'time) (add-to-list 'org-structure-template-alist '("L" . "src emacs-lisp") t) - (font-lock-add-keywords - 'org-mode - '(("[ \t]*\\(#\\+\\(BEGIN\\|END\\|begin\\|end\\)_\\(\\S-+\\)\\)[ \t]*\\([^\n:]*\\)" - (1 '(:foreground "#5a5b5a" :background "#292b2b") t) ; directive - (3 '(:foreground "#81a2be" :background "#292b2b") t) ; kind - (4 '(:foreground "#c5c8c6") t))) ; title - t) :bind (:map org-mode-map ("M-L" . org-insert-last-stored-link)) :hook ((org-mode . org-indent-mode) (org-mode . auto-fill-mode) @@ -821,20 +829,15 @@ And here's where my actual Org configurations begin: (setq org-latex-listings 'listings ;; org-latex-prefer-user-labels t ) - (add-to-list 'org-latex-packages-alist '("" "listings")) - (add-to-list 'org-latex-packages-alist '("" "color")) (add-to-list 'org-latex-classes '("IEEEtran" "\\documentclass[11pt]{IEEEtran}" - ("\\section{%s}" . "\\section*{%s}") - ("\\subsection{%s}" . "\\subsection*{%s}") + ("\\section{%s}" . "\\section*{%s}") + ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") - ("\\paragraph{%s}" . "\\paragraph*{%s}") - ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) - t)) - -(use-feature ox-beamer - :demand - :after ox) + ("\\paragraph{%s}" . "\\paragraph*{%s}") + ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) + t) + (require 'ox-beamer)) #+end_src **** asynchronous tangle @@ -851,10 +854,10 @@ file. (defvar a/show-async-tangle-time nil "Show the time spent tangling the file.") - (defvar a/async-tangle-post-compile nil + (defvar a/async-tangle-post-compile "make bi" "If non-nil, pass to `compile' after successful tangle.") - (defvar a/async-tangle-byte-recompile t + (defvar a/async-tangle-byte-recompile nil "If non-nil, byte-recompile the file on successful tangle.") (defun a/async-babel-tangle () @@ -873,7 +876,7 @@ file. `(lambda (result) (if result (progn - (setq byte-compile-warnings '(not noruntime unresolved)) + ;; (setq byte-compile-warnings '(not noruntime unresolved)) (message "Tangled %s%s" ,file-nodir (if a/show-async-tangle-time @@ -902,7 +905,7 @@ Not just how I do git, but /the/ way to do git. #+begin_src emacs-lisp (use-package magit - :defer 1 + :defer 2 :bind (("C-x g" . magit-status) ("s-g s" . magit-status) ("s-g l" . magit-log-buffer-file)) @@ -1005,7 +1008,7 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-feature eshell - :defer 1 + :defer 2 :commands eshell :bind ("C-c a s e" . eshell) :config @@ -1234,9 +1237,17 @@ Highlight matching parens. #+begin_src emacs-lisp (use-feature paren + :demand :config (show-paren-mode)) #+end_src +** simple (for column numbers) + +#+begin_src emacs-lisp +(use-feature simple + :config (column-number-mode)) +#+end_src + ** =savehist= Save minibuffer history. @@ -1278,7 +1289,7 @@ Automatically save place in each file. #+begin_src emacs-lisp (use-package company - :defer 1 + :defer 3 :bind (:map company-active-map ([tab] . company-complete-common-or-cycle) @@ -1365,7 +1376,7 @@ Automatically save place in each file. ** [[https://coq.inria.fr][Coq]] (with [[https://github.com/ProofGeneral/PG][Proof General]]) #+begin_src emacs-lisp -(use-package proof-site +(use-package proof-site ; Proof General :straight proof-general) #+end_src @@ -1699,7 +1710,7 @@ treemacs :after (treemacs)) #+end_src -** COMMENT geiser +** geiser #+begin_src emacs-lisp (use-package geiser) @@ -1709,7 +1720,7 @@ treemacs (setq geiser-guile-load-path "~/src/git/guix")) #+end_src -** COMMENT guix +** guix #+begin_src emacs-lisp (use-package guix) @@ -1797,6 +1808,7 @@ Emacs package that displays available keybindings in popup #+begin_src emacs-lisp (use-package smart-mode-line :commands (sml/apply-theme) + :demand :config (sml/setup)) #+end_src @@ -1810,19 +1822,29 @@ Emacs package that displays available keybindings in popup ** theme helper functions #+begin_src emacs-lisp +(defvar a/org-mode-font-lock-keywords + '(("[ \t]*\\(#\\+\\(BEGIN\\|END\\|begin\\|end\\)_\\(\\S-+\\)\\)[ \t]*\\([^\n:]*\\)" + (1 '(:foreground "#5a5b5a" :background "#292b2b") t) ; directive + (3 '(:foreground "#81a2be" :background "#292b2b") t) ; kind + (4 '(:foreground "#c5c8c6") t)))) ; title + (defun a/lights-on () "Enable my favourite light theme." (interactive) (mapc #'disable-theme custom-enabled-themes) (load-theme 'tangomod t) - (sml/apply-theme 'automatic)) + (sml/apply-theme 'automatic) + (font-lock-remove-keywords + 'org-mode a/org-mode-font-lock-keywords)) (defun a/lights-off () "Go dark." (interactive) (mapc #'disable-theme custom-enabled-themes) (load-theme 'doom-tomorrow-night t) - (sml/apply-theme 'automatic)) + (sml/apply-theme 'automatic) + (font-lock-add-keywords + 'org-mode a/org-mode-font-lock-keywords t)) (bind-keys ("s-t d" . a/lights-off) @@ -1879,7 +1901,7 @@ Emacs package that displays available keybindings in popup #+begin_src emacs-lisp (use-package helpful - :defer 1 + :defer 3 :bind (("C-S-h c" . helpful-command) ("C-S-h f" . helpful-callable) ; helpful-function @@ -1898,7 +1920,6 @@ Make =*scratch*= and =*Messages*= unkillable. :config (unkillable-scratch 1) :custom - (unkillable-scratch-behavior 'do-nothing) (unkillable-buffers '("^\\*scratch\\*$" "^\\*Messages\\*$"))) #+end_src @@ -1972,10 +1993,8 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. #+begin_src emacs-lisp (use-package shrink-path :defer 2 + :after eshell :config - (setq eshell-prompt-regexp "\\(.*\n\\)*λ " - eshell-prompt-function #'+eshell/prompt) - (defun +eshell/prompt () (let ((base/dir (shrink-path-prompt default-directory))) (concat (propertize (car base/dir) @@ -1995,22 +2014,24 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]]. collect match)))) (if (not (eq branch nil)) (concat " " (substring branch 2)) - "")))) + ""))) + (setq eshell-prompt-regexp "\\(.*\n\\)*λ " + eshell-prompt-function #'+eshell/prompt)) #+end_src ** [[https://github.com/peterwvj/eshell-up][eshell-up]] #+begin_src emacs-lisp (use-package eshell-up - :commands eshell-up - :after eshell) + :after eshell + :commands eshell-up) #+end_src ** multi-term #+begin_src emacs-lisp (use-package multi-term - :defer 1 + :defer 3 :bind (("C-c a s m" . multi-term-dedicated-toggle) :map term-mode-map ("C-c C-j" . term-char-mode) @@ -2283,6 +2304,7 @@ Convenient footnotes in =message-mode=. #+begin_src emacs-lisp (use-package ebdb :straight (:host github :repo "girzel/ebdb") + :defer 2 :after gnus :bind (:map gnus-group-mode-map ("e" . ebdb)) :config @@ -2299,15 +2321,12 @@ Convenient footnotes in =message-mode=. ;; (ebdb-complete-enable)) (use-package company-ebdb - :after (:all company message) + :defer 2 :config - (defun company-ebdb--post-complete (_) nil) - :hook - (message-mode . (lambda () - (add-to-list (make-local-variable 'company-backends) - 'company-ebdb)))) + (defun company-ebdb--post-complete (_) nil)) (use-feature ebdb-gnus + :defer 3 :after ebdb :demand :custom @@ -2320,6 +2339,7 @@ Convenient footnotes in =message-mode=. (ebdb-gnus 0.3)))))) (use-feature ebdb-mua + :defer 3 :after ebdb :demand ;; :custom (ebdb-mua-pop-up nil) @@ -2400,5 +2420,5 @@ Display how long it took to load the init file. * COMMENT Local Variables :ARCHIVE: # Local Variables: # eval: (add-hook 'after-save-hook #'a/async-babel-tangle 'append 'local) -# eval: (typo-mode -1) +# eval: (when (featurep 'typo (typo-mode -1))) # End: