From 00dd3bdf71896cc01b63f95398a0a12081a8a315 Mon Sep 17 00:00:00 2001 From: Flinner Yuu Date: Thu, 22 May 2025 15:37:31 +0300 Subject: [PATCH] refactor: add indentation/spacing to emacs org config --- emacs.mine/.config/emacs.mine/emacs.org | 2765 ++++++++++++----------- 1 file changed, 1384 insertions(+), 1381 deletions(-) diff --git a/emacs.mine/.config/emacs.mine/emacs.org b/emacs.mine/.config/emacs.mine/emacs.org index c0a71c9..1e043e5 100644 --- a/emacs.mine/.config/emacs.mine/emacs.org +++ b/emacs.mine/.config/emacs.mine/emacs.org @@ -4,33 +4,33 @@ * README: After the first run that installs things, run the following #+begin_src emacs-lisp :tangle no - ; code-block not tangled - (all-the-icons-install-fonts) - (fira-code-mode-set-font) + ; code-block not tangled + (all-the-icons-install-fonts) + (fira-code-mode-set-font) #+end_src * Performance #+begin_src emacs-lisp - ;;lsp performance improvement - (setq gc-cons-threshold-original gc-cons-threshold) - (setq gc-cons-threshold (* 1024 1024 100)) - (setq read-process-output-max (* 1024 4024)) + ;;lsp performance improvement + (setq gc-cons-threshold-original gc-cons-threshold) + (setq gc-cons-threshold (* 1024 1024 100)) + (setq read-process-output-max (* 1024 4024)) #+end_src * Packaging Initialize Package sources #+begin_src emacs-lisp - (require 'package) + (require 'package) - (setq package-archives '(("melpa" . "https://melpa.org/packages/") - ("org" . "https://orgmode.org/elpa/") - ("elpa" . "https://elpa.gnu.org/packages/"))) - (package-initialize) - (unless package-archive-contents + (setq package-archives '(("melpa" . "https://melpa.org/packages/") + ("org" . "https://orgmode.org/elpa/") + ("elpa" . "https://elpa.gnu.org/packages/"))) + (package-initialize) + (unless package-archive-contents (package-refresh-contents)) - ;; Initialize use-package on non-Linux platforms - (unless (package-installed-p 'use-package) + ;; Initialize use-package on non-Linux platforms + (unless (package-installed-p 'use-package) (package-install 'use-package)) #+end_src @@ -38,32 +38,32 @@ Initialize Package sources Make sure to download packages if not present #+begin_src emacs-lisp - (require 'use-package) - (setq package-native-compile t) - (setq use-package-always-ensure t) + (require 'use-package) + (setq package-native-compile t) + (setq use-package-always-ensure t) #+end_src straight #+begin_src emacs-lisp - (defvar bootstrap-version) - (let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 5)) + (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))) + (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)) - (straight-use-package 'use-package) - (setq straight-use-package-by-default t) + (straight-use-package 'use-package) + (setq straight-use-package-by-default t) #+end_src remove warning by use-package #+begin_src emacs-lisp -(custom-set-variables '(warning-suppress-types '((use-package)))) + (custom-set-variables '(warning-suppress-types '((use-package)))) #+end_src * Basic Configuration @@ -84,7 +84,7 @@ remove warning by use-package (defalias 'yes-or-no-p 'y-or-n-p) ; I don't want to type 'yes' everytime!, 'y' is enough - ;(setq native-comp-deferred-compilation t); emacs 30+ i guess + ;(setq native-comp-deferred-compilation t); emacs 30+ i guess (setq comp-deferred-compilation-deny-list '()) ;; turn off bytecompiler warnings (setq native-comp-async-report-warnings-errors nil) @@ -98,52 +98,52 @@ remove warning by use-package #+end_src Emacs Backups trashing local dir! #+begin_src emacs-lisp - (use-package no-littering) - (setq auto-save-file-name-transforms - `((".*" ,(no-littering-expand-var-file-name "auto-save/") t))) - (setq backup-directory-alist `((".*" . "~/.local/share/emacs-backups"))) - (setq make-backup-files t ; backup of a file the first time it is saved. - backup-by-copying t ; don't clobber symlinks - version-control t ; version numbers for backup files - vc-make-backup-files t ; version control for git/vcs dirs - delete-old-versions t ; delete excess backup files silently - delete-by-moving-to-trash t - kept-old-versions 6 ; oldest versions to keep when a new numbered backup is made - kept-new-versions 9 ; newest versions to keep when a new numbered backup is made - auto-save-default t ; auto-save every buffer that visits a file - auto-save-timeout 20 ; number of seconds idle time before auto-save (default: 30) - auto-save-interval 200 ; number of keystrokes between auto-saves (default: 300) - create-lockfiles nil ; don't use lockfiles (default: t) - ) + (use-package no-littering) + (setq auto-save-file-name-transforms + `((".*" ,(no-littering-expand-var-file-name "auto-save/") t))) + (setq backup-directory-alist `((".*" . "~/.local/share/emacs-backups"))) + (setq make-backup-files t ; backup of a file the first time it is saved. + backup-by-copying t ; don't clobber symlinks + version-control t ; version numbers for backup files + vc-make-backup-files t ; version control for git/vcs dirs + delete-old-versions t ; delete excess backup files silently + delete-by-moving-to-trash t + kept-old-versions 6 ; oldest versions to keep when a new numbered backup is made + kept-new-versions 9 ; newest versions to keep when a new numbered backup is made + auto-save-default t ; auto-save every buffer that visits a file + auto-save-timeout 20 ; number of seconds idle time before auto-save (default: 30) + auto-save-interval 200 ; number of keystrokes between auto-saves (default: 300) + create-lockfiles nil ; don't use lockfiles (default: t) + ) #+end_src Better Scrolling #+begin_src emacs-lisp - (setq scroll-conservatively 10) - (setq scroll-margin 3) - ;; (use-package smooth-scrolling - ;; :custom (smooth-scrolling-mode 1)) + (setq scroll-conservatively 10) + (setq scroll-margin 3) + ;; (use-package smooth-scrolling + ;; :custom (smooth-scrolling-mode 1)) #+end_src ** Fonts Setting fonts here as vars to stay sane #+begin_src emacs-lisp - (setq my/ui/monofont "FiraCode Nerd Font") - (setq my/ui/varfont "Noto Serif") - (setq my/ui/arabicfont "Noto Sans Arabic") + (setq my/ui/monofont "FiraCode Nerd Font") + (setq my/ui/varfont "Noto Serif") + (setq my/ui/arabicfont "Noto Sans Arabic") #+end_src #+begin_src emacs-lisp - (set-face-attribute 'default nil :font my/ui/monofont :height 90) - (set-face-attribute 'fixed-pitch nil :font my/ui/monofont :height 90) - (set-face-attribute 'variable-pitch nil :font my/ui/varfont :height 90) - ;; Info has a horrible mono font - (set-face-attribute 'Info-quoted nil :font my/ui/monofont :height 90) + (set-face-attribute 'default nil :font my/ui/monofont :height 90) + (set-face-attribute 'fixed-pitch nil :font my/ui/monofont :height 90) + (set-face-attribute 'variable-pitch nil :font my/ui/varfont :height 90) + ;; Info has a horrible mono font + (set-face-attribute 'Info-quoted nil :font my/ui/monofont :height 90) #+end_src emacs-client frames don't adhire to the font for some reason, need to run this hook: #+begin_src emacs-lisp - (defun my/ui/font-check () + (defun my/ui/font-check () "Do font check, then remove self from `focus-in-hook'; need to run this just once." (set-face-attribute 'default nil :font my/ui/monofont :height 90) (set-face-attribute 'fixed-pitch nil :font my/ui/monofont :height 90) @@ -153,56 +153,57 @@ run this hook: ;; Arabic (when window-system (set-fontset-font "fontset-default" '(#x600 . #x6ff) my/ui/arabicfont)) (remove-hook 'focus-in-hook #'my/ui/font-check)) - (add-hook 'focus-in-hook #'my/ui/font-check) + (add-hook 'focus-in-hook #'my/ui/font-check) #+end_src Arabic fonts :) #+begin_src emacs-lisp -(when window-system (set-fontset-font "fontset-default" '(#x600 . #x6ff) my/ui/arabicfont)) + (when window-system (set-fontset-font "fontset-default" '(#x600 . #x6ff) my/ui/arabicfont)) #+end_src ** Theme Run =M-x= all-the-icons-install-fonts for the first time! #+begin_src emacs-lisp - (use-package all-the-icons) + (use-package all-the-icons) #+end_src The status line #+begin_src emacs-lisp - (use-package doom-modeline + (use-package doom-modeline :ensure t :init (doom-modeline-mode 1) :config (display-battery-mode 1) + (setq doom-modeline-irc-stylize #'ignore); Fix sever lag https://github.com/seagle0128/doom-modeline/issues/297 :custom ((doom-modeline-height 15) (doom-modeline-icon t))) #+end_src buffers with dimmed colors #+begin_src emacs-lisp - (use-package solaire-mode + (use-package solaire-mode :init (solaire-global-mode +1)) #+end_src Actuall Theme: #+begin_src emacs-lisp - (use-package doom-themes + (use-package doom-themes :config ;; Global settings (defaults) (setq doom-themes-enable-bold t ; if nil, bold is universally disabled - doom-themes-enable-italic t) ; if nil, italics is universally disabled + doom-themes-enable-italic t) ; if nil, italics is universally disabled (load-theme 'doom-gruvbox t) ;; (load-theme 'doom-one-light t) (custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - ;; '(flycheck-warning ((t (:background "#282828" :underline "#fabd2f")))) - '(org-date ((t (:inherit fixed-pitch)))) - ;; '(ivy-posframe-border ((t (:background "#ffffff"))))) + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ;; '(flycheck-warning ((t (:background "#282828" :underline "#fabd2f")))) + '(org-date ((t (:inherit fixed-pitch)))) + ;; '(ivy-posframe-border ((t (:background "#ffffff"))))) - ) + ) ;; Enable custom neotree theme (all-the-icons must be installed!) (doom-themes-neotree-config) @@ -215,16 +216,16 @@ Actuall Theme: Transparency! #+begin_src emacs-lisp - ;; for the first frame - (set-frame-parameter nil 'alpha-background 0.9) - ;; for other frames - (add-hook 'server-after-make-frame-hook - (lambda nil (set-frame-parameter nil 'alpha-background 0.9))) + ;; for the first frame + (set-frame-parameter nil 'alpha-background 0.9) + ;; for other frames + (add-hook 'server-after-make-frame-hook + (lambda nil (set-frame-parameter nil 'alpha-background 0.9))) #+end_src Center text in the frame, looks nice ;) #+begin_src emacs-lisp - (use-package olivetti + (use-package olivetti :diminish :hook (text-mode . olivetti-mode) :hook (prog-mode . olivetti-mode) @@ -239,47 +240,47 @@ I don't use line numbers anymore, chad.png DEPRECATED Enable Globally #+begin_src emacs-lisp :tangle no - ; this block has ":tangle no" - (global-display-line-numbers-mode 0) + ; this block has ":tangle no" + (global-display-line-numbers-mode 0) #+end_src DEPRECATED Disable for the following modes #+begin_src emacs-lisp :tangle no - (defun disable-line-numbers () "Disables line number" (interactive) (display-line-numbers-mode 0)) + (defun disable-line-numbers () "Disables line number" (interactive) (display-line-numbers-mode 0)) - (dolist (mode '(org-mode-hook - term-mode-hook - treemacs-mode-hook - cargo-test-mode-hook - shell-mode-hook - eshell-mode-hook)) + (dolist (mode '(org-mode-hook + term-mode-hook + treemacs-mode-hook + cargo-test-mode-hook + shell-mode-hook + eshell-mode-hook)) (add-hook mode #'disable-line-numbers)) #+end_src ONLY IN PROG! #+begin_src emacs-lisp - ;; (add-hook 'prog-mode-hook 'display-line-numbers-mode) + ;; (add-hook 'prog-mode-hook 'display-line-numbers-mode) #+end_src ** Undo Self explanatory #+begin_src emacs-lisp - (use-package undo-fu) + (use-package undo-fu) #+end_src ** Org roam warning #+begin_src emacs-lisp -(setq org-roam-v2-ack t) ; anonying startup message + (setq org-roam-v2-ack t) ; anonying startup message #+end_src ** Tab Width *8* Spaces for a single tab is too much #+begin_src emacs-lisp - (setq-default tab-width 4) + (setq-default tab-width 4) #+end_src Spaces > Tabs #+begin_src emacs-lisp - (setq-default indent-tabs-mode nil) + (setq-default indent-tabs-mode nil) #+end_src #+RESULTS: @@ -288,18 +289,18 @@ Spaces > Tabs should i really be commiting this? :> ** auth sources #+begin_src emacs-lisp - (setq auth-sources '("~/.authinfo.gpg" - "secrets:local"; keepassxc db - "~/.authinfo" - "~/.netrc")) -(require 'epa-file) -(epa-file-enable) + (setq auth-sources '("~/.authinfo.gpg" + "secrets:local"; keepassxc db + "~/.authinfo" + "~/.netrc")) + (require 'epa-file) + (epa-file-enable) #+end_src * Help =helpful-key= and =describe-function= #+begin_src emacs-lisp - (use-package helpful + (use-package helpful :commands (helpful-callable helpful-variable helpful-command helpful-key) :custom (counsel-describe-function-function #'helpful-callable) @@ -314,14 +315,14 @@ should i really be commiting this? :> * Keybinds Single Esc to Quit, instead of *three* #+begin_src emacs-lisp - (global-set-key (kbd "") 'keyboard-escape-quit) + (global-set-key (kbd "") 'keyboard-escape-quit) #+end_src ** Function keys #+begin_src emacs-lisp - (global-set-key (kbd "M-") '(lambda () (interactive) (org-agenda nil "n"))) - (global-set-key (kbd "" ) '(lambda () (interactive) (org-ql-view "Overview: Agenda-like"))) - (global-set-key (kbd "M-") 'elfeed-dashboard) + (global-set-key (kbd "M-") '(lambda () (interactive) (org-agenda nil "n"))) + (global-set-key (kbd "" ) '(lambda () (interactive) (org-ql-view "Overview: Agenda-like"))) + (global-set-key (kbd "M-") 'elfeed-dashboard) #+end_src ** General.el @@ -329,7 +330,7 @@ Eval First and Last at least block! Edit: honestly I have no clue wtf that meant, or why I wrote it, but I will keep it *** use-package #+begin_src emacs-lisp - (use-package general + (use-package general :after evil :defer t :preface @@ -337,31 +338,31 @@ Edit: honestly I have no clue wtf that meant, or why I wrote it, but I will keep *** Helper Functions #+begin_src emacs-lisp - (defun my/keybind/config () + (defun my/keybind/config () (interactive) (counsel-find-file "emacs" "~/.config/")) - (defun my/keybind/capture-inbox () + (defun my/keybind/capture-inbox () (interactive) (org-capture nil "gi")) - - (defun my/counsel-insert-file-path () + + (defun my/counsel-insert-file-path () "Insert relative file path using counsel minibuffer" (interactive) (unless (featurep 'counsel) (require 'counsel)) (ivy-read "Insert filename: " 'read-file-name-internal - :matcher #'counsel--find-file-matcher - :action - (lambda (x) - (insert (file-relative-name x))))) + :matcher #'counsel--find-file-matcher + :action + (lambda (x) + (insert (file-relative-name x))))) #+end_src *** leader-keys **** config head declartion #+begin_src emacs-lisp - :config - (general-create-definer my/leader-keys + :config + (general-create-definer my/leader-keys :keymaps 'override :states '(normal insert visual emacs) :prefix "SPC" @@ -372,7 +373,7 @@ Edit: honestly I have no clue wtf that meant, or why I wrote it, but I will keep **** Symbols, Spaces, Numbers, u, tabs #+begin_src emacs-lisp - (my/leader-keys + (my/leader-keys "." '(counsel-find-file :which-key "find file") "SPC" '(counsel-projectile-find-file :which-key "projectile find file") "/" '(counsel-projectile-rg :which-key "projects") @@ -384,213 +385,213 @@ Edit: honestly I have no clue wtf that meant, or why I wrote it, but I will keep **** Toggles (t) #+begin_src emacs-lisp - "t" '(:ignore t :which-key "toggles") + "t" '(:ignore t :which-key "toggles") #+end_src **** Help (h) #+begin_src emacs-lisp - "h" '(:ignore t :which-key "Help") + "h" '(:ignore t :which-key "Help") - "ht" '(counsel-load-theme :which-key "Choose Theme") - "hk" '(helpful-key :which-key "Describe Key") - "hf" '(counsel-describe-function :which-key "Describe Function") - "hv" '(counsel-describe-variable :which-key "Describe Variable") - "hF" '(counsel-describe-face :which-key "Describe Face") - "hi" '(info :which-key "info") - "hm" '(woman :which-key "woman") + "ht" '(counsel-load-theme :which-key "Choose Theme") + "hk" '(helpful-key :which-key "Describe Key") + "hf" '(counsel-describe-function :which-key "Describe Function") + "hv" '(counsel-describe-variable :which-key "Describe Variable") + "hF" '(counsel-describe-face :which-key "Describe Face") + "hi" '(info :which-key "info") + "hm" '(woman :which-key "woman") #+end_src **** search (s) #+begin_src emacs-lisp - "s" '(:ignore t :which-key "Search") - - "sb" '(swiper :which-key "swiper") + "s" '(:ignore t :which-key "Search") + + "sb" '(swiper :which-key "swiper") #+end_src **** Files (f) #+begin_src emacs-lisp - "f" '(:ignore t :which-key "Files") + "f" '(:ignore t :which-key "Files") - "fr" '(counsel-recentf :which-key "Recent Files") - "fp" '(my/keybind/config :which-key "Config") - "fd" '(dired :which-key "dired prompt") - "fD" '(dired-jump :which-key "dired current") + "fr" '(counsel-recentf :which-key "Recent Files") + "fp" '(my/keybind/config :which-key "Config") + "fd" '(dired :which-key "dired prompt") + "fD" '(dired-jump :which-key "dired current") #+end_src **** Roam and Org, Capture, Inbox(r/C/I) #+begin_src emacs-lisp - "r" '(:ignore t :which-key "Roam+Org") - - "ra" '(org-agenda :which-key "Agenda") - "rA" '(cfw:open-org-calendar :which-key "Calendar") - "rh" '(helm-org-ql-views :which-key "org-ql views") - - "rD" '(deft :which-key "Deft") - "rf" '(org-roam-node-find :which-key "Find Note") - "rl" '(org-roam-buffer-toggle :which-key "Toggle Sidebar") - "rr" '(org-roam-db-sync :which-key "Roam Sync") - "ri" '(org-roam-node-insert :which-key "Node Insert") - "rI" '(org-id-get-create :which-key "Org Id get/create") - "rT" '(counsel-org-tag :which-key "Org Id get/create") - - - ;; Dailies - "rd" '(:ignore t :which-key "Dailies") - "rdD" '(org-roam-dailies-goto-date :which-key "Go To Date") - "rdT" '(org-roam-dailies-goto-today :which-key "Go To Today") - "rdt" '(org-roam-dailies-capture-today :which-key "Capture Today") - "rdY" '(org-roam-dailies-goto-yesterday :which-key "Go To yesterday") - "rdy" '(org-roam-dailies-capture-yesterday :which-key "Capture yesterday") - "rdM" '(org-roam-dailies-goto-tomorrow :which-key "Go To tomorrow") - "rdm" '(org-roam-dailies-capture-tomorrow :which-key "Capture tomorrow") - - ;; Clocks - "rc" '(:ignore t :which-key "Clocks") - "rci" '(org-clock-in :which-key "Clock In") - "rcI" '(org-clock-in-last :which-key "Clock In Last") - "rco" '(org-clock-out :which-key "Clock Out") - "rcp" '(org-pomodoro :which-key "Pomodoro") - "rcR" '(org-clock-report :which-key "Clock Report") - "rcg" '(org-clock-goto :which-key "Goto Clock") - - ;; Anki - "rn" '(:ignore t :which-key "AnKi") - "rnp" '(anki-editor-push-notes :which-key "Clock In") - "rni" '(anki-editor-insert-notes :which-key "Clock In") - - - ;; Schedules and Deadlines - ;; TODO! + "r" '(:ignore t :which-key "Roam+Org") + + "ra" '(org-agenda :which-key "Agenda") + "rA" '(cfw:open-org-calendar :which-key "Calendar") + "rh" '(helm-org-ql-views :which-key "org-ql views") + + "rD" '(deft :which-key "Deft") + "rf" '(org-roam-node-find :which-key "Find Note") + "rl" '(org-roam-buffer-toggle :which-key "Toggle Sidebar") + "rr" '(org-roam-db-sync :which-key "Roam Sync") + "ri" '(org-roam-node-insert :which-key "Node Insert") + "rI" '(org-id-get-create :which-key "Org Id get/create") + "rT" '(counsel-org-tag :which-key "Org Id get/create") + + + ;; Dailies + "rd" '(:ignore t :which-key "Dailies") + "rdD" '(org-roam-dailies-goto-date :which-key "Go To Date") + "rdT" '(org-roam-dailies-goto-today :which-key "Go To Today") + "rdt" '(org-roam-dailies-capture-today :which-key "Capture Today") + "rdY" '(org-roam-dailies-goto-yesterday :which-key "Go To yesterday") + "rdy" '(org-roam-dailies-capture-yesterday :which-key "Capture yesterday") + "rdM" '(org-roam-dailies-goto-tomorrow :which-key "Go To tomorrow") + "rdm" '(org-roam-dailies-capture-tomorrow :which-key "Capture tomorrow") + + ;; Clocks + "rc" '(:ignore t :which-key "Clocks") + "rci" '(org-clock-in :which-key "Clock In") + "rcI" '(org-clock-in-last :which-key "Clock In Last") + "rco" '(org-clock-out :which-key "Clock Out") + "rcp" '(org-pomodoro :which-key "Pomodoro") + "rcR" '(org-clock-report :which-key "Clock Report") + "rcg" '(org-clock-goto :which-key "Goto Clock") + + ;; Anki + "rn" '(:ignore t :which-key "AnKi") + "rnp" '(anki-editor-push-notes :which-key "Clock In") + "rni" '(anki-editor-insert-notes :which-key "Clock In") + + + ;; Schedules and Deadlines + ;; TODO! #+end_src Capture #+begin_src emacs-lisp - "C" '(org-capture :which-key "Org-Capture") - "I" '(my/keybind/capture-inbox :which-key "Capture Inbox") + "C" '(org-capture :which-key "Org-Capture") + "I" '(my/keybind/capture-inbox :which-key "Capture Inbox") #+end_src **** Open (o) #+begin_src emacs-lisp - "o" '(:ignore t :which-key "Open") + "o" '(:ignore t :which-key "Open") - "oT" '(vterm :which-key "Vterm in current window") - ; use C-t - ;"ot" '(vterm-toggle :which-key "Vterm in other window") - "ob" '(bookmark-jump :which-key "Bookmark Jump") - "oB" '(bookmark-set :which-key "Bookmark set") - "op" '(list-processes :which-key "List Proccess") + "oT" '(vterm :which-key "Vterm in current window") + ; use C-t + ;"ot" '(vterm-toggle :which-key "Vterm in other window") + "ob" '(bookmark-jump :which-key "Bookmark Jump") + "oB" '(bookmark-set :which-key "Bookmark set") + "op" '(list-processes :which-key "List Proccess") - "om" '(mu4e :which-key "mu4e") - "ot" '(telega :which-key "Telega") - "oc" '(circe :which-key "Circe") - "os" '(easy-hugo :which-key "site") + "om" '(mu4e :which-key "mu4e") + "ot" '(telega :which-key "Telega") + "oc" '(circe :which-key "Circe") + "os" '(easy-hugo :which-key "site") - "oe" '(elfeed-dashboard :which-key "Elfeed Dashboard") + "oe" '(elfeed-dashboard :which-key "Elfeed Dashboard") #+end_src **** Insert (i) #+begin_src emacs-lisp - "i" '(:ignore t :which-key "Insert") - "ie" '(emoji-insert :which-key "Emoji") - "if" '(my/counsel-insert-file-path :which-key "Insert Relative path") - "ik" '(helm-show-kill-ring :which-key "Insert from Kill ring") + "i" '(:ignore t :which-key "Insert") + "ie" '(emoji-insert :which-key "Emoji") + "if" '(my/counsel-insert-file-path :which-key "Insert Relative path") + "ik" '(helm-show-kill-ring :which-key "Insert from Kill ring") #+end_src **** Buffers (b) #+begin_src emacs-lisp - "b" '(:ignore t :which-key "buffers") + "b" '(:ignore t :which-key "buffers") - "bs" '(save-buffer :which-key "Save Buffer") - "bk" '(kill-current-buffer :which-key "Kill Buffer") - "bl" '(evil-switch-to-windows-last-buffer :which-key "Last Buffer") - "bi" '(ibuffer :which-key "Ibuffer") - "br" '(revert-buffer :which-key "Revert Buffer") - "bb" '(helm-buffers-list :which-key "Switch to buffer") - - "bc" '(my/circe/helm-buffers :which-key "Circe Helm") - "bt" '(telega-switch-buffer :which-key "Telega buffers") + "bs" '(save-buffer :which-key "Save Buffer") + "bk" '(kill-current-buffer :which-key "Kill Buffer") + "bl" '(evil-switch-to-windows-last-buffer :which-key "Last Buffer") + "bi" '(ibuffer :which-key "Ibuffer") + "br" '(revert-buffer :which-key "Revert Buffer") + "bb" '(helm-buffers-list :which-key "Switch to buffer") + + "bc" '(my/circe/helm-buffers :which-key "Circe Helm") + "bt" '(telega-switch-buffer :which-key "Telega buffers") #+end_src **** Windows (w) #+begin_src emacs-lisp - "w" '(:ignore t :which-key "Windows") - - "wj" '(evil-window-down :which-key "Window Down") - "wk" '(evil-window-up :which-key "Window Up") - "wl" '(evil-window-right :which-key "Window Left") - "wh" '(evil-window-left :which-key "Window Down") - "wJ" '(evil-window-move-very-bottom :which-key "Move Window Down") - "wK" '(evil-window-move-very-top :which-key "Move Window Up") - "wL" '(evil-window-move-far-right :which-key "Move Window Left") - "wH" '(evil-window-move-far-left :which-key "Move Window Down") - - "ws" '(evil-window-split :which-key "Window Split") - "wv" '(evil-window-vsplit :which-key "Window Vsplit") - "wd" '(evil-window-delete :which-key "Window delete") - "wu" '(winner-undo :which-key "Window Undo") - "wo" '(other-window :which-key "Window Other") - "wr" '(winner-redo :which-key "Window Redo") - "wt" '(treemacs :which-key "Treemacs") - "wT" '(treemacs-select-window :which-key "Treemacs Sel. Window") + "w" '(:ignore t :which-key "Windows") + + "wj" '(evil-window-down :which-key "Window Down") + "wk" '(evil-window-up :which-key "Window Up") + "wl" '(evil-window-right :which-key "Window Left") + "wh" '(evil-window-left :which-key "Window Down") + "wJ" '(evil-window-move-very-bottom :which-key "Move Window Down") + "wK" '(evil-window-move-very-top :which-key "Move Window Up") + "wL" '(evil-window-move-far-right :which-key "Move Window Left") + "wH" '(evil-window-move-far-left :which-key "Move Window Down") + + "ws" '(evil-window-split :which-key "Window Split") + "wv" '(evil-window-vsplit :which-key "Window Vsplit") + "wd" '(evil-window-delete :which-key "Window delete") + "wu" '(winner-undo :which-key "Window Undo") + "wo" '(other-window :which-key "Window Other") + "wr" '(winner-redo :which-key "Window Redo") + "wt" '(treemacs :which-key "Treemacs") + "wT" '(treemacs-select-window :which-key "Treemacs Sel. Window") #+end_src **** Code (c) #+begin_src emacs-lisp - "c" '(:ignore t :which-key "code") + "c" '(:ignore t :which-key "code") - "cE" '(eval-defun :which-key "Eval Function at Point") - "ce" '(eval-last-sexp :which-key "Eval Function") - "cb" '(eval-buffer :which-key "Eval Buffer") - "ca" '(lsp-execute-code-action :which-key "Code Action") - "cl" '(lsp-avy-lens :which-key "Code Action") - "ci" '(lsp-ui-imenu :which-key "lsp imenu") - "cr" '(lsp-rename :which-key "rename") - ;"cs" '(lsp-find-refernces :which-key "find refernces") - "cd" '(lsp-find-definition :which-key "goto defintion") - "cD" '(lsp-ui-peek-find-definitions :which-key "goto defintion") - "cs" '(lsp-ui-peek-find-refernces :which-key "find refernces") - "cc" '(recompile :which-key "find refernces") - "cC" '(compile :which-key "find refernces") + "cE" '(eval-defun :which-key "Eval Function at Point") + "ce" '(eval-last-sexp :which-key "Eval Function") + "cb" '(eval-buffer :which-key "Eval Buffer") + "ca" '(lsp-execute-code-action :which-key "Code Action") + "cl" '(lsp-avy-lens :which-key "Code Action") + "ci" '(lsp-ui-imenu :which-key "lsp imenu") + "cr" '(lsp-rename :which-key "rename") + ;"cs" '(lsp-find-refernces :which-key "find refernces") + "cd" '(lsp-find-definition :which-key "goto defintion") + "cD" '(lsp-ui-peek-find-definitions :which-key "goto defintion") + "cs" '(lsp-ui-peek-find-refernces :which-key "find refernces") + "cc" '(recompile :which-key "find refernces") + "cC" '(compile :which-key "find refernces") #+end_src **** Git (g) #+begin_src emacs-lisp - "g" '(:ignore t :which-key "Git") - "gg" '(magit-status :which-key "Magit") + "g" '(:ignore t :which-key "Git") + "gg" '(magit-status :which-key "Magit") #+end_src **** Projectile (p) #+begin_src emacs-lisp - "p" '(projectile-command-map t :which-key "Projectile") + "p" '(projectile-command-map t :which-key "Projectile") #+end_src **** Quit (q) #+begin_src emacs-lisp - "q" '(:ignore t :which-key "Quit and Stuff") - "qf" '(delete-frame :which-key "Close Frame") + "q" '(:ignore t :which-key "Quit and Stuff") + "qf" '(delete-frame :which-key "Close Frame") #+end_src *** Closing Brackets #+begin_src emacs-lisp -)) + )) #+end_src ** Evil *** Basic Evil #+begin_src emacs-lisp - (use-package evil + (use-package evil :init (setq evil-want-integration t - evil-want-keybinding nil - evil-want-C-u-scroll t - evil-want-C-w-delete t - evil-want-C-i-jump t - evil-want-Y-yank-to-eol t - evil-normal-state-cursor 'box - evil-emacs-state-cursor '(box +evil-emacs-cursor-fn); TODO: fix - evil-insert-state-cursor 'bar - evil-visual-state-cursor 'hollow - evil-undo-system 'undo-redo) - + evil-want-keybinding nil + evil-want-C-u-scroll t + evil-want-C-w-delete t + evil-want-C-i-jump t + evil-want-Y-yank-to-eol t + evil-normal-state-cursor 'box + evil-emacs-state-cursor '(box +evil-emacs-cursor-fn); TODO: fix + evil-insert-state-cursor 'bar + evil-visual-state-cursor 'hollow + evil-undo-system 'undo-redo) + :config (evil-mode 1) @@ -627,7 +628,7 @@ Capture (define-key evil-insert-state-map "\C-y" 'yank) (define-key evil-visual-state-map "\C-y" 'yank) - ;(define-key evil-normal-state-map "K" 'lsp-ui-doc-glance); moved to lsp-ui + ;(define-key evil-normal-state-map "K" 'lsp-ui-doc-glance); moved to lsp-ui (define-key evil-visual-state-map "\C-y" 'yank) (define-key evil-insert-state-map "\C-k" 'kill-line) (define-key evil-normal-state-map "Q" 'call-last-kbd-macro) @@ -643,43 +644,43 @@ Capture #+end_src (Not Working) Emacs State Cursor Color #+begin_src emacs-lisp - (defun +evil-default-cursor-fn (interactive) + (defun +evil-default-cursor-fn (interactive) (evil-set-cursor-color (get 'cursor 'evil-normal-color))) - (defun +evil-emacs-cursor-fn () (interactive) - (evil-set-cursor-color (get 'cursor 'evil-emacs-color))) + (defun +evil-emacs-cursor-fn () (interactive) + (evil-set-cursor-color (get 'cursor 'evil-emacs-color))) #+end_src *** Evil Collection #+begin_src emacs-lisp - (use-package evil-collection + (use-package evil-collection :after evil - ; :custom - ; (evil-collection-outline-bind-tab-p t) + ; :custom + ; (evil-collection-outline-bind-tab-p t) :config (evil-collection-init)) #+end_src *** Evil Escape #+begin_src emacs-lisp - ;; ; https://emacs.stackexchange.com/questions/19961/using-jk-to-exit-insert-mode-with-key-chord-or-anything-else - ;; (defun my-jk () - ;; (interactive) - ;; (let* ((initial-key ?j) - ;; (final-key ?k) - ;; (timeout 0.5) - ;; (event (read-event nil nil timeout))) - ;; (if event - ;; ;; timeout met - ;; (if (and (characterp event) (= event final-key)) - ;; (evil-normal-state) - ;; (insert initial-key) - ;; (push event unread-command-events)) - ;; ;; timeout exceeded - ;; (insert initial-key)))) + ;; ; https://emacs.stackexchange.com/questions/19961/using-jk-to-exit-insert-mode-with-key-chord-or-anything-else + ;; (defun my-jk () + ;; (interactive) + ;; (let* ((initial-key ?j) + ;; (final-key ?k) + ;; (timeout 0.5) + ;; (event (read-event nil nil timeout))) + ;; (if event + ;; ;; timeout met + ;; (if (and (characterp event) (= event final-key)) + ;; (evil-normal-state) + ;; (insert initial-key) + ;; (push event unread-command-events)) + ;; ;; timeout exceeded + ;; (insert initial-key)))) - ;; (define-key evil-insert-state-map (kbd "j") 'my-jk) + ;; (define-key evil-insert-state-map (kbd "j") 'my-jk) - (use-package key-chord + (use-package key-chord :after evil :custom (key-chord-two-keys-delay 0.05) @@ -689,33 +690,33 @@ Capture (key-chord-define evil-insert-state-map "jk" 'evil-normal-state) (key-chord-define evil-replace-state-map "jk" 'evil-normal-state)) - ;; (use-package evil-escape - ;; :after evil - ;; :init - ;; (setq 'evil-escape-excluded-major-modes '(magit-status-mode)) - ;; (evil-escape-mode) - ;; :config - ;; (setq evil-escape-key-sequence "jk") - ;; (setq evil-escape-delay 0.2) - ;; (setq evil-escape-unordered-key-sequence t)) + ;; (use-package evil-escape + ;; :after evil + ;; :init + ;; (setq 'evil-escape-excluded-major-modes '(magit-status-mode)) + ;; (evil-escape-mode) + ;; :config + ;; (setq evil-escape-key-sequence "jk") + ;; (setq evil-escape-delay 0.2) + ;; (setq evil-escape-unordered-key-sequence t)) #+end_src *** Evil args [[https://github.com/wcsmith/evil-args][wcsmith/evil-args: Motions and text objects for delimited arguments in Evil.]] #+begin_src emacs-lisp - (use-package evil-args + (use-package evil-args :config ;; bind evil-args text objects (define-key evil-inner-text-objects-map "a" 'evil-inner-arg) (define-key evil-outer-text-objects-map "a" 'evil-outer-arg) - + ;; bind evil-forward/backward-args (define-key evil-normal-state-map "L" 'evil-forward-arg) (define-key evil-normal-state-map "H" 'evil-backward-arg) (define-key evil-motion-state-map "L" 'evil-forward-arg) (define-key evil-motion-state-map "H" 'evil-backward-arg) - + ;; bind evil-jump-out-args ;; (define-key evil-normal-state-map "K" 'evil-jump-out-args)) ) @@ -724,22 +725,22 @@ Capture *** Evil Easy Motion [[https://github.com/PythonNut/evil-easymotion][PythonNut/evil-easymotion: A port of vim easymotion to Emacs' evil-mode]] #+begin_src emacs-lisp - (use-package evil-easymotion + (use-package evil-easymotion :config (evilem-default-keybindings "SPC")) - + #+end_src *** evil-org #+begin_src emacs-lisp - (use-package evil-org + (use-package evil-org :hook (org-mode . evil-org-mode)) #+end_src *** Evil snipe [[https://github.com/hlissner/evil-snipe][hlissner/evil-snipe: 2-char searching ala vim-sneak & vim-seek, for evil-mode]] #+begin_src emacs-lisp - (use-package evil-snipe + (use-package evil-snipe :config (setq evil-snipe-repeat-scope 'whole-visible) (evil-snipe-mode +1)) @@ -747,7 +748,7 @@ Capture *** Evil numbers #+begin_src emacs-lisp - (use-package evil-numbers + (use-package evil-numbers :config (evil-define-key '(normal visual) 'global (kbd "C-c +") 'evil-numbers/inc-at-pt) (evil-define-key '(normal visual) 'global (kbd "C-c -") 'evil-numbers/dec-at-pt) @@ -760,79 +761,79 @@ Capture ** ivy Better Completions #+begin_src emacs-lisp - (use-package ivy + (use-package ivy :defer t :diminish :bind (("C-s" . swiper); TODO: move to Keybinds - :map ivy-minibuffer-map - ("TAB" . ivy-alt-done) - ("C-l" . ivy-alt-done) - ("C-j" . ivy-next-line) - ("C-k" . ivy-previous-line) - :map ivy-switch-buffer-map - ("C-k" . ivy-previous-line) - ("C-l" . ivy-done) - ("C-d" . ivy-switch-buffer-kill) - :map ivy-reverse-i-search-map - ("C-k" . ivy-previous-line) - ("C-d" . ivy-reverse-i-search-kill)) + :map ivy-minibuffer-map + ("TAB" . ivy-alt-done) + ("C-l" . ivy-alt-done) + ("C-j" . ivy-next-line) + ("C-k" . ivy-previous-line) + :map ivy-switch-buffer-map + ("C-k" . ivy-previous-line) + ("C-l" . ivy-done) + ("C-d" . ivy-switch-buffer-kill) + :map ivy-reverse-i-search-map + ("C-k" . ivy-previous-line) + ("C-d" . ivy-reverse-i-search-kill)) :config (ivy-mode 1)) #+end_src Ivy Rich for having =M-x= description and keybinds #+begin_src emacs-lisp - (use-package ivy-rich + (use-package ivy-rich :after counsel :init (ivy-rich-mode 1)) #+end_src Ivy floating #+begin_src emacs-lisp :tangle no - (use-package ivy-posframe + (use-package ivy-posframe :after ivy :diminish :custom-face (ivy-posframe-border ((t (:background "#ffffff")))) :config (setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-frame-top-center)) - ivy-posframe-height-alist '((t . 20)) - ivy-posframe-parameters '((internal-border-width . 10))) + ivy-posframe-height-alist '((t . 20)) + ivy-posframe-parameters '((internal-border-width . 10))) (setq ivy-posframe-width 120) (setq ivy-posframe-parameters - '((left-fringe . 8) - (right-fringe . 8))) - + '((left-fringe . 8) + (right-fringe . 8))) + (ivy-posframe-mode +1)) - + #+end_src ** Counsel #+begin_src emacs-lisp - (use-package counsel + (use-package counsel :defer t :bind (("M-x" . counsel-M-x) - ;("C-x b" . counsel-ibuffer) - ("C-x C-f" . counsel-find-file) - :map minibuffer-local-map - ("C-r" . 'counsel-minibuffer-history) - ("C-w" . 'evil-delete-backward-word)) + ;("C-x b" . counsel-ibuffer) + ("C-x C-f" . counsel-find-file) + :map minibuffer-local-map + ("C-r" . 'counsel-minibuffer-history) + ("C-w" . 'evil-delete-backward-word)) :config (setq ivy-initial-inputs-alist nil)) ;; Don't start searches with '^' #+end_src ** Which Key (Shows Next keys) slow loading! defer it #+begin_src emacs-lisp -(use-package which-key + (use-package which-key :defer 10 :diminish which-key-mode :config (which-key-mode) (setq which-key-idle-delay 1 - which-key-max-display-columns 5)) + which-key-max-display-columns 5)) #+end_src ** Company Mode #+begin_src emacs-lisp - (use-package company + (use-package company :ensure :defer 5 :diminish company-mode @@ -845,66 +846,66 @@ slow loading! defer it ;; (company-begin-commands nil) ;; uncomment to disable popup :bind (:map company-active-map - ;; ("C-n". company-select-next) - ("C-w". evil-delete-backward-word) - ("" . company-complete-common-or-cycle) - ("RET" . company-complete-selection) - ;; ("C-p". company-select-previous) - ("M-<". company-select-first) - ("M->". company-select-last))) + ;; ("C-n". company-select-next) + ("C-w". evil-delete-backward-word) + ("" . company-complete-common-or-cycle) + ("RET" . company-complete-selection) + ;; ("C-p". company-select-previous) + ("M-<". company-select-first) + ("M->". company-select-last))) - (use-package company-box + (use-package company-box :after company :hook (company-mode . company-box-mode)) #+end_src *** lsp + yasnippet #+begin_src emacs-lisp -(defun my-backends () + (defun my-backends () (set (make-local-variable 'company-backends) - '((company-capf ;; I think this must come first? - :with - company-yasnippet - company-files - company-dabbrev-code)))) + '((company-capf ;; I think this must come first? + :with + company-yasnippet + company-files + company-dabbrev-code)))) #+end_src ** Prescient better sorting for ivy, company.. #+begin_src emacs-lisp - (use-package prescient + (use-package prescient :defer t :diminish :config (prescient-persist-mode 1)) - (use-package ivy-prescient + (use-package ivy-prescient :after counsel :init (ivy-prescient-mode 1)) - (use-package company-prescient + (use-package company-prescient :after company :config (company-prescient-mode 1) (prescient-persist-mode) ) - ;; (use-package selectrum-prescient) + ;; (use-package selectrum-prescient) #+end_src ** Yasnippet #+begin_src emacs-lisp - (use-package yasnippet + (use-package yasnippet :defer 9 :config (yas-global-mode)) - (use-package yasnippet-snippets + (use-package yasnippet-snippets :after yasnippet) #+end_src ** Helm #+begin_src emacs-lisp - (use-package helm + (use-package helm :defer t :config (helm-autoresize-mode 1)) #+end_src @@ -912,23 +913,23 @@ better sorting for ivy, company.. * Org-Mode ** Set directories #+begin_src emacs-lisp - (setq org-directory "~/Documents/Emacs/gtd/" - org-roam-directory "~/Documents/Emacs/roam/" - ;; org-s-file (car (org-roam-id-find "34f6b040-ea49-421c-ade6-3834a9c86e0f")) - ;; org-books-file (concat org-roam-directory "book_list.org") - org-agenda-files (list org-directory ); org-s-file) - rmh-elfeed-org-files (list "~/Documents/Emacs/private.el/elfeed.org") - elfeed-dashboard-file "~/Documents/Emacs/private.el/elfeed-dashboard.org" - org-preview-latex-image-directory "~/.cache/ltx/ltximg" - org-my-anki-file (concat org-roam-directory "anki.org") - org-refile-targets '((org-agenda-files . (:level . 1)))) + (setq org-directory "~/Documents/Emacs/gtd/" + org-roam-directory "~/Documents/Emacs/roam/" + ;; org-s-file (car (org-roam-id-find "34f6b040-ea49-421c-ade6-3834a9c86e0f")) + ;; org-books-file (concat org-roam-directory "book_list.org") + org-agenda-files (list org-directory ); org-s-file) + rmh-elfeed-org-files (list "~/Documents/Emacs/private.el/elfeed.org") + elfeed-dashboard-file "~/Documents/Emacs/private.el/elfeed-dashboard.org" + org-preview-latex-image-directory "~/.cache/ltx/ltximg" + org-my-anki-file (concat org-roam-directory "anki.org") + org-refile-targets '((org-agenda-files . (:level . 1)))) #+end_src ** use-package Modes To Start #+begin_src emacs-lisp - (defun my/org-mode/org-mode-setup () + (defun my/org-mode/org-mode-setup () (interactive) (flyspell-mode 1) (org-indent-mode) @@ -937,7 +938,7 @@ Modes To Start #+end_src use-package #+begin_src emacs-lisp - (use-package org + (use-package org :defer t :hook (org-mode . my/org-mode/org-mode-setup) (org-mode . my/org-mode/load-prettify-symbols); symbols @@ -953,20 +954,20 @@ use-package (setq org-log-done 'time) (setq org-log-into-drawer t) (dolist (face '((org-document-title . 2.0) - (org-level-1 . 1.5) - (org-level-2 . 1.0) - (org-level-3 . 1.0) - (org-level-4 . 1.0) - (org-level-5 . 1.0) - (org-level-6 . 1.0) - (org-level-7 . 1.0) - (org-level-8 . 1.0))) - ;; (set-face-attribute (car face) nil :font my/ui/varfont :weight 'regular :height (cdr face))) - (set-face-attribute (car face) nil :font my/ui/monofont :weight 'regular :height (cdr face))) - ;) + (org-level-1 . 1.5) + (org-level-2 . 1.0) + (org-level-3 . 1.0) + (org-level-4 . 1.0) + (org-level-5 . 1.0) + (org-level-6 . 1.0) + (org-level-7 . 1.0) + (org-level-8 . 1.0))) + ;; (set-face-attribute (car face) nil :font my/ui/varfont :weight 'regular :height (cdr face))) + (set-face-attribute (car face) nil :font my/ui/monofont :weight 'regular :height (cdr face))) + ;) (setq org-todo-keyword-faces `(("NOW" (:foreground "white" :background "#444527")) - ("NEXT" (:foreground "bright-white" :background "#444527")))) + ("NEXT" (:foreground "bright-white" :background "#444527")))) (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.5)) ;; Ensure that anything that should be fixed-pitch in Org files appears that way @@ -984,7 +985,7 @@ use-package Capture Templates #+begin_src emacs-lisp -(use-package doct + (use-package doct :ensure t ;;recommended: defer until calling doct :commands (doct)) @@ -992,50 +993,50 @@ Capture Templates ** Open with external app #+begin_src emacs-lisp - ;; Excel with xdg-open - ;;(add-to-list 'org-file-apps '("\\.xlsx\\'" . default)) - ;; moved to org use package + ;; Excel with xdg-open + ;;(add-to-list 'org-file-apps '("\\.xlsx\\'" . default)) + ;; moved to org use package #+end_src ** Appearance *** Symbols #+begin_src emacs-lisp - (defun my/org-mode/load-prettify-symbols () + (defun my/org-mode/load-prettify-symbols () (interactive) (setq prettify-symbols-alist - (mapcan (lambda (x) (list x (cons (upcase (car x)) (cdr x)))) - '(("#+begin_src" . ?) - ("#+end_src" . ?) - ("#+begin_example" . ?) - ("#+end_example" . ?) - ("#+header:" . ?) - ("#+name:" . ?﮸) - ("#+title:" . "") - ("#+results:" . ?) - ("#+call:" . ?) - (":properties:" . ?) - (":logbook:" . ?)))) + (mapcan (lambda (x) (list x (cons (upcase (car x)) (cdr x)))) + '(("#+begin_src" . ?) + ("#+end_src" . ?) + ("#+begin_example" . ?) + ("#+end_example" . ?) + ("#+header:" . ?) + ("#+name:" . ?﮸) + ("#+title:" . "") + ("#+results:" . ?) + ("#+call:" . ?) + (":properties:" . ?) + (":logbook:" . ?)))) (prettify-symbols-mode 1)) #+end_src *** COMMENT Visual Fill (center) I now use olivetti mode, this code block is ignored! #+begin_src emacs-lisp :tangle no - (defun my/org-mode/org-mode-visual-fill () + (defun my/org-mode/org-mode-visual-fill () (interactive) (setq visual-fill-column-width 110 - visual-fill-column-center-text t - fill-column 90) + visual-fill-column-center-text t + fill-column 90) (visual-fill-column-mode 1)) #+end_src #+begin_src emacs-lisp :tangle no - (use-package visual-fill-column; center text + (use-package visual-fill-column; center text :hook (org-mode . my/org-mode/org-mode-visual-fill)) #+end_src *** org-bullets #+begin_src emacs-lisp -(use-package org-bullets + (use-package org-bullets :after org :hook (org-mode . org-bullets-mode) :custom @@ -1045,113 +1046,113 @@ I now use olivetti mode, this code block is ignored! *** Latex scale inline #+begin_src emacs-lisp -; moved to use -package -; (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.5)) + ; moved to use -package + ; (setq org-format-latex-options (plist-put org-format-latex-options :scale 1.5)) #+end_src ** Babel Don't confirm, I know what I am doing! #+begin_src emacs-lisp - (setq org-confirm-babel-evaluate nil) + (setq org-confirm-babel-evaluate nil) #+end_src *** Language List #+begin_src emacs-lisp - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t) - ;(restclient . t) - (sql . t) - ;(mermaid . t) - (octave . t) - (scheme . t) - (shell . t))) + (org-babel-do-load-languages + 'org-babel-load-languages + '((emacs-lisp . t) + (python . t) + ;(restclient . t) + (sql . t) + ;(mermaid . t) + (octave . t) + (scheme . t) + (shell . t))) #+end_src *** Structure Templates Allow fast code insertion #+begin_src emacs-lisp - ;; This is needed as of Org 9.2 + ;; This is needed as of Org 9.2 - (add-to-list 'org-structure-template-alist '("sh" . "src shell")) - (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp")) - (add-to-list 'org-structure-template-alist '("re" . "src restclient")) - (add-to-list 'org-structure-template-alist '("sq" . "src sql")) - (add-to-list 'org-structure-template-alist '("sql" . "src sql")) - (add-to-list 'org-structure-template-alist '("oc" . "src octave")) - (add-to-list 'org-structure-template-alist '("py" . "src python")) - (add-to-list 'org-structure-template-alist '("scm" . "src scheme")) + (add-to-list 'org-structure-template-alist '("sh" . "src shell")) + (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp")) + (add-to-list 'org-structure-template-alist '("re" . "src restclient")) + (add-to-list 'org-structure-template-alist '("sq" . "src sql")) + (add-to-list 'org-structure-template-alist '("sql" . "src sql")) + (add-to-list 'org-structure-template-alist '("oc" . "src octave")) + (add-to-list 'org-structure-template-alist '("py" . "src python")) + (add-to-list 'org-structure-template-alist '("scm" . "src scheme")) #+end_src #+RESULTS: *** Mermaid graphs #+begin_src emacs-lisp :tangle no - ; :tangle no - (use-package ob-mermaid + ; :tangle no + (use-package ob-mermaid :after org) #+end_src ** Capture *** Templates #+begin_src emacs-lisp - (setq org-capture-templates - (doct `(("Consume: Read/watch" :keys "c" - :file ,(concat org-directory "inbox.org") - :prepend t - :template ("* %{todo-state} %^{Description}" - ":PROPERTIES:" - ":Created: %U" - ":END:" - "%?") - :children (("Read" :keys "r" - :headline "Read" - :todo-state "TODO") - ("Watch" :keys "w" - :headline "Watch" - :todo-state "TODO"))) - ("Ideas" :keys "i" - :file ,(concat org-directory "inbox.org") - :prepend t - :template ("* %{todo-state} %^{Description}" - ":PROPERTIES:" - ":Created: %U" - ":END:" - "%?") - :children (("Project" :keys "p" - :olp ("Ideas" "Project") - :todo-state "") - ("Blogs" :keys "b" - :olp ("Blog") - :todo-state "") - ("placeholder" :keys "w" - :headline "Watch" - :todo-state "TODO"))) - ("GTD" :keys "g" - :file ,(concat org-directory "inbox.org") - :prepend t - :template ("* %{todo-state} %^{Description}" - ":PROPERTIES:" - ":Created: %U" - ":END:" - "%?") - :children (("Inbox" :keys "i" - :headline "Inbox" - :todo-state "") - ("placeholder" :keys "w" - :headline "Watch" - :todo-state "TODO")))))) + (setq org-capture-templates + (doct `(("Consume: Read/watch" :keys "c" + :file ,(concat org-directory "inbox.org") + :prepend t + :template ("* %{todo-state} %^{Description}" + ":PROPERTIES:" + ":Created: %U" + ":END:" + "%?") + :children (("Read" :keys "r" + :headline "Read" + :todo-state "TODO") + ("Watch" :keys "w" + :headline "Watch" + :todo-state "TODO"))) + ("Ideas" :keys "i" + :file ,(concat org-directory "inbox.org") + :prepend t + :template ("* %{todo-state} %^{Description}" + ":PROPERTIES:" + ":Created: %U" + ":END:" + "%?") + :children (("Project" :keys "p" + :olp ("Ideas" "Project") + :todo-state "") + ("Blogs" :keys "b" + :olp ("Blog") + :todo-state "") + ("placeholder" :keys "w" + :headline "Watch" + :todo-state "TODO"))) + ("GTD" :keys "g" + :file ,(concat org-directory "inbox.org") + :prepend t + :template ("* %{todo-state} %^{Description}" + ":PROPERTIES:" + ":Created: %U" + ":END:" + "%?") + :children (("Inbox" :keys "i" + :headline "Inbox" + :todo-state "") + ("placeholder" :keys "w" + :headline "Watch" + :todo-state "TODO")))))) #+end_src *** Utils launch with =emacsclient -e '(make-orgcapture-frame)'= From: https://yiufung.net/post/anki-org/ #+begin_src emacs-lisp - (defun make-orgcapture-frame () + (defun make-orgcapture-frame () "Create a new frame and run org-capture." (interactive) - ;(make-frame '((name . "org-capture") (window-system . x))); window-system breaks for some reason :( + ;(make-frame '((name . "org-capture") (window-system . x))); window-system breaks for some reason :( (make-frame '((name . "org-capture"))) (select-frame-by-name "org-capture") (counsel-org-capture) @@ -1168,14 +1169,14 @@ From: https://yiufung.net/post/anki-org/ *** T/ODOs #+begin_src emacs-lisp - (setq org-todo-keywords '((sequence "TODO(t!)" "NOW(o)" "NEXT(n)" "|" "DONE(d!)") - (sequence "|" "CANCELED(c!)"))) + (setq org-todo-keywords '((sequence "TODO(t!)" "NOW(o)" "NEXT(n)" "|" "DONE(d!)") + (sequence "|" "CANCELED(c!)"))) #+end_src *** start on sunday! #+begin_src emacs-lisp - (setq org-agenda-start-on-weekday 0 ;0 is sunday - org-agenda-weekend-days '(5 6)) + (setq org-agenda-start-on-weekday 0 ;0 is sunday + org-agenda-weekend-days '(5 6)) #+end_src *** Weeks per semester @@ -1185,254 +1186,254 @@ From: https://yiufung.net/post/anki-org/ (advice-add 'org-days-to-iso-week :filter-return #'org-week-to-class-week) - + #+end_src *** Go EVIL! #+BEGIN_SRC emacs-lisp - (eval-after-load 'org-agenda + (eval-after-load 'org-agenda '(progn - (evil-set-initial-state 'org-agenda-mode 'normal) - (evil-define-key 'normal org-agenda-mode-map - (kbd "") 'org-agenda-goto - ;;;; (kbd "\t") 'org-agenda-goto + (evil-set-initial-state 'org-agenda-mode 'normal) + (evil-define-key 'normal org-agenda-mode-map + (kbd "") 'org-agenda-goto + ;;;; (kbd "\t") 'org-agenda-goto - "q" 'org-agenda-quit - "S" 'org-save-all-org-buffers + "q" 'org-agenda-quit + "S" 'org-save-all-org-buffers - ;;;; Clocking - "c" nil - "ci" 'org-agenda-clock-in - "co" 'org-agenda-clock-out - "cx" 'org-agenda-clock-cancel - "cR" 'org-agenda-clockreport-mode + ;;;; Clocking + "c" nil + "ci" 'org-agenda-clock-in + "co" 'org-agenda-clock-out + "cx" 'org-agenda-clock-cancel + "cR" 'org-agenda-clockreport-mode - ;;;; Properties - "s" 'org-agenda-schedule - "d" 'org-agenda-deadline - "p" 'org-agenda-priority - "+" 'org-agenda-priority-up - "-" 'org-agenda-priority-down - "t" 'org-agenda-todo - "T" 'counsel-org-tag - ":" 'org-agenda-set-tags - "e" 'org-agenda-set-effort + ;;;; Properties + "s" 'org-agenda-schedule + "d" 'org-agenda-deadline + "p" 'org-agenda-priority + "+" 'org-agenda-priority-up + "-" 'org-agenda-priority-down + "t" 'org-agenda-todo + "T" 'counsel-org-tag + ":" 'org-agenda-set-tags + "e" 'org-agenda-set-effort - ;;;; Movement - "j" 'org-agenda-next-line - "k" 'org-agenda-previous-line - "f" 'org-agenda-later - "b" 'org-agenda-earlier - "J" 'org-agenda-next-date-line - "K" 'org-agenda-previous-date-line - "." 'org-agenda-goto-today + ;;;; Movement + "j" 'org-agenda-next-line + "k" 'org-agenda-previous-line + "f" 'org-agenda-later + "b" 'org-agenda-earlier + "J" 'org-agenda-next-date-line + "K" 'org-agenda-previous-date-line + "." 'org-agenda-goto-today - ;;;; View toggles - "vt" 'org-agenda-toggle-time-grid - "vw" 'org-agenda-week-view - "vd" 'org-agenda-day-view - "vl" 'org-agenda-log-mode - "vr" 'org-agenda-redo - "r" 'org-agenda-redo;; often used - "F" 'org-agenda-follow-mode + ;;;; View toggles + "vt" 'org-agenda-toggle-time-grid + "vw" 'org-agenda-week-view + "vd" 'org-agenda-day-view + "vl" 'org-agenda-log-mode + "vr" 'org-agenda-redo + "r" 'org-agenda-redo;; often used + "F" 'org-agenda-follow-mode - ;;;; Other - "C" 'org-capture - "R" 'my/org-agenda/process-inbox-item - "A" 'org-agenda-archive - "g/" 'org-agenda-filter-by-tag - "gr" 'org-ql-view-refresh - "gh" 'helm-org-ql-views - ;;;; cool but inactive - ;; "gj" 'org-agenda-goto-date - ;; "gJ" 'org-agenda-clock-goto - "gm" 'org-agenda-bulk-mark - "go" 'org-agenda-open-link - ;; "y" 'org-agenda-todo-yesterday - ;; "n" 'org-agenda-add-note - ;; ";" 'org-timer-set-timer - ;; "I" 'helm-org-task-file-headings - ;; "i" 'org-agenda-clock-in-avy - ;; "O" 'org-agenda-clock-out-avy - ;; "u" 'org-agenda-bulk-unmark - ;; "x" 'org-agenda-exit - ;; "va" 'org-agenda-archives-mode - ;;"vc" 'org-agenda-show-clocking-issues - ;; "o" 'delete-other-windows - ;; "gh" 'org-agenda-holiday - ;; "gv" 'org-agenda-view-mode-dispatch - "n" nil ; evil-search-next - ;; "{" 'org-agenda-manipulate-query-add-re - ;; "}" 'org-agenda-manipulate-query-subtract-re - ;; "0" 'evil-digit-argument-or-evil-beginning-of-line - ;; "<" 'org-agenda-filter-by-category - ;; ">" 'org-agenda-date-prompt - ;; "H" 'org-agenda-holidays - ;; "L" 'org-agenda-recenter - ;; "Z" 'org-agenda-sunrise-sunset - ;; "T" 'org-agenda-show-tags - ;; "X" 'org-agenda-clock-cancel - ;; "[" 'org-agenda-manipulate-query-add - ;; "g\\" 'org-agenda-filter-by-tag-refine - ;; "]" 'org-agenda-manipulate-query-subtract - ))) - ;; TODO check this + ;;;; Other + "C" 'org-capture + "R" 'my/org-agenda/process-inbox-item + "A" 'org-agenda-archive + "g/" 'org-agenda-filter-by-tag + "gr" 'org-ql-view-refresh + "gh" 'helm-org-ql-views + ;;;; cool but inactive + ;; "gj" 'org-agenda-goto-date + ;; "gJ" 'org-agenda-clock-goto + "gm" 'org-agenda-bulk-mark + "go" 'org-agenda-open-link + ;; "y" 'org-agenda-todo-yesterday + ;; "n" 'org-agenda-add-note + ;; ";" 'org-timer-set-timer + ;; "I" 'helm-org-task-file-headings + ;; "i" 'org-agenda-clock-in-avy + ;; "O" 'org-agenda-clock-out-avy + ;; "u" 'org-agenda-bulk-unmark + ;; "x" 'org-agenda-exit + ;; "va" 'org-agenda-archives-mode + ;;"vc" 'org-agenda-show-clocking-issues + ;; "o" 'delete-other-windows + ;; "gh" 'org-agenda-holiday + ;; "gv" 'org-agenda-view-mode-dispatch + "n" nil ; evil-search-next + ;; "{" 'org-agenda-manipulate-query-add-re + ;; "}" 'org-agenda-manipulate-query-subtract-re + ;; "0" 'evil-digit-argument-or-evil-beginning-of-line + ;; "<" 'org-agenda-filter-by-category + ;; ">" 'org-agenda-date-prompt + ;; "H" 'org-agenda-holidays + ;; "L" 'org-agenda-recenter + ;; "Z" 'org-agenda-sunrise-sunset + ;; "T" 'org-agenda-show-tags + ;; "X" 'org-agenda-clock-cancel + ;; "[" 'org-agenda-manipulate-query-add + ;; "g\\" 'org-agenda-filter-by-tag-refine + ;; "]" 'org-agenda-manipulate-query-subtract + ))) + ;; TODO check this #+END_SRC *** habits #+begin_src emacs-lisp - (setq org-habit-graph-column 80 ; prevent overwriting title - org-habit-show-habits-only-for-today 't - org-habit-show-all-today nil) ; show even if DONE - ;; (with-eval-after-load 'org-habit - ;; (defun org-habit-streak-count () - ;; (goto-char (point-min)) - ;; (while (not (eobp)) - ;; ;;on habit line? - ;; (when (get-text-property (point) 'org-habit-p) - ;; (let ((streak 0) - ;; (counter (+ org-habit-graph-column (- org-habit-preceding-days org-habit-following-days))) - ;; ) - ;; (move-to-column counter) - ;; ;;until end of line - ;; (while (= (char-after (point)) org-habit-completed-glyph) - ;; (setq streak (+ streak 1)) - ;; (setq counter (- counter 1)) - ;; (backward-char 1)) - ;; (end-of-line) - ;; (insert (number-to-string streak)))) - ;; (forward-line 1))) + (setq org-habit-graph-column 80 ; prevent overwriting title + org-habit-show-habits-only-for-today 't + org-habit-show-all-today nil) ; show even if DONE + ;; (with-eval-after-load 'org-habit + ;; (defun org-habit-streak-count () + ;; (goto-char (point-min)) + ;; (while (not (eobp)) + ;; ;;on habit line? + ;; (when (get-text-property (point) 'org-habit-p) + ;; (let ((streak 0) + ;; (counter (+ org-habit-graph-column (- org-habit-preceding-days org-habit-following-days))) + ;; ) + ;; (move-to-column counter) + ;; ;;until end of line + ;; (while (= (char-after (point)) org-habit-completed-glyph) + ;; (setq streak (+ streak 1)) + ;; (setq counter (- counter 1)) + ;; (backward-char 1)) + ;; (end-of-line) + ;; (insert (number-to-string streak)))) + ;; (forward-line 1))) - ;; (add-hook 'org-agenda-finalize-hook 'org-habit-streak-count)) + ;; (add-hook 'org-agenda-finalize-hook 'org-habit-streak-count)) #+end_src *** org SUPER agenda #+begin_src emacs-lisp - (use-package org-super-agenda + (use-package org-super-agenda :after org-agenda :config (setq org-agenda-span 'day); a week is too much (setq org-super-agenda-groups - '((:log t :order 99); logs at bottom - (:name "Study" - :order 97 - :tag ("S")) - (:name "Life" - :order 98 - :tag ("L")) - (:name "Habits" - :order 99 - :habit t) - (:name "Overdue" - :deadline past - :scheduled past) - (:name "Today" ; today is what - :time-grid t ; Items that appear on the time grid - :scheduled today) - (:name "Now" ; today is what - :todo "NOW") - (:name "Deadlines" - :deadline t) - (:name "To Refile" - :tag ("INBOX")))) + '((:log t :order 99); logs at bottom + (:name "Study" + :order 97 + :tag ("S")) + (:name "Life" + :order 98 + :tag ("L")) + (:name "Habits" + :order 99 + :habit t) + (:name "Overdue" + :deadline past + :scheduled past) + (:name "Today" ; today is what + :time-grid t ; Items that appear on the time grid + :scheduled today) + (:name "Now" ; today is what + :todo "NOW") + (:name "Deadlines" + :deadline t) + (:name "To Refile" + :tag ("INBOX")))) (org-super-agenda-mode 1) :hook (org-agenda-mode . origami-mode) (org-agenda-mode . org-super-agenda-mode); need this sadly (org-agenda-mode . olivetti-mode) - ;(org-agenda-mode . olivetti-mode) - ;(evil-define-key '(normal visual) 'org-super-agenda-header-map "j" 'org-agenda-next-line) + ;(org-agenda-mode . olivetti-mode) + ;(evil-define-key '(normal visual) 'org-super-agenda-header-map "j" 'org-agenda-next-line) :bind (:map org-super-agenda-header-map - ([tab] . origami-toggle-node) - ;; evil doesn't work on headers, bruh - ("j" . org-agenda-next-line) - ("k" . org-agenda-previous-line) - ("h" . evil-backward-char) - ("l" . evil-forward-char))) + ([tab] . origami-toggle-node) + ;; evil doesn't work on headers, bruh + ("j" . org-agenda-next-line) + ("k" . org-agenda-previous-line) + ("h" . evil-backward-char) + ("l" . evil-forward-char))) #+end_src *** COMMENT org-ql #+begin_src emacs-lisp -(use-package helm-org-ql :after org-ql) + (use-package helm-org-ql :after org-ql) #+end_src #+begin_src emacs-lisp - ; TODO: tasks not in inbox, and have no schedule/effort/etc - (use-package org-ql + ; TODO: tasks not in inbox, and have no schedule/effort/etc + (use-package org-ql :config (setq org-ql-views (list - (cons "Agenda:Today" - (list :buffers-files #'org-agenda-files - :query '(and (not (done)) - (or (deadline auto) - (scheduled :to today) - (todo "NOW") - (ts-active :on today))) - :sort '(priority date todo) - :super-groups 'org-super-agenda-groups - :title "Overview: Today")) - (cons "To Refile" - (list :buffers-files #'org-agenda-files - :query '(or - (parent (tags "INBOX")) - (done)) - :super-groups '((:name "Done" :todo "DONE") - (:name "Canceled" :todo "CANCELED") - (:name "Inbox" :anything)) - :title "Inbox")) - (cons "Plans" - (list :buffers-files #'org-agenda-files - :query '(and - (parent (tags "PLAN")) - (not (done))) - :super-groups '((:auto-outline-path)) - :sort '(priority date todo) - :title "Plans")) - (cons "Consoom and Create" - (list :buffers-files #'org-agenda-files - :query '(parent (tags "READ" "WATCH" "TO_BLOG")) - :super-groups '((:tag "READ") - (:tag "WATCH") - (:tag "TO_BLOG")) - :sort '(todo) - :title "Goals")) - (cons "Orphans" - (list :buffers-files #'org-agenda-files - :query '(and ;(not (todo)) - (not (done)) - (not (effort)) - (not (tags "NOT_ORPHAN" "INBOX")) - (not (scheduled)) - (not (deadline)) - (parent)))) - (cons "Quick Picks" - (list :buffers-files #'org-agenda-files - :query '(and (not (done)) - (effort <= 10)) - :sort '(todo) - :super-groups 'org-super-agenda-groups - :title "Quick Picks"))))) + (cons "Agenda:Today" + (list :buffers-files #'org-agenda-files + :query '(and (not (done)) + (or (deadline auto) + (scheduled :to today) + (todo "NOW") + (ts-active :on today))) + :sort '(priority date todo) + :super-groups 'org-super-agenda-groups + :title "Overview: Today")) + (cons "To Refile" + (list :buffers-files #'org-agenda-files + :query '(or + (parent (tags "INBOX")) + (done)) + :super-groups '((:name "Done" :todo "DONE") + (:name "Canceled" :todo "CANCELED") + (:name "Inbox" :anything)) + :title "Inbox")) + (cons "Plans" + (list :buffers-files #'org-agenda-files + :query '(and + (parent (tags "PLAN")) + (not (done))) + :super-groups '((:auto-outline-path)) + :sort '(priority date todo) + :title "Plans")) + (cons "Consoom and Create" + (list :buffers-files #'org-agenda-files + :query '(parent (tags "READ" "WATCH" "TO_BLOG")) + :super-groups '((:tag "READ") + (:tag "WATCH") + (:tag "TO_BLOG")) + :sort '(todo) + :title "Goals")) + (cons "Orphans" + (list :buffers-files #'org-agenda-files + :query '(and ;(not (todo)) + (not (done)) + (not (effort)) + (not (tags "NOT_ORPHAN" "INBOX")) + (not (scheduled)) + (not (deadline)) + (parent)))) + (cons "Quick Picks" + (list :buffers-files #'org-agenda-files + :query '(and (not (done)) + (effort <= 10)) + :sort '(todo) + :super-groups 'org-super-agenda-groups + :title "Quick Picks"))))) #+end_src *** COMMENT org-timeblock #+begin_src emacs-lisp - (use-package org-timeblock + (use-package org-timeblock :straight (org-timeblock :type git - :host github - :repo "ichernyshovvv/org-timeblock")) + :host github + :repo "ichernyshovvv/org-timeblock")) #+end_src *** COMMENT org-hyperscheduler #+begin_src emacs-lisp - (use-package org-hyperscheduler + (use-package org-hyperscheduler :straight ( :repo "dmitrym0/org-hyperscheduler" - :host github - :type git - :files ("*")) + :host github + :type git + :files ("*")) :custom (org-hyperscheduler-readonly-mode nil)) #+end_src @@ -1440,38 +1441,38 @@ From: https://yiufung.net/post/anki-org/ *** Helper functions Stolen from: [[https://blog.jethro.dev/posts/processing_inbox/][Org-mode Workflow Part 2: Processing the Inbox · Jethro Kuan]] #+begin_src emacs-lisp - (defun my/org-agenda/process-inbox-item () + (defun my/org-agenda/process-inbox-item () "Process a single item in the org-agenda." (interactive) (org-with-wide-buffer - (org-agenda-set-tags) - ;(org-agenda-priority) - (org-agenda-set-effort) - (org-agenda-refile nil nil t))) + (org-agenda-set-tags) + ;(org-agenda-priority) + (org-agenda-set-effort) + (org-agenda-refile nil nil t))) #+end_src *** Calfw calendar #+begin_src emacs-lisp - (use-package calfw :after org) - (use-package calfw-org + (use-package calfw :after org) + (use-package calfw-org :after calfw :config - ; looks nice + ; looks nice (setq cfw:fchar-junction ?╬ - cfw:fchar-vertical-line ?║ - cfw:fchar-horizontal-line ?═ - cfw:fchar-left-junction ?╠ - cfw:fchar-right-junction ?╣ - cfw:fchar-top-junction ?╦ - cfw:fchar-top-left-corner ?╔ - cfw:fchar-top-right-corner ?╗) + cfw:fchar-vertical-line ?║ + cfw:fchar-horizontal-line ?═ + cfw:fchar-left-junction ?╠ + cfw:fchar-right-junction ?╣ + cfw:fchar-top-junction ?╦ + cfw:fchar-top-left-corner ?╔ + cfw:fchar-top-right-corner ?╗) (evil-set-initial-state 'cfw:details-mode 'emacs)) #+end_src ** org-pomodoro #+begin_src emacs-lisp - (use-package org-pomodoro + (use-package org-pomodoro :defer t :custom (org-pomodoro-length 25) @@ -1481,58 +1482,58 @@ Stolen from: [[https://blog.jethro.dev/posts/processing_inbox/][Org-mode Workflo ** Org analyzer #+begin_src emacs-lisp - (use-package org-analyzer) + (use-package org-analyzer) #+end_src ** org-roam *** use-package #+begin_src emacs-lisp - (use-package org-roam + (use-package org-roam :defer t :custom (org-roam-completion-everywhere t) (org-roam-db-gc-threshold most-positive-fixnum) ;; preformance (org-roam-capture-ref-templates - '(("r" "ref" plain "%?" :if-new - (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}") - :unnarrowed t))) + '(("r" "ref" plain "%?" :if-new + (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}") + :unnarrowed t))) :config ;; side window - ;(require 'org-roam-protocol) + ;(require 'org-roam-protocol) (org-roam-db-autosync-mode) (add-to-list 'display-buffer-alist - '("\\*org-roam\\*" - (display-buffer-in-side-window) - (side . right) - (slot . 0) - (window-width . 0.33) - (window-parameters . ((no-other-window . t) - (no-delete-other-windows . t)))))) + '("\\*org-roam\\*" + (display-buffer-in-side-window) + (side . right) + (slot . 0) + (window-width . 0.33) + (window-parameters . ((no-other-window . t) + (no-delete-other-windows . t)))))) #+end_src *** org roam server #+begin_src emacs-lisp - (use-package websocket + (use-package websocket :after org-roam) - - (use-package simple-httpd + + (use-package simple-httpd :after org-roam) - - (use-package org-roam-ui + + (use-package org-roam-ui :straight (org-roam-ui - :type git - :host github - :repo "org-roam/org-roam-ui" - :files ("*.el" "out")) + :type git + :host github + :repo "org-roam/org-roam-ui" + :files ("*.el" "out")) :after org-roam ;; or :after org :hook (org-roam . org-roam-ui-mode) :config) - + #+end_src *** Deft #+begin_src emacs-lisp - (use-package deft + (use-package deft :after org :bind :custom @@ -1541,40 +1542,40 @@ Stolen from: [[https://blog.jethro.dev/posts/processing_inbox/][Org-mode Workflo (deft-use-filter-string-for-filename t) (deft-default-extension "org") (deft-directory org-roam-directory)) - (setq deft-recursive t) - (setq deft-strip-summary-regexp ":PROPERTIES:\n\\(.+\n\\)+:END:\n") - (setq deft-use-filename-as-title 't) + (setq deft-recursive t) + (setq deft-strip-summary-regexp ":PROPERTIES:\n\\(.+\n\\)+:END:\n") + (setq deft-use-filename-as-title 't) #+end_src ** org-download and clip-link #+begin_src emacs-lisp - (use-package org-download + (use-package org-download :after org) - (use-package org-cliplink + (use-package org-cliplink :after org) #+end_src ** COMMENT org-book #+begin_src emacs-lisp - (use-package org-books + (use-package org-books :after org ) #+end_src ** COMMENT Anki Stopped using this, I just use Anki like a normal person #+begin_src emacs-lisp - (use-package anki-editor + (use-package anki-editor :after org :bind (:map org-mode-map - ("" . anki-editor-cloze-region-auto-incr)) + ("" . anki-editor-cloze-region-auto-incr)) :init (setq-default anki-editor-use-math-jax t) :config - + (setq anki-editor-create-decks nil ;; Allow anki-editor to create a new deck if it doesn't exist - anki-editor-org-tags-as-anki-tags t) - + anki-editor-org-tags-as-anki-tags t) + ) #+end_src @@ -1583,39 +1584,39 @@ Stopped using this, I just use Anki like a normal person *** Brackets setup #+begin_src emacs-lisp - (use-package rainbow-delimiters + (use-package rainbow-delimiters :hook (prog-mode . rainbow-delimiters-mode) (prog-mode . show-paren-mode) - ;(prog-mode . electric-pair-local-mode) + ;(prog-mode . electric-pair-local-mode) ) #+end_src #+begin_src emacs-lisp - ;; (use-package paredit :defer t) + ;; (use-package paredit :defer t) #+end_src #+begin_src emacs-lisp - (use-package parinfer-rust-mode ; + (use-package parinfer-rust-mode ; :hook (emacs-lisp-mode . parinfer-rust-mode) (scheme-mode . parinfer-rust-mode) (clojure-mode . parinfer-rust-mode) - ;tabs break parinfer rust mode + ;tabs break parinfer rust mode (parinfer-rust-mode . (lambda () (setq indent-tabs-mode nil))); :init (setq parinfer-rust-auto-download t - ; this variable is only available on my fork - parinfer-rust-disable-troublesome-modes t)) + ; this variable is only available on my fork + parinfer-rust-disable-troublesome-modes t)) #+end_src *** Compilation output When running =M-x compile= the output is colored! #+begin_src emacs-lisp - (add-hook 'compilation-filter-hook 'ansi-color-compilation-filter) + (add-hook 'compilation-filter-hook 'ansi-color-compilation-filter) #+end_src *** Projectile #+begin_src emacs-lisp - (use-package projectile + (use-package projectile :defer t :diminish projectile-mode :config (projectile-mode) @@ -1623,72 +1624,72 @@ When running =M-x compile= the output is colored! :init ;; NOTE: Set this to the folder where you keep your Git repos! (when (file-directory-p "~/code") - (setq projectile-project-search-path '("~/code"))) + (setq projectile-project-search-path '("~/code"))) (setq projectile-switch-project-action #'projectile-dired)) #+end_src Counsel Projectile #+begin_src emacs-lisp - (use-package counsel-projectile + (use-package counsel-projectile :defer 9 :config (counsel-projectile-mode)) #+end_src *** Recentf #+begin_src emacs-lisp - (use-package recentf + (use-package recentf :defer 10 :config (recentf-mode 1) - ; https://github.com/emacscollective/no-littering#suggested-settings + ; https://github.com/emacscollective/no-littering#suggested-settings (with-eval-after-load 'no-littering - (add-to-list 'recentf-exclude no-littering-var-directory) - (add-to-list 'recentf-exclude no-littering-etc-directory))) + (add-to-list 'recentf-exclude no-littering-var-directory) + (add-to-list 'recentf-exclude no-littering-etc-directory))) #+end_src *** lsp performance This is done in Performance section #+begin_src emacs-lisp :tangle no - (setq gc-cons-threshold 100000000) ;; 100 mb - (setq read-process-output-max (* 1024 4024)) ;; 4mb + (setq gc-cons-threshold 100000000) ;; 100 mb + (setq read-process-output-max (* 1024 4024)) ;; 4mb #+end_src *** lsp-mode #+begin_src emacs-lisp (use-package lsp-mode - :commands (lsp lsp-deferred) - ;; :hook - ;; (lsp-mode . my/lsp/lsp-mode-setup) - :custom - (lsp-headerline-breadcrumb-segments '(path-up-to-project file)) - (lsp-rust-analyzer-cargo-watch-command "clippy") - (lsp-eldoc-render-all t) - (lsp-eldoc-enable-hover nil) - (lsp-ui-doc-show-with-mouse nil) - (lsp-keep-workspace-alive nil) - (lsp-auto-execute-action nil) ; always ask for actions, even if there is only one option! - (lsp-idle-delay 0.6) - (lsp-completion-provider :capf) - (lsp-prefer-flymake nil) - (lsp-idle-delay 0.6) - (lsp-rust-analyzer-server-display-inlay-hints t) - (lsp-rust-analyzer-display-parameter-hints t) - ;(setq lsp-keymap-prefix "C-c l") ;; Or 'C-l', 's-l' - :config - (lsp-enable-which-key-integration t) - (setq lsp-headerline-breadcrumb-enable nil); anonying tabs - (setq lsp-log-io nil) ; if set to true can cause a performance hit - (add-hook 'lsp-mode-hook 'lsp-ui-mode) - (lsp-headerline-breadcrumb-mode -1) - (flycheck-mode 1) - :bind - (:map lsp-mode-map - ;; ("" . company-indent-or-complete-common); commented cuz tabs for yasnippet! - ) - ) + :commands (lsp lsp-deferred) + ;; :hook + ;; (lsp-mode . my/lsp/lsp-mode-setup) + :custom + (lsp-headerline-breadcrumb-segments '(path-up-to-project file)) + (lsp-rust-analyzer-cargo-watch-command "clippy") + (lsp-eldoc-render-all t) + (lsp-eldoc-enable-hover nil) + (lsp-ui-doc-show-with-mouse nil) + (lsp-keep-workspace-alive nil) + (lsp-auto-execute-action nil) ; always ask for actions, even if there is only one option! + (lsp-idle-delay 0.6) + (lsp-completion-provider :capf) + (lsp-prefer-flymake nil) + (lsp-idle-delay 0.6) + (lsp-rust-analyzer-server-display-inlay-hints t) + (lsp-rust-analyzer-display-parameter-hints t) + ;(setq lsp-keymap-prefix "C-c l") ;; Or 'C-l', 's-l' + :config + (lsp-enable-which-key-integration t) + (setq lsp-headerline-breadcrumb-enable nil); anonying tabs + (setq lsp-log-io nil) ; if set to true can cause a performance hit + (add-hook 'lsp-mode-hook 'lsp-ui-mode) + (lsp-headerline-breadcrumb-mode -1) + (flycheck-mode 1) + :bind + (:map lsp-mode-map + ;; ("" . company-indent-or-complete-common); commented cuz tabs for yasnippet! + ) + ) #+end_src Lsp UI #+begin_src emacs-lisp - (use-package lsp-ui + (use-package lsp-ui :commands lsp-ui-mode :custom (lsp-ui-peek-always-show t) @@ -1697,40 +1698,40 @@ Lsp UI ;; (lsp-ui-doc-enable nil) :bind (:map lsp-ui-mode-map - ([remap evil-lookup] . lsp-ui-doc-glance) - ([remap xref-find-references] . lsp-ui-peek-find-references) - ("C-c z" . lsp-ui-doc-focus-frame) - :map lsp-ui-doc-frame-mode-map - ("C-g" . lsp-ui-doc-unfocus-frame) - ("C-c z" . lsp-ui-doc-unfocus-frame) - )) + ([remap evil-lookup] . lsp-ui-doc-glance) + ([remap xref-find-references] . lsp-ui-peek-find-references) + ("C-c z" . lsp-ui-doc-focus-frame) + :map lsp-ui-doc-frame-mode-map + ("C-g" . lsp-ui-doc-unfocus-frame) + ("C-c z" . lsp-ui-doc-unfocus-frame) + )) #+end_src #+RESULTS: *** lsp treemacs #+begin_src emacs-lisp - ;; (use-package lsp-treemacs - ;; :after lsp) + ;; (use-package lsp-treemacs + ;; :after lsp) #+end_src *** Flycheck #+begin_src emacs-lisp -(use-package flycheck -:custom-face (flycheck-warning ((t (:underline (:color "#fabd2f" :style line :position line))))) + (use-package flycheck + :custom-face (flycheck-warning ((t (:underline (:color "#fabd2f" :style line :position line))))) (flycheck-error ((t (:underline (:color "#fb4934" :style line :position line))))) (flycheck-info ((t (:underline (:color "#83a598" :style line :position line)))))) #+end_src *** Hide Show #+begin_src emacs-lisp - (use-package origami + (use-package origami :hook (prog-mode . origami-mode)) #+end_src *** COMMENT Formatting #+begin_src emacs-lisp - (use-package format-all + (use-package format-all ;; :commands (format-all-mode) :config (setq my/format-all-formatters '(("Verilog" verible))) @@ -1742,7 +1743,7 @@ Lsp UI *** Debug Use the Debug Adapter Protocol for running tests and debugging #+begin_src emacs-lisp -(use-package dap-mode + (use-package dap-mode :hook (lsp-mode . dap-mode) (lsp-mode . dap-ui-mode)) @@ -1750,20 +1751,20 @@ Use the Debug Adapter Protocol for running tests and debugging *** Highlihght Indenation Mode #+begin_src emacs-lisp :tangle no - (use-package highlight-indent-guides - :hook (prog-mode . highlight-indent-guides-mode) - :custom (highlight-indent-guides-method 'character) - (highlight-indent-guides-responsive 'top)) + (use-package highlight-indent-guides + :hook (prog-mode . highlight-indent-guides-mode) + :custom (highlight-indent-guides-method 'character) + (highlight-indent-guides-responsive 'top)) #+end_src ** Git #+begin_src emacs-lisp - (setq vc-handled-backends '(Git)) + (setq vc-handled-backends '(Git)) #+end_src *** Magit #+begin_src emacs-lisp - (use-package magit + (use-package magit :commands (magit) :custom (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) @@ -1771,24 +1772,24 @@ Use the Debug Adapter Protocol for running tests and debugging Magit TODOs! #+begin_src emacs-lisp - (use-package magit-todos + (use-package magit-todos :after magit :config (magit-todos-mode 1)) #+end_src *** TODO Forge #+begin_src emacs-lisp - ;(use-package forge) + ;(use-package forge) #+end_src *** Git gutter #+begin_src emacs-lisp - (use-package git-gutter + (use-package git-gutter :hook (prog-mode . git-gutter-mode) :config - (setq git-gutter:update-interval 0.02)) - - (use-package git-gutter-fringe + (setq git-gutter:update-interval 2)) + + (use-package git-gutter-fringe :config (define-fringe-bitmap 'git-gutter-fr:added [224] nil nil '(center repeated)) (define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated)) @@ -1801,37 +1802,37 @@ Magit TODOs! use-package #+begin_src emacs-lisp (use-package treemacs - :commands (treemacs) - :init - (treemacs-project-follow-mode 1) - (setq treemacs-follow-after-init t - treemacs-is-never-other-window t - treemacs-sorting 'alphabetic-case-insensitive-asc)) + :commands (treemacs) + :init + (treemacs-project-follow-mode 1) + (setq treemacs-follow-after-init t + treemacs-is-never-other-window t + treemacs-sorting 'alphabetic-case-insensitive-asc)) #+end_src fix evil keybinds #+begin_src emacs-lisp - (use-package treemacs-evil - ;:when (package-installed-p 'evil-collection) - ;:defer t + (use-package treemacs-evil + ;:when (package-installed-p 'evil-collection) + ;:defer t :after treemacs :init :config (general-def evil-treemacs-state-map - [return] #'treemacs-RET-action - [tab] #'treemacs-TAB-action - "TAB" #'treemacs-TAB-action - "o v" #'treemacs-visit-node-horizontal-split - "o s" #'treemacs-visit-node-vertical-split)) + [return] #'treemacs-RET-action + [tab] #'treemacs-TAB-action + "TAB" #'treemacs-TAB-action + "o v" #'treemacs-visit-node-horizontal-split + "o s" #'treemacs-visit-node-vertical-split)) #+end_src Get treemacs-lsp #+begin_src emacs-lisp - (use-package lsp-treemacs + (use-package lsp-treemacs :after (treemacs lsp)) - (use-package treemacs-magit + (use-package treemacs-magit :after treemacs magit) - (use-package treemacs-persp + (use-package treemacs-persp :after treemacs :config (treemacs-set-scope-type 'Perspectives)) #+end_src @@ -1839,51 +1840,51 @@ Get treemacs-lsp ** Language *** COMMENT Arduino #+begin_src emacs-lisp - (use-package arduino-mode + (use-package arduino-mode :config (lsp-register-client - (make-lsp-client - :new-connection (lsp-stdio-connection '("arduino-language-server" "-clangd" "clangd" "-cli" "arduino-cli" "-cli-config" "/home/lambda/.arduino15/arduino-cli.yaml" "-fqbn" "arduino:avr:uno")) - :activation-fn (lsp-activate-on "arduino") - :server-id 'arduino-language-server)) + (make-lsp-client + :new-connection (lsp-stdio-connection '("arduino-language-server" "-clangd" "clangd" "-cli" "arduino-cli" "-cli-config" "/home/lambda/.arduino15/arduino-cli.yaml" "-fqbn" "arduino:avr:uno")) + :activation-fn (lsp-activate-on "arduino") + :server-id 'arduino-language-server)) :defer t) #+end_src *** Clojure #+begin_src emacs-lisp - (use-package cider + (use-package cider :defer t :config (require 'flycheck-clj-kondo) :hook (clojure-mode . zprint-format-on-save-mode) (clojure-mode . flycheck-mode) - ; (clojure-mode . electric-pair-local-mode) + ; (clojure-mode . electric-pair-local-mode) :bind (:map cider-mode-map - ([remap lsp-find-definition] . cider-find-var) - ([remap eval-defun] . cider-eval-list-at-point) - ([remap eval-last-sexp] . cider-eval-last-sexp))) + ([remap lsp-find-definition] . cider-find-var) + ([remap eval-defun] . cider-eval-list-at-point) + ([remap eval-last-sexp] . cider-eval-last-sexp))) #+end_src Auto format #+begin_src emacs-lisp - (use-package zprint-format + (use-package zprint-format :after cider) #+end_src #+begin_src emacs-lisp - (use-package flycheck-clj-kondo + (use-package flycheck-clj-kondo :after cider) #+end_src *** COMMENT Rust #+begin_src emacs-lisp - (use-package rustic + (use-package rustic :defer t :ensure :bind (:map rustic-mode-map - ("C-c C-c l" . lsp-ui-flycheck-list) - ("C-c C-c s" . lsp-rust-analyzer-status) - ("" . rustic-cargo-test) - ("C-" . rustic-cargo-run)) + ("C-c C-c l" . lsp-ui-flycheck-list) + ("C-c C-c s" . lsp-rust-analyzer-status) + ("" . rustic-cargo-test) + ("C-" . rustic-cargo-run)) :config ;; uncomment for less flashiness ;; (setq lsp-eldoc-hook nil) @@ -1897,31 +1898,31 @@ Auto format :custom (rustic-rustfmt-config-alist '((edition . "2021")))) - (defun my/dev/rustic-mode-hook () + (defun my/dev/rustic-mode-hook () ;; so that run C-c C-c C-r works without having to confirm, but don't try to ;; save rust buffers that are not file visiting. Once ;; https://github.com/brotzeit/rustic/issues/253 has been resolved this should ;; no longer be necessary. (when buffer-file-name - (setq-local buffer-save-without-query t))) + (setq-local buffer-save-without-query t))) #+end_src *** emacs-lisp #+begin_src emacs-lisp - ;; (add-hook 'emacs-lisp-mode-hook 'company-mode) - (add-hook 'emacs-lisp-mode-hook 'flycheck-mode) + ;; (add-hook 'emacs-lisp-mode-hook 'company-mode) + (add-hook 'emacs-lisp-mode-hook 'flycheck-mode) #+end_src *** COMMENT V #+begin_src emacs-lisp - (use-package v-mode + (use-package v-mode :defer t :preface (defun my/lsp/v () - (interactive) - (lsp) - (flycheck-mode 1) - (company-mode 1)) + (interactive) + (lsp) + (flycheck-mode 1) + (company-mode 1)) :init (delete '("\\.[ds]?va?h?\\'" . verilog-mode) auto-mode-alist) ;; :straight (v-mode @@ -1930,41 +1931,41 @@ Auto format ;; :repo "damon-kwok/v-mode" ;; :files ("tokens" "v-mode.el")) (setq auto-mode-alist - (cons '("\\(\\.v\\|\\.vv\\|\\.vsh\\)$" . v-mode) auto-mode-alist)) + (cons '("\\(\\.v\\|\\.vv\\|\\.vsh\\)$" . v-mode) auto-mode-alist)) :hook (v-mode . my/lsp/v) :config (flycheck-define-checker v-checker - "A v syntax checker using the v fmt." - :command ("v" "fmt" "-verify" (eval (buffer-file-name))) - :error-patterns - ((error line-start (file-name) ":" line ":" column ": error: " (message) line-end)) - :modes v-mode) + "A v syntax checker using the v fmt." + :command ("v" "fmt" "-verify" (eval (buffer-file-name))) + :error-patterns + ((error line-start (file-name) ":" line ":" column ": error: " (message) line-end)) + :modes v-mode) (add-to-list 'flycheck-checkers 'v-checker) :bind-keymap ("M-z" . v-menu) ("" . v-menu) ("C-c C-f" . v-format-buffer) :mode ("\\.v\\.vsh\\'" . 'v-mode)) - + #+end_src *** Haskell #+begin_src emacs-lisp (use-package haskell-mode - :defer t - :config (require 'lsp-haskell)) + :defer t + :config (require 'lsp-haskell)) #+end_src #+begin_src emacs-lisp (use-package lsp-haskell - :preface - ;; lambda symbol - (defun my/font/pretty-lambdas-haskell () - (font-lock-add-keywords - nil `((,(concat "\\(" (regexp-quote "\\") "\\)") - (0 (progn (compose-region (match-beginning 1) (match-end 1) - ,(make-char 'greek-iso8859-7 107)) - nil)))))) + :preface + ;; lambda symbol + (defun my/font/pretty-lambdas-haskell () + (font-lock-add-keywords + nil `((,(concat "\\(" (regexp-quote "\\") "\\)") + (0 (progn (compose-region (match-beginning 1) (match-end 1) + ,(make-char 'greek-iso8859-7 107)) + nil)))))) :hook (haskell-mode . lsp) ;(haskell-literate-mode-hook lsp) (prog-mode . electric-pair-local-mode) @@ -1979,13 +1980,13 @@ Auto format *** COMMENT yaml #+begin_src emacs-lisp - (use-package yaml-mode + (use-package yaml-mode :hook (yaml-mode . lsp)) #+end_src *** Web #+begin_src emacs-lisp - (use-package typescript-mode + (use-package typescript-mode :defer t :hook (typescript-mode . electric-pair-mode) @@ -1994,20 +1995,20 @@ Auto format :hook (typescript-mode . lsp) :config (add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-mode))) - (use-package tide + (use-package tide :defer t :preface (defun setup-tide-mode () - (interactive) - (tide-setup) - (flycheck-mode +1) - (setq flycheck-check-syntax-automatically '(save mode-enabled)) - (eldoc-mode +1) - (tide-hl-identifier-mode +1) - ;; company is an optional dependency. You have to - ;; install it separately via package-install - ;; `M-x package-install [ret] company` - (company-mode +1)) + (interactive) + (tide-setup) + (flycheck-mode +1) + (setq flycheck-check-syntax-automatically '(save mode-enabled)) + (eldoc-mode +1) + (tide-hl-identifier-mode +1) + ;; company is an optional dependency. You have to + ;; install it separately via package-install + ;; `M-x package-install [ret] company` + (company-mode +1)) :config ;; aligns annotation to the right hand side @@ -2020,187 +2021,187 @@ Auto format svelte #+begin_src emacs-lisp - (use-package svelte-mode + (use-package svelte-mode :hook (svelte-mode . lsp) (svelte-mode . (lambda () - (add-hook 'before-save-hook 'lsp-format-buffer nil t)))) + (add-hook 'before-save-hook 'lsp-format-buffer nil t)))) #+end_src prettier #+begin_src emacs-lisp - (use-package prettier + (use-package prettier :defer t ) #+end_src lsp hooks setups #+begin_src emacs-lisp - (add-hook 'html-mode-hook 'lsp) - (add-hook 'js-mode-hook 'lsp) - (add-hook 'js-jsx-mode-hook 'lsp) + (add-hook 'html-mode-hook 'lsp) + (add-hook 'js-mode-hook 'lsp) + (add-hook 'js-jsx-mode-hook 'lsp) #+end_src *** COMMENT Lua #+begin_src emacs-lisp - (use-package lua-mode + (use-package lua-mode :hook (lua-mode . lsp)) #+end_src *** Markdown Better Diff in header sizes #+begin_src emacs-lisp - (eval-after-load 'markdown-mode + (eval-after-load 'markdown-mode '(custom-set-faces - '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7)))) - '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.4)))) - '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.3)))) - '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.2)))) - '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.1)))) - '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.0)))) - )) - ;; (add-hook 'markdown-mode-hook 'my/org-mode/org-mode-visual-fill) - ;; (add-hook 'markdown-mode-hook 'outline-minor-mode) + '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7)))) + '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.4)))) + '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.3)))) + '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.2)))) + '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.1)))) + '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.0)))) + )) + ;; (add-hook 'markdown-mode-hook 'my/org-mode/org-mode-visual-fill) + ;; (add-hook 'markdown-mode-hook 'outline-minor-mode) #+end_src *** COMMENT Vue #+begin_src emacs-lisp -(use-package vue-mode + (use-package vue-mode :hook (vue-mode . lsp) :hook (vue-mode . prettier-js-mode)) #+end_src *** COMMENT Scheme (guile) #+begin_src emacs-lisp - (use-package geiser + (use-package geiser :defer ;; :bind ([remap eval-last-sexp] . geiser-eval-last-sexp)) ) - (use-package geiser-guile) + (use-package geiser-guile) #+end_src *** Scala Scala mode for highlighting, indents and motion commands #+begin_src emacs-lisp -(use-package scala-mode + (use-package scala-mode :hook (scala-mode . flycheck-mode) (scala-mode . lsp) (scala-mode . electric-pair-local-mode) (scala-mode . (lambda () - (add-hook 'before-save-hook 'lsp-format-buffer nil t))) + (add-hook 'before-save-hook 'lsp-format-buffer nil t))) :interpreter ("scala" . scala-mode)) #+end_src Sbt for sbt commands... #+begin_src emacs-lisp -(use-package sbt-mode + (use-package sbt-mode :commands sbt-start sbt-command :config ;; WORKAROUND: https://github.com/ensime/emacs-sbt-mode/issues/31 ;; allows using SPACE when in the minibuffer (substitute-key-definition - 'minibuffer-complete-word - 'self-insert-command - minibuffer-local-completion-map) + 'minibuffer-complete-word + 'self-insert-command + minibuffer-local-completion-map) ;; sbt-supershell kills sbt-mode: https://github.com/hvesalai/emacs-sbt-mode/issues/152 (setq sbt:program-options '("-Dsbt.supershell=false"))) #+end_src #+begin_src emacs-lisp - ; for scala - (use-package lsp-metals) + ; for scala + (use-package lsp-metals) #+end_src *** C and cpp #+begin_src emacs-lisp - ;; (use-package ccls - ;; :hook ((c-mode c++-mode) . (lambda () (require 'ccls) (lsp))) - ;; ((c-mode c++-mode) . (lambda () (add-hook 'before-save-hook 'lsp-format-buffer nil t))) - ;; ((c-mode c++-mode) . electric-pair-local-mode) - ;; ((c-mode c++-mode) . yas-minor-mode)) + ;; (use-package ccls + ;; :hook ((c-mode c++-mode) . (lambda () (require 'ccls) (lsp))) + ;; ((c-mode c++-mode) . (lambda () (add-hook 'before-save-hook 'lsp-format-buffer nil t))) + ;; ((c-mode c++-mode) . electric-pair-local-mode) + ;; ((c-mode c++-mode) . yas-minor-mode)) - (use-package cc-mode + (use-package cc-mode :defer t :hook ((c++-mode cc-mode c-mode) . lsp) ((c++-mode cc-mode c-mode) . lsp) ((c++-mode cc-mode c-mode) . electric-pair-local-mode) ((c++-mode cc-mode c-mode) . yas-minor-mode) ((c++-mode cc-mode c-mode) . (lambda () - (add-hook 'before-save-hook 'lsp-format-buffer nil t)))) + (add-hook 'before-save-hook 'lsp-format-buffer nil t)))) #+end_src CMake #+begin_src emacs-lisp - (use-package cmake-mode) + (use-package cmake-mode) #+end_src *** COMMENT Ruby #+begin_src emacs-lisp - (use-package ruby-mode + (use-package ruby-mode :hook (ruby-mode . lsp) (ruby-mode . electric-pair-mode) (ruby-mode . (lambda () - (add-hook 'before-save-hook 'lsp-format-buffer nil t)))) + (add-hook 'before-save-hook 'lsp-format-buffer nil t)))) #+end_src *** COMMENT python #+begin_src emacs-lisp - (use-package elpy - :ensure t - :defer t - :bind ([remap lsp-find-definition] . elpy-goto-definition) - :config - (setq elpy-modules (remove 'elpy-module-highlight-indentation elpy-modules)) - :init - ;(advice-add 'python-mode :before 'elpy-enable) - (elpy-enable)) - (setq python-interpreter "~/.python/venv/bin/python") - (setq python-shell-interpreter "~/.python/venv/bin/python") + (use-package elpy + :ensure t + :defer t + :bind ([remap lsp-find-definition] . elpy-goto-definition) + :config + (setq elpy-modules (remove 'elpy-module-highlight-indentation elpy-modules)) + :init + ;(advice-add 'python-mode :before 'elpy-enable) + (elpy-enable)) + (setq python-interpreter "~/.python/venv/bin/python") + (setq python-shell-interpreter "~/.python/venv/bin/python") #+end_src *** COMMENT LaTeX (old, to be deleted) AucTex (Archived, =:tangle= set to =no=) #+begin_src emacs-lisp :tangle no - ;; latexmk - (use-package magic-latex-buffer + ;; latexmk + (use-package magic-latex-buffer :custom (magic-latex-buffer 1) :defer t) - (use-package auctex-latexmk + (use-package auctex-latexmk :defer t) - ;; company - (use-package company-math + ;; company + (use-package company-math :after company) - (use-package company-auctex + (use-package company-auctex :after company) - (use-package company-reftex + (use-package company-reftex :after company) - ;; use cdlatex - (use-package cdlatex + ;; use cdlatex + (use-package cdlatex :defer t) - ;; https://gist.github.com/saevarb/367d3266b3f302ecc896 - ;; https://piotr.is/2010/emacs-as-the-ultimate-latex-editor/ + ;; https://gist.github.com/saevarb/367d3266b3f302ecc896 + ;; https://piotr.is/2010/emacs-as-the-ultimate-latex-editor/ - (use-package latex + (use-package latex :straight auctex :defer t :custom (cdlatex-simplify-sub-super-scripts nil) (reftex-default-bibliography - '("~/Documents/refs.bib")) + '("~/Documents/refs.bib")) (bibtex-dialect 'biblatex) :mode ("\\.tex\\'" . latex-mode) ;; also see evil-define-key in :config :bind (:map LaTeX-mode-map - ("TAB" . cdlatex-tab) - ("'" . cdlatex-math-modify) - ("C-c C-e" . cdlatex-environment)) + ("TAB" . cdlatex-tab) + ("'" . cdlatex-math-modify) + ("C-c C-e" . cdlatex-environment)) :hook (LaTeX-mode . flyspell-mode) @@ -2227,8 +2228,8 @@ AucTex (Archived, =:tangle= set to =no=) ;; I only defined \(\) lol (setq TeX-electric-math (quote ("\\(" . "\\)"))) (evil-define-key 'visual 'LaTeX-mode-map - "$" 'TeX-insert-dollar - "'" 'cdlatex-math-modify) + "$" 'TeX-insert-dollar + "'" 'cdlatex-math-modify) ;; (setq TeX-auto-save t) (setq TeX-parse-self t) @@ -2245,21 +2246,21 @@ AucTex (Archived, =:tangle= set to =no=) ;; ;; pdftools ;; ;; https://emacs.stackexchange.com/questions/21755/use-pdfview-as-default-auctex-pdf-viewer#21764 (setq TeX-view-program-selection '((output-pdf "Zathura")) - ;; TeX-view-program-list '(("PDF Tools" TeX-pdf-tools-sync-view)) - TeX-source-correlate-start-server t) ;; not sure if last line is neccessary + ;; TeX-view-program-list '(("PDF Tools" TeX-pdf-tools-sync-view)) + TeX-source-correlate-start-server t) ;; not sure if last line is neccessary ;; (add-to-list 'TeX-view-program-selection '(output-pdf "Zathura")) ;; clean intermdiate tex crap (add-to-list 'LaTeX-clean-intermediate-suffixes '"-figure[0-9]*\\.\\(pdf\\|md5\\|log\\|dpth\\|dep\\|run\\.xml\\)") (add-to-list 'LaTeX-clean-intermediate-suffixes '".auxlock") -; (eval-after-load 'latex -; `(dolist (face '((font-latex-sectioning-0-face . 3.0) ; \part -; (font-latex-sectioning-1-face . 2.5) ; \chapter -; (font-latex-sectioning-2-face . 2.0) ; \section -; (font-latex-sectioning-3-face . 1.5) ; \subsection -; (font-latex-sectioning-4-face . 1.5))) ; \subsubsection -; (set-face-attribute (car face) nil :font my/ui/varfont :weight 'bold :height (cdr face)))) + ; (eval-after-load 'latex + ; `(dolist (face '((font-latex-sectioning-0-face . 3.0) ; \part + ; (font-latex-sectioning-1-face . 2.5) ; \chapter + ; (font-latex-sectioning-2-face . 2.0) ; \section + ; (font-latex-sectioning-3-face . 1.5) ; \subsection + ; (font-latex-sectioning-4-face . 1.5))) ; \subsubsection + ; (set-face-attribute (car face) nil :font my/ui/varfont :weight 'bold :height (cdr face)))) ;; to have the buffer refresh after compilation, ;; very important so that PDFView refesh itself after comilation @@ -2277,112 +2278,112 @@ AucTex (Archived, =:tangle= set to =no=) Custom functions (Archived, =:tangle= set to =no=) #+begin_src emacs-lisp :tangle no -(defun try/latex-mode-setup () + (defun try/latex-mode-setup () (require 'company-reftex) (turn-on-reftex) (require 'company-auctex) (require 'company-math) -(setq-local company-backends - - (append '((company-reftex-labels company-reftex-citations) - (company-math-symbols-unicode company-math-symbols-latex company-latex-commands) - (company-auctex-macros company-auctex-symbols company-auctex-environments) - company-ispell) - company-backends))) + (setq-local company-backends + + (append '((company-reftex-labels company-reftex-citations) + (company-math-symbols-unicode company-math-symbols-latex company-latex-commands) + (company-auctex-macros company-auctex-symbols company-auctex-environments) + company-ispell) + company-backends))) #+end_src Insert from clip [[https://hershsingh.net/blog/emacs-latex-screenshot/#:~:text=Clipboard%20to%20TeX,-Finally%2C%20I%20have&text=Once%20I%20have%20captured%20the,file%20img%2F.][Quickly insert hand-drawn figures in a LaTeX document in Emacs]] #+begin_src emacs-lisp :tangle no - (defvar latex/insert-image-format "\\begin{center}\\includegraphics[width=\\linewidth]{%s}\\end{center}") - (defvar latex/insert-figure-format + (defvar latex/insert-image-format "\\begin{center}\\includegraphics[width=\\linewidth]{%s}\\end{center}") + (defvar latex/insert-figure-format " \\begin{figure}[h] - \\centering - \\includegraphics[width=\\linewidth]{%s} - \\caption{\\label{fig:TODO} TODO} - \\end{figure} - \\FloatBarrier") + \\centering + \\includegraphics[width=\\linewidth]{%s} + \\caption{\\label{fig:TODO} TODO} + \\end{figure} + \\FloatBarrier") - (defun latex/insert-image-from-clipboard () + (defun latex/insert-image-from-clipboard () (interactive) (let* - ;; Ask for a filename - ((image-name (read-string "image-name: ")) - ;; This is getting uply... - (image-file-location (concat "\"" (expand-file-name (concat (TeX-master-directory) "img/" image-name ".png" )) "\""))) + ;; Ask for a filename + ((image-name (read-string "image-name: ")) + ;; This is getting uply... + (image-file-location (concat "\"" (expand-file-name (concat (TeX-master-directory) "img/" image-name ".png" )) "\""))) - ;; Make the "img" directory if it does not exist - (make-directory (concat (TeX-master-directory) "img") t) + ;; Make the "img" directory if it does not exist + (make-directory (concat (TeX-master-directory) "img") t) - ;; Copy the image in clipboard to "img/" directory - (shell-command (concat "xclip -selection clipboard -t image/png -o > " image-file-location)) + ;; Copy the image in clipboard to "img/" directory + (shell-command (concat "xclip -selection clipboard -t image/png -o > " image-file-location)) - ;; Insert the latex snippet to include the figure - (insert (format latex/insert-image-format (concat "img/" (file-name-nondirectory image-file-location) ))))) + ;; Insert the latex snippet to include the figure + (insert (format latex/insert-image-format (concat "img/" (file-name-nondirectory image-file-location) ))))) - (defun latex/insert-figure-from-clipboard () + (defun latex/insert-figure-from-clipboard () (interactive) (let* - ;; Ask for a filename - ((image-name (read-string "image-name: ")) - ;; This is getting uply... - (image-file-location (concat "\"" (expand-file-name (concat (TeX-master-directory) "img/" image-name ".png" )) "\""))) + ;; Ask for a filename + ((image-name (read-string "image-name: ")) + ;; This is getting uply... + (image-file-location (concat "\"" (expand-file-name (concat (TeX-master-directory) "img/" image-name ".png" )) "\""))) - ;; Make the "img" directory if it does not exist - (make-directory (concat (TeX-master-directory) "img") t) + ;; Make the "img" directory if it does not exist + (make-directory (concat (TeX-master-directory) "img") t) - ;; Copy the image in clipboard to "img/" directory - (message (concat "xclip -selection clipboard -t image/png -o > " image-file-location)) - (shell-command (concat "xclip -selection clipboard -t image/png -o > " image-file-location)) + ;; Copy the image in clipboard to "img/" directory + (message (concat "xclip -selection clipboard -t image/png -o > " image-file-location)) + (shell-command (concat "xclip -selection clipboard -t image/png -o > " image-file-location)) - ;; Insert the latex snippet to include the figure - (insert (format latex/insert-figure-format (concat "img/" (file-name-nondirectory (concat image-name ".png"))))))) + ;; Insert the latex snippet to include the figure + (insert (format latex/insert-figure-format (concat "img/" (file-name-nondirectory (concat image-name ".png"))))))) #+end_src Folding #+begin_src emacs-lisp :tangle no - (use-package outshine ; + (use-package outshine ; :defer t :config (setq LaTeX-section-list '( - ("part" 0) - ("chapter" 1) - ("section" 2) - ("subsection" 3) - ("subsubsection" 4) - ("paragraph" 5) - ("subparagraph" 6) - ("begin" 7))) - - + ("part" 0) + ("chapter" 1) + ("section" 2) + ("subsection" 3) + ("subsubsection" 4) + ("paragraph" 5) + ("subparagraph" 6) + ("begin" 7))) + + (add-hook 'LaTeX-mode-hook #'(lambda () - (outshine-mode 1) - (setq outline-level #'LaTeX-outline-level) - (setq outline-regexp (LaTeX-outline-regexp t)) - (setq outline-heading-alist - (mapcar (lambda (x) - (cons (concat "\\" (nth 0 x)) (nth 1 x))) - LaTeX-section-list))))) + (outshine-mode 1) + (setq outline-level #'LaTeX-outline-level) + (setq outline-regexp (LaTeX-outline-regexp t)) + (setq outline-heading-alist + (mapcar (lambda (x) + (cons (concat "\\" (nth 0 x)) (nth 1 x))) + LaTeX-section-list))))) - - (general-define-key - :states '(normal visual) - :keymaps 'LaTeX-mode-map - "TAB" '(outshine-cycle :which-key "outshine-cycle")) - + + (general-define-key + :states '(normal visual) + :keymaps 'LaTeX-mode-map + "TAB" '(outshine-cycle :which-key "outshine-cycle")) + #+end_src ivy bibtex #+begin_src emacs-lisp :tangle no - (use-package ivy-bibtex + (use-package ivy-bibtex :defer t :custom (bibtex-completion-bibliography - '("~/Documents/refs.bib")) + '("~/Documents/refs.bib")) (bibtex-completion-library-path '("~/papers")) (bibtex-completion-cite-prompt-for-optional-arguments nil) (bibtex-completion-cite-default-as-initial-input t) @@ -2403,40 +2404,40 @@ AucTex :mode ("\\.tex\\'" . LaTeX-mode) :defer t :hook - (LaTeX-mode . flyspell-mode) - (LaTeX-mode . flycheck-mode) - (LaTeX-mode . company-mode) - (LaTeX-mode . turn-on-reftex) - (LaTeX-mode . electric-indent-mode) - (LaTeX-mode . auto-fill-mode) - ;(LaTeX-mode . format-all-mode) - (LaTeX-mode . TeX-source-correlate-mode) - (LaTeX-mode . turn-on-cdlatex) + (LaTeX-mode . flyspell-mode) + (LaTeX-mode . flycheck-mode) + (LaTeX-mode . company-mode) + (LaTeX-mode . turn-on-reftex) + (LaTeX-mode . electric-indent-mode) + (LaTeX-mode . auto-fill-mode) + ;(LaTeX-mode . format-all-mode) + (LaTeX-mode . TeX-source-correlate-mode) + (LaTeX-mode . turn-on-cdlatex) :custom - (reftex-default-bibliography '("~/Documents/refs.bib")) - (bibtex-dialect 'biblatex) - (TeX-save-query 'nil) - (reftex-plug-into-AUCTeX 't) + (reftex-default-bibliography '("~/Documents/refs.bib")) + (bibtex-dialect 'biblatex) + (TeX-save-query 'nil) + (reftex-plug-into-AUCTeX 't) :config - (require 'auctex-latexmk) - (auctex-latexmk-setup) ; look here for stuff - (setq auctex-latexmk-inherit-TeX-PDF-mode t) + (require 'auctex-latexmk) + (auctex-latexmk-setup) ; look here for stuff + (setq auctex-latexmk-inherit-TeX-PDF-mode t) - (evil-define-key 'visual 'LaTeX-mode-map - "$" 'TeX-insert-dollar - "'" 'cdlatex-math-modify) - (setq TeX-view-program-selection '((output-pdf "Zathura")) - TeX-source-correlate-start-server t) - (setq-default TeX-output-dir "/tmp/tex") - (add-to-list 'LaTeX-clean-intermediate-suffixes - '"-figure[0-9]*\\.\\(pdf\\|md5\\|log\\|dpth\\|dep\\|run\\.xml\\)") - (add-to-list 'LaTeX-clean-intermediate-suffixes '".auxlock") + (evil-define-key 'visual 'LaTeX-mode-map + "$" 'TeX-insert-dollar + "'" 'cdlatex-math-modify) + (setq TeX-view-program-selection '((output-pdf "Zathura")) + TeX-source-correlate-start-server t) + (setq-default TeX-output-dir "/tmp/tex") + (add-to-list 'LaTeX-clean-intermediate-suffixes + '"-figure[0-9]*\\.\\(pdf\\|md5\\|log\\|dpth\\|dep\\|run\\.xml\\)") + (add-to-list 'LaTeX-clean-intermediate-suffixes '".auxlock") :custom-face - (font-latex-sectioning-0-face ((t (:family my/ui/varfont :weight bold :height 3.0)))) - (font-latex-sectioning-1-face ((t (:family my/ui/varfont :weight bold :height 2.5)))) - (font-latex-sectioning-2-face ((t (:family my/ui/varfont :weight bold :height 2.0)))) - (font-latex-sectioning-3-face ((t (:family my/ui/varfont :weight bold :height 1.5)))) - (font-latex-sectioning-4-face ((t (:family my/ui/varfont :weight bold :height 1.5))))) + (font-latex-sectioning-0-face ((t (:family my/ui/varfont :weight bold :height 3.0)))) + (font-latex-sectioning-1-face ((t (:family my/ui/varfont :weight bold :height 2.5)))) + (font-latex-sectioning-2-face ((t (:family my/ui/varfont :weight bold :height 2.0)))) + (font-latex-sectioning-3-face ((t (:family my/ui/varfont :weight bold :height 1.5)))) + (font-latex-sectioning-4-face ((t (:family my/ui/varfont :weight bold :height 1.5))))) #+end_src Lsp LaTeX @@ -2453,114 +2454,114 @@ Lsp LaTeX *** COMMENT Ledger Unused, switched to =hledger= #+begin_src emacs-lisp - (use-package ledger-mode + (use-package ledger-mode ;; :mode ("\\.dat\\'" "\\.ledger\\'") :mode ("\\.ledger\\'") :bind (:map ledger-mode-map - ("C-x C-s" . my/ledger-save)) + ("C-x C-s" . my/ledger-save)) :custom (ledger-clear-whole-transactions t) :hook ((ledger-mode . flycheck-mode) - (ledger-mode . flyspell-mode)) + (ledger-mode . flyspell-mode)) :config - ;(add-hook 'ledger-mode-hook (lambda () (add-hook 'before-save-hook 'ledger-mode-clean-buffer))) + ;(add-hook 'ledger-mode-hook (lambda () (add-hook 'before-save-hook 'ledger-mode-clean-buffer))) ) - (use-package flycheck-ledger :after ledger-mode) + (use-package flycheck-ledger :after ledger-mode) #+end_src *** hledger #+begin_src emacs-lisp (use-package hledger-mode - :mode ("\\.journal\\'" "\\.hledger\\'") - ;:commands hledger-enable-reporting - :preface - (defun hledger/next-entry () + :mode ("\\.journal\\'" "\\.hledger\\'") + ;:commands hledger-enable-reporting + :preface + (defun hledger/next-entry () "Move to next entry and pulse." (interactive) (hledger-next-or-new-entry) (hledger-pulse-momentary-current-entry)) - (defface hledger-warning-face + (defface hledger-warning-face '((((background dark)) - :background "Red" :foreground "White") - (((background light)) - :background "Red" :foreground "White") - (t :inverse-video t)) + :background "Red" :foreground "White") + (((background light)) + :background "Red" :foreground "White") + (t :inverse-video t)) "Face for warning" :group 'hledger) - (defun hledger/prev-entry () + (defun hledger/prev-entry () "Move to last entry and pulse." (interactive) (hledger-backward-entry) (hledger-pulse-momentary-current-entry)) - :bind (("C-c j" . hledger-run-command) - :map hledger-mode-map - ("C-c e" . hledger-jentry) - ("M-p" . hledger/prev-entry) - ("M-n" . hledger/next-entry)) - :init - (setq hledger-jfile (expand-file-name "~/Documents/ledger/data_2024.hledger") - hledger-currency-string "SAR" - ;hledger-email-secrets-file (expand-file-name "secrets.el" emacs-assets-directory) - ) - ;; Expanded account balances in the overall monthly report are - ;; mostly noise for me and do not convey any meaningful information. - (setq hledger-show-expanded-report nil) + :bind (("C-c j" . hledger-run-command) + :map hledger-mode-map + ("C-c e" . hledger-jentry) + ("M-p" . hledger/prev-entry) + ("M-n" . hledger/next-entry)) + :init + (setq hledger-jfile (expand-file-name "~/Documents/ledger/data_2024.hledger") + hledger-currency-string "SAR" + ;hledger-email-secrets-file (expand-file-name "secrets.el" emacs-assets-directory) + ) + ;; Expanded account balances in the overall monthly report are + ;; mostly noise for me and do not convey any meaningful information. + (setq hledger-show-expanded-report nil) - (when (boundp 'my-hledger-service-fetch-url) + (when (boundp 'my-hledger-service-fetch-url) (setq hledger-service-fetch-url - my-hledger-service-fetch-url)) + my-hledger-service-fetch-url)) - :config - (require 'hledger-input) - (add-hook 'hledger-view-mode-hook #'hl-line-mode) - ;(add-hook 'hledger-view-mode-hook #'center-text-for-reading) + :config + (require 'hledger-input) + (add-hook 'hledger-view-mode-hook #'hl-line-mode) + ;(add-hook 'hledger-view-mode-hook #'center-text-for-reading) - (add-hook 'hledger-view-mode-hook - (lambda () - (run-with-timer 1 - nil - (lambda () - (when (equal hledger-last-run-command - "balancesheet") - ;; highlight frequently changing accounts - (highlight-regexp "^.*\\(savings\\|cash\\).*$") - (highlight-regexp "^.*credit-card.*$" - 'hledger-warning-face)))))) + (add-hook 'hledger-view-mode-hook + (lambda () + (run-with-timer 1 + nil + (lambda () + (when (equal hledger-last-run-command + "balancesheet") + ;; highlight frequently changing accounts + (highlight-regexp "^.*\\(savings\\|cash\\).*$") + (highlight-regexp "^.*credit-card.*$" + 'hledger-warning-face)))))) - (add-hook 'hledger-mode-hook - (lambda () - (make-local-variable 'company-backends) - (add-to-list 'company-backends 'hledger-company)))) + (add-hook 'hledger-mode-hook + (lambda () + (make-local-variable 'company-backends) + (add-to-list 'company-backends 'hledger-company)))) #+end_src #+begin_src emacs-lisp -(use-package flycheck-hledger - :after (flycheck hledger-mode) - :demand t) + (use-package flycheck-hledger + :after (flycheck hledger-mode) + :demand t) #+end_src *** COMMENT Verilog #+begin_src emacs-lisp - (setq verilog-linter "verilator --lint-only") - (setq verilog-auto-newline nil - verilog-auto-arg-sort t - verilog-case-fold nil) - ; (setq verilog-indent-level 1) - (add-hook 'verilog-mode-hook 'electric-pair-mode) - (add-hook 'verilog-mode-hook 'lsp) - (add-hook 'verilog-mode-hook 'flycheck-mode) - (add-hook 'verilog-mode-hook (lambda () - (add-hook 'before-save-hook 'verilog-indent-buffer nil t))) + (setq verilog-linter "verilator --lint-only") + (setq verilog-auto-newline nil + verilog-auto-arg-sort t + verilog-case-fold nil) + ; (setq verilog-indent-level 1) + (add-hook 'verilog-mode-hook 'electric-pair-mode) + (add-hook 'verilog-mode-hook 'lsp) + (add-hook 'verilog-mode-hook 'flycheck-mode) + (add-hook 'verilog-mode-hook (lambda () + (add-hook 'before-save-hook 'verilog-indent-buffer nil t))) - (with-eval-after-load 'lsp-mode + (with-eval-after-load 'lsp-mode (add-to-list 'lsp-language-id-configuration '(verilog-mode . "verilog")) (lsp-register-client - (make-lsp-client :new-connection (lsp-stdio-connection "verible-verilog-ls") - :major-modes '(verilog-mode) - :server-id 'verible-ls))) + (make-lsp-client :new-connection (lsp-stdio-connection "verible-verilog-ls") + :major-modes '(verilog-mode) + :server-id 'verible-ls))) #+end_src *** SystemVerilog @@ -2579,8 +2580,8 @@ Unused, switched to =hledger= hierarchy eglot lsp - ;lsp-bridge - ;lspce + ;lsp-bridge + ;lspce flycheck beautify navigation @@ -2599,16 +2600,16 @@ Unused, switched to =hledger= #+end_src *** VHDL #+begin_src emacs-lisp - (setq lsp-vhdl-server 'vhdl-ls) - (add-hook 'vhdl-mode-hook 'vhdl-electric-mode) - (add-hook 'vhdl-mode-hook 'flycheck-mode) - (add-hook 'vhdl-mode-hook (lambda () - (add-hook 'before-save-hook 'vhdl-beautify-buffer nil t))) + (setq lsp-vhdl-server 'vhdl-ls) + (add-hook 'vhdl-mode-hook 'vhdl-electric-mode) + (add-hook 'vhdl-mode-hook 'flycheck-mode) + (add-hook 'vhdl-mode-hook (lambda () + (add-hook 'before-save-hook 'vhdl-beautify-buffer nil t))) #+end_src *** Bash #+begin_src emacs-lisp - (use-package flymake-shellcheck + (use-package flymake-shellcheck :commands flymake-shellcheck-load :init (add-hook 'sh-mode-hook 'flymake-shellcheck-load)) @@ -2617,10 +2618,10 @@ Unused, switched to =hledger= *** Nix(OS) #+begin_src emacs-lisp - (use-package nix-mode + (use-package nix-mode :hook (nix-mode . (lambda () - ;(add-hook 'before-save-hook 'nix-mode-format nil t)))); doesn't require nixfmt - (add-hook 'before-save-hook 'nix-format-buffer nil t)))) + ;(add-hook 'before-save-hook 'nix-mode-format nil t)))); doesn't require nixfmt + (add-hook 'before-save-hook 'nix-format-buffer nil t)))) #+end_src @@ -2628,107 +2629,107 @@ Unused, switched to =hledger= #+begin_src emacs-lisp (use-package zig-mode :hook - (zig-mode . lsp-mode) - (zig-mode . (lambda () (remove-hook 'before-save-hook 'zig-format-buffer t)))) + (zig-mode . lsp-mode) + (zig-mode . (lambda () (remove-hook 'before-save-hook 'zig-format-buffer t)))) #+end_src ** Tramp #+begin_src emacs-lisp - ; moved to Git - ; https://emacs.stackexchange.com/questions/16489/tramp-is-unbearably-slow-osx-ssh - ; (setq vc-handled-backends '(Git)) - (setq tramp-backup-directory-alist backup-directory-alist) - (setq vc-ignore-dir-regexp - (format "\\(%s\\)\\|\\(%s\\)" - vc-ignore-dir-regexp - tramp-file-name-regexp)) - (setq vc-handled-backends '(Git)) - ;https://libredd.it/r/emacs/comments/320cvb/projectile_slows_tramp_mode_to_a_crawl_is_there_a/ -(add-hook 'find-file-hook - (lambda () - (when (file-remote-p default-directory) - (setq-local projectile-mode-line "Projectile" - vc-handled-backends '())))) - + ; moved to Git + ; https://emacs.stackexchange.com/questions/16489/tramp-is-unbearably-slow-osx-ssh + ; (setq vc-handled-backends '(Git)) + (setq tramp-backup-directory-alist backup-directory-alist) + (setq vc-ignore-dir-regexp + (format "\\(%s\\)\\|\\(%s\\)" + vc-ignore-dir-regexp + tramp-file-name-regexp)) + (setq vc-handled-backends '(Git)) + ;https://libredd.it/r/emacs/comments/320cvb/projectile_slows_tramp_mode_to_a_crawl_is_there_a/ + (add-hook 'find-file-hook + (lambda () + (when (file-remote-p default-directory) + (setq-local projectile-mode-line "Projectile" + vc-handled-backends '())))) + #+end_src * Misc ** Restart Emacs #+begin_src emacs-lisp - (use-package restart-emacs) + (use-package restart-emacs) #+end_src ** Vterm #+begin_src emacs-lisp - (use-package vterm + (use-package vterm :commands vterm :bind (:map vterm-mode-map - ("C-t" . vterm-toggle)) + ("C-t" . vterm-toggle)) :config ;;Toggle vterm (evil-define-key '(normal visual insert) 'vterm-mode-map (kbd "C-t") 'vterm-toggle) :custom - ; claimed to be faster: https://teddit.net/r/emacs/comments/tpey9g/making_vterm_snappy_by_setting_vtermtimerdelay_to/ + ; claimed to be faster: https://teddit.net/r/emacs/comments/tpey9g/making_vterm_snappy_by_setting_vtermtimerdelay_to/ (vterm-timer-delay nil) :ensure t) #+end_src #+begin_src emacs-lisp -(use-package vterm-toggle) + (use-package vterm-toggle) #+end_src ** Server #+begin_src emacs-lisp - (unless (server-running-p) (server-start)) - (add-hook 'server-after-make-frame-hook '(lambda () (set-cursor-color "#FFFFFF"))) + (unless (server-running-p) (server-start)) + (add-hook 'server-after-make-frame-hook '(lambda () (set-cursor-color "#FFFFFF"))) #+end_src ** COMMENT ranger #+begin_src emacs-lisp - (use-package ranger + (use-package ranger :defer t :config (ranger-override-dired-mode t)) #+end_src ** Ligatures #+begin_src emacs-lisp - - (let ((ligatures `((?- . ,(regexp-opt '("-|" "-~" "---" "-<<" "-<" "--" "->" "->>" "-->"))) - (?/ . ,(regexp-opt '("/**" "/*" "///" "/=" "/==" "/>" "//"))) - ;; (?* . ,(regexp-opt '("*>" "***" "*/"))) - (?* . ,(regexp-opt '("*>" "*/"))) - (?< . ,(regexp-opt '("<-" "<<-" "<=>" "<=" "<|" "<||" "<|||::=" "<|>" "<:" "<>" "<-<" - "<<<" "<==" "<<=" "<=<" "<==>" "<-|" "<<" "<~>" "<=|" "<~~" "<~" - "<$>" "<$" "<+>" "<+" "" "" "<->" ""))) + (?/ . ,(regexp-opt '("/**" "/*" "///" "/=" "/==" "/>" "//"))) + ;; (?* . ,(regexp-opt '("*>" "***" "*/"))) + (?* . ,(regexp-opt '("*>" "*/"))) + (?< . ,(regexp-opt '("<-" "<<-" "<=>" "<=" "<|" "<||" "<|||::=" "<|>" "<:" "<>" "<-<" + "<<<" "<==" "<<=" "<=<" "<==>" "<-|" "<<" "<~>" "<=|" "<~~" "<~" + "<$>" "<$" "<+>" "<+" "" "" "<->" "