mirror of
https://github.com/Horhik/dotfiles.git
synced 2024-11-21 16:11:26 +00:00
lots of uncommited changes
This commit is contained in:
parent
208fedb5b1
commit
62ec055161
|
@ -1,4 +1,5 @@
|
||||||
#+title: Emacs config
|
#+title: Emacs config
|
||||||
|
|
||||||
#+author Horhik
|
#+author Horhik
|
||||||
#+BABEL: :cache no
|
#+BABEL: :cache no
|
||||||
#+PROPERTY: header-args:emacs-lisp :tangle init.el
|
#+PROPERTY: header-args:emacs-lisp :tangle init.el
|
||||||
|
@ -13,6 +14,7 @@
|
||||||
* Help info
|
* Help info
|
||||||
~C-z~ to toggle vim/emacs mode
|
~C-z~ to toggle vim/emacs mode
|
||||||
~M-p~ in Counsel to get previos seach
|
~M-p~ in Counsel to get previos seach
|
||||||
|
~C-x RET C-\~ - set input method (Tex for *LaTex*)
|
||||||
|
|
||||||
* Initial
|
* Initial
|
||||||
** Straight.el
|
** Straight.el
|
||||||
|
@ -52,41 +54,42 @@
|
||||||
#+end_src
|
#+end_src
|
||||||
** Basic Theiming
|
** Basic Theiming
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(straight-use-package 'doom-themes
|
(straight-use-package 'doom-themes
|
||||||
:init
|
:init
|
||||||
(require 'doom-themes)
|
(require 'doom-themes)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables 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.
|
||||||
|
'(custom-enabled-themes '(doom-gruvbox))
|
||||||
|
'(custom-safe-themes
|
||||||
|
'("e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "969a67341a68becdccc9101dc87f5071b2767b75c0b199e0ded35bd8359ecd69" default)))
|
||||||
|
(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.
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(setq inhibit-startup-message t)
|
||||||
|
(setq visible-bell t)
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
(toggle-scroll-bar -1)
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
(tooltip-mode -1)
|
||||||
|
(set-fringe-mode 10)
|
||||||
|
(visual-line-mode t)
|
||||||
|
(global-visual-line-mode 1)
|
||||||
|
(global-visual-line-mode)
|
||||||
|
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||||
|
(straight-use-package 'use-package)
|
||||||
|
|
||||||
(custom-set-variables
|
(use-package which-key
|
||||||
;; custom-set-variables was added by Custom.
|
:straight t)
|
||||||
;; 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.
|
|
||||||
'(custom-enabled-themes '(doom-gruvbox))
|
|
||||||
'(custom-safe-themes
|
|
||||||
'("e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "969a67341a68becdccc9101dc87f5071b2767b75c0b199e0ded35bd8359ecd69" default)))
|
|
||||||
(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.
|
|
||||||
)
|
|
||||||
|
|
||||||
(setq inhibit-startup-message t)
|
|
||||||
(setq visible-bell t)
|
|
||||||
(menu-bar-mode -1)
|
|
||||||
(toggle-scroll-bar -1)
|
|
||||||
(tool-bar-mode -1)
|
|
||||||
(tooltip-mode -1)
|
|
||||||
(set-fringe-mode 10)
|
|
||||||
(visual-line-mode t)
|
|
||||||
(global-visual-line-mode 1)
|
|
||||||
(global-visual-line-mode)
|
|
||||||
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
|
||||||
(straight-use-package 'use-package)
|
|
||||||
|
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** UI
|
** UI
|
||||||
|
|
||||||
|
@ -121,23 +124,48 @@
|
||||||
(use-package all-the-icons
|
(use-package all-the-icons
|
||||||
:straight t)
|
:straight t)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Evil mode
|
** Evil mode
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package evil
|
(use-package evil
|
||||||
:straight t
|
:straight t
|
||||||
:init
|
:init
|
||||||
:custom
|
|
||||||
(setq evil-want-keybinding nil)
|
(setq evil-want-keybinding nil)
|
||||||
(setq evil-want-integration t)
|
(setq evil-want-integration t)
|
||||||
(setq evil-want-C-u-scroll t)
|
(setq evil-want-C-u-scroll t)
|
||||||
(setq evil-want-C-i-jump nil)
|
(setq evil-want-C-i-jump nil)
|
||||||
(setq evil-search-module 'evil-search)
|
(setq evil-search-module 'evil-search)
|
||||||
(setq evil-ex-complete-emacs-commands nil)
|
(setq evil-ex-complete-emacs-commands nil)
|
||||||
(setq evil-vsplit-window-right t)
|
(setq evil-vsplit-window-right t)
|
||||||
(setq evil-split-window-below t)
|
(setq evil-split-window-below t)
|
||||||
(evil-set-undo-system 'undo-tree)
|
(setq evil-want-fine-undo 'fine)
|
||||||
:config (evil-mode 1)
|
(setq evil-undo-system 'undo-redo)
|
||||||
|
(setq evil-set-undo-system 'undo-redo)
|
||||||
|
:config
|
||||||
|
(evil-mode 1)
|
||||||
|
(evil-set-undo-system 'undo-redo)
|
||||||
|
(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
|
||||||
|
(define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-chair-and-join)
|
||||||
|
|
||||||
|
(evil-global-set-key 'motion "j" 'evil-next-visual-line)
|
||||||
|
(evil-global-set-key 'motion "k" 'evil-previous-visual-line)
|
||||||
|
|
||||||
|
(evil-set-initial-state 'messages-buffer-mode 'normal)
|
||||||
|
(evil-set-initial-state 'dashboard-mode 'normal)
|
||||||
|
|
||||||
)
|
)
|
||||||
|
(use-package undo-tree
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(setq evil-undo-system 'undo-redo)
|
||||||
|
(setq evil-set-undo-system 'undo-redo)
|
||||||
|
|
||||||
|
(use-package evil-collection
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(evil-collection-init)
|
||||||
|
))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Fonts
|
** Fonts
|
||||||
|
@ -158,11 +186,56 @@
|
||||||
;; Fallback for emojies
|
;; Fallback for emojies
|
||||||
|
|
||||||
#+end_src emacs-lisp
|
#+end_src emacs-lisp
|
||||||
* Org mode setup
|
* Keybindigs
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
(use-package general
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(general-evil-setup t)
|
||||||
|
(general-define-key
|
||||||
|
:keymaps '(normal insert emacs)
|
||||||
|
:prefix "SPC"
|
||||||
|
:global-prefix "C-SPC"
|
||||||
|
:non-normal-prefix "M-SPC"
|
||||||
|
|
||||||
|
"/" 'swiper
|
||||||
|
"b" 'counsel-switch-buffer
|
||||||
|
|
||||||
|
"f r" 'counsel-recentf
|
||||||
|
"f f" 'counsel-find-file
|
||||||
|
"SPC" 'counsel-M-x
|
||||||
|
|
||||||
|
"a" 'org-agenda
|
||||||
|
|
||||||
|
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
(general-create-definer my-leader-def
|
||||||
|
:states 'motion
|
||||||
|
:prefix "SPC")
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
* Org mode setup
|
||||||
|
** Basic
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun my/org-mode-setup()
|
||||||
|
(auto-fill-mode 0)
|
||||||
|
(visual-line-mode 1)
|
||||||
|
(setq evil-auto-indent 1)
|
||||||
|
(variable-pitch-mode t)
|
||||||
|
(prettify-symbols-mode +1)
|
||||||
|
(display-line-numbers-mode 0)
|
||||||
|
)
|
||||||
|
|
||||||
(use-package org
|
(use-package org
|
||||||
:straight t
|
:straight t
|
||||||
|
|
||||||
|
:hook ((org-mode . my/org-mode-setup)
|
||||||
|
(org-mode . variable-pitch-mode)
|
||||||
|
(org-mode . org-indent-mode)
|
||||||
|
(org-mode . prettify-symbols-mode)
|
||||||
|
)
|
||||||
:config
|
:config
|
||||||
;; Make sure org-indent face is available
|
;; Make sure org-indent face is available
|
||||||
;; Increase the size of various headings
|
;; Increase the size of various headings
|
||||||
|
@ -189,11 +262,34 @@
|
||||||
(set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch))
|
(set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch))
|
||||||
(set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch)
|
(set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch)
|
||||||
|
|
||||||
|
(setq org-agenda-files `("~/GTD"))
|
||||||
|
(setq org-image-actual-width (list 550))
|
||||||
;; Get rid of the background on column views
|
;; Get rid of the background on column views
|
||||||
(set-face-attribute 'org-column nil :background nil)
|
(set-face-attribute 'org-column nil :background nil)
|
||||||
(set-face-attribute 'org-column-title nil :background nil)
|
(set-face-attribute 'org-column-title nil :background nil)
|
||||||
(setq org-src-fontify-natively t)
|
(setq org-src-fontify-natively t)
|
||||||
)
|
(setq org-agenda-start-with-log-mode t)
|
||||||
|
(setq org-log-done 'time)
|
||||||
|
(setq org-log-into-drawer t)
|
||||||
|
(setq org-todo-keyword-faces '(("TODO" . org-warning)
|
||||||
|
("STARTED" . "yellow")
|
||||||
|
("DREAM" . "pink")
|
||||||
|
("PJ" . "pink")
|
||||||
|
("IDEA" . "gold")
|
||||||
|
("READ" . "violet")
|
||||||
|
("NEXT" . "red")
|
||||||
|
("ARTICLE" . "lightblue")
|
||||||
|
("CANCELED" .
|
||||||
|
(:foreground "blue"
|
||||||
|
:weight bold))))
|
||||||
|
|
||||||
|
(setq org-todo-keywords '((sequence "INBOX(i)" "PJ(p)" "TODO(t)" "NEXT(n)" "CAL(c)" "WAIT(w@/!)" "|" "DONE(d!)" "CANC(k@)")
|
||||||
|
))
|
||||||
|
(setq org-agenda-custom-commands org-agenda-settings)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
(use-package org-bullets
|
(use-package org-bullets
|
||||||
:after (org)
|
:after (org)
|
||||||
|
@ -204,6 +300,11 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
)
|
)
|
||||||
|
(require 'general)
|
||||||
|
(evil-define-key 'normal org-mode-map (kbd "<tab>") #'org-cycle)
|
||||||
|
(general-def org-mode-map
|
||||||
|
"TAB" 'org-cycle
|
||||||
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
** Org Fonts
|
** Org Fonts
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
@ -211,7 +312,101 @@
|
||||||
|
|
||||||
|
|
||||||
#+end_src emacs-lisp
|
#+end_src emacs-lisp
|
||||||
* Modeline
|
*** Org agenda commands
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(setq org-agenda-settings '(
|
||||||
|
("d" "Dashboard 📜"
|
||||||
|
(
|
||||||
|
(agenda "" ((org-deadline-warning-days 14)))
|
||||||
|
(tags "@morning" ((org-agenda-overriding-header "Eat the Frog 🐸")))
|
||||||
|
(tags "today" ((org-agenda-overriding-header "Today Tasks 🌅")))
|
||||||
|
(todo "NEXT" ((org-agenda-overriding-header "Next Tasks ⏩")))
|
||||||
|
(todo "WAIT" ((org-agenda-overriding-header "Waiting tasks ⏰")))
|
||||||
|
(todo "PJ" ((org-agenda-overriding-header "Active Projects ")))
|
||||||
|
(todo "INBOX" ((org-agenda-overriding-header "Inbox 📥")))
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
("w" "Wait Tasks ⏰"
|
||||||
|
(todo "WAIT" ((org-agenda-overriding-header "Wait Tasks")))
|
||||||
|
(todo "NEXT" ((org-agenda-overriding-header "Wait Tasks")))
|
||||||
|
)
|
||||||
|
("c" "Dated Tasks 📅" ((todo "CAL" ((org-agenda-overriding-header "Dated Tasks")))))
|
||||||
|
|
||||||
|
("S" "Somewhen ⌛" ((todo "TODO" ((org-agenda-overriding-header "Somewhen ")))))
|
||||||
|
("R" "Read list 📚" tags-todo "+readlist")
|
||||||
|
("W" "Watch list 🎦" tags-todo "+watchlist")
|
||||||
|
("I" "Ideas 💡" tags-todo "+idea")
|
||||||
|
("P" "petprojects 🐕" tags-todo "+petproject")
|
||||||
|
("B" "Things to buy 🛍" tags-todo "+shoplist")
|
||||||
|
|
||||||
|
;; My state/contexts
|
||||||
|
("s" . "My State and contexts")
|
||||||
|
("st" "Tired 🥱" tags-todo "+@tired/NEXT" ((org-agenda-overriding-header "Tired 🥱")))
|
||||||
|
("sh" "At home🏠" tags-todo "+@home/NEXT" ((org-agenda-overriding-header "At home🏠")))
|
||||||
|
("sc" "By a computer 💻" tags-todo "+@computer/NEXT" ((org-agenda-overriding-header "By a computer 💻")))
|
||||||
|
("ss" "On studies 🏫" tags-todo "+@uni/NEXT" ((org-agenda-overriding-header "On studies 🏫")))
|
||||||
|
("so" "Online 🌐" tags-todo "+@online/NEXT" ((org-agenda-overriding-header "Online 🌐")))
|
||||||
|
("st" "Do Today 🌄" tags-todo "+today/NEXT" ((org-agenda-overriding-header "Today 🌄")))
|
||||||
|
("sO" "Outdoors🚶" tags-todo "+@outdoors/NEXT" ((org-agenda-overriding-header "Outdoors🚶")))
|
||||||
|
("sT" "To takeaway 👝 " tags-todo "+takeaway" ((org-agenda-overriding-header "To takeaway 👝 ")))
|
||||||
|
|
||||||
|
("h" "💪 Daily habits 💪"
|
||||||
|
((agenda ""))
|
||||||
|
((org-agenda-show-log t)
|
||||||
|
(org-agenda-ndays 7)
|
||||||
|
(org-agenda-log-mode-items '(state))
|
||||||
|
(org-agenda-skip-function '(org-agenda-skip-entry-if 'notregexp ":Habbit:"))))
|
||||||
|
|
||||||
|
)
|
||||||
|
;; other commands here
|
||||||
|
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
*** PDF Tools
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(use-package pdf-tools
|
||||||
|
:straight t
|
||||||
|
:defer t
|
||||||
|
)
|
||||||
|
;;(:host github :repo "https://git.savannah.gnu.org/cgit/emacs/elpa.git" :branch "main" :files ("*.el" "out"))
|
||||||
|
;:demand t
|
||||||
|
;:load-path "~/.emacs.d/elpa/org-9.5.4/"
|
||||||
|
;(org-bullets-mode t)
|
||||||
|
;(org-indent-mode t)
|
||||||
|
;(setq org-ellipsis " ▸" org-hide-emphasis-markers t org-src-fontify-natively t
|
||||||
|
; org-src-tab-acts-natively t org-edit-src-content-indentation 2 org-hide-block-startup nil
|
||||||
|
; org-src-preserve-indentation nil org-startup-folded 'content org-cycle-separator-lines 2)
|
||||||
|
#+end_src
|
||||||
|
*** Image tools
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
;; Enable converting external formats (ie. webp) to internal ones
|
||||||
|
(setq image-use-external-converter t)
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
** Org Tempo
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package tempo
|
||||||
|
:straight t)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Keybindings
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(general-define-key
|
||||||
|
:keymaps '(normal insert emacs)
|
||||||
|
:prefix "SPC"
|
||||||
|
:global-prefix "C-SPC"
|
||||||
|
:non-normal-prefix "M-SPC"
|
||||||
|
|
||||||
|
"o t" '(counsel-org-tag :which-key "insert tag")
|
||||||
|
"o l" '(counsel-org-link :which-key "insert tag")
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Modeline
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
|
||||||
|
|
||||||
|
@ -221,6 +416,25 @@
|
||||||
:custom ((doom-modeline-height 15)))
|
:custom ((doom-modeline-height 15)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
* Org Download
|
||||||
|
#+begin_src
|
||||||
|
(use-package org-download
|
||||||
|
:straight t
|
||||||
|
:after org
|
||||||
|
:bind
|
||||||
|
:config
|
||||||
|
(setq-default org-download-image-dir "~/Notes/assets")
|
||||||
|
|
||||||
|
)
|
||||||
|
(general-define-key
|
||||||
|
:keymaps '(normal insert emacs)
|
||||||
|
:prefix "SPC"
|
||||||
|
:global-prefix "C-SPC"
|
||||||
|
:non-normal-prefix "M-SPC"
|
||||||
|
"n s Y" '(org-download-screenshot :which-key "Download screenshot")
|
||||||
|
"n s y" '(org-download-yank :which-key "Download yank")
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
* Ivy
|
* Ivy
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package ivy
|
(use-package ivy
|
||||||
|
@ -268,9 +482,21 @@
|
||||||
|
|
||||||
;;:after (ivy)
|
;;:after (ivy)
|
||||||
;;:config
|
;;:config
|
||||||
(require 'ivy-posframe)
|
(require 'ivy-posframe)
|
||||||
(setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display)))
|
;; Different command can use different display function.
|
||||||
(ivy-posframe-mode 1)
|
(setq ivy-posframe-display-functions-alist
|
||||||
|
'((swiper . ivy-posframe-display-at-point)
|
||||||
|
(complete-symbol . ivy-posframe-display-at-point)
|
||||||
|
(counsel-M-x . ivy-posframe-display)
|
||||||
|
(org-roam-node-find . ivy-posframe-display)
|
||||||
|
(org-roam-tag-add . ivy-posframe-display)
|
||||||
|
(org-roam-tag-remove . ivy-posframe-display)
|
||||||
|
(org-roam-node-insert . ivy-posframe-display)
|
||||||
|
(org-roam-node-insert . ivy-posframe-display)
|
||||||
|
(org-roam-tag-add . ivy-posframe-display)
|
||||||
|
(org-roam-tag-remove . ivy-posframe-display)
|
||||||
|
(t . ivy-posframe-display)))
|
||||||
|
(ivy-posframe-mode 1)
|
||||||
#+end_src
|
#+end_src
|
||||||
** Ivy Rich
|
** Ivy Rich
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
@ -311,47 +537,65 @@
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Keybindigs
|
** Company
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(straight-use-package 'general)
|
(use-package company
|
||||||
(require 'general)
|
:straight t
|
||||||
(general-define-key
|
:config
|
||||||
:keymaps '(normal insert emacs)
|
(company-mode 1)
|
||||||
:prefix "SPC"
|
(add-hook 'after-init-hook 'global-company-mode)
|
||||||
:non-normal-prefix "M-SPC"
|
(setq company-backends '((company-capf :with company-yasnippet)))
|
||||||
|
)
|
||||||
"/" 'swiper
|
(use-package company-org-roam
|
||||||
"b" 'counsel-switch-buffer
|
:straight t
|
||||||
|
:hook (org-roam-mode . company-org-roam)
|
||||||
"f r" 'counsel-recentf
|
|
||||||
"f f" 'counsel-find-file
|
|
||||||
"SPC" 'counsel-M-x
|
|
||||||
|
|
||||||
)
|
)
|
||||||
|
(use-package yasnippet
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(yas-reload-all)
|
||||||
|
(add-hook 'prog-mode-hook 'yas-minor-mode)
|
||||||
|
(add-hook 'text-mode-hook 'yas-minor-mode))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
* Org Roam
|
* Org Roam
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package org-roam
|
(use-package org-roam
|
||||||
:straight t
|
:straight t
|
||||||
:custom
|
:custom
|
||||||
(org-roam-directory (file-truename "/home/horhik/Documents/Notes/"))
|
(org-roam-directory (file-truename "/home/horhik/Notes/"))
|
||||||
:bind (("C-c n l" . org-roam-buffer-toggle)
|
:bind (("C-c n l" . org-roam-buffer-toggle)
|
||||||
("C-c n f" . org-roam-node-find)
|
("C-c n f" . org-roam-node-find)
|
||||||
("C-c n g" . org-roam-graph)
|
("C-c n g" . org-roam-graph)
|
||||||
("C-c n i" . org-roam-node-insert)
|
("C-c n i" . org-roam-node-insert)
|
||||||
("C-c n c" . org-roam-capture)
|
("C-c n c" . org-roam-capture)
|
||||||
;; Dailies
|
;; Dailies
|
||||||
("C-c n j" . org-roam-dailies-capture-today))
|
("C-c n j" . org-roam-dailies-capture-today)
|
||||||
:config
|
|
||||||
;; If you're using a vertical completion framework, you might want a more informative completion interface
|
|
||||||
(setq org-roam-db-location (concat org-roam-directory "/home/horhik/Documents/Notes/org-roam.db"))
|
|
||||||
(setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
|
|
||||||
(org-roam-db-autosync-mode)
|
|
||||||
;; If using org-roam-protocol
|
|
||||||
(require 'org-roam-protocol))
|
|
||||||
|
|
||||||
|
;; Tags
|
||||||
|
("C-c t a" . org-roam-tag-add)
|
||||||
|
("C-c t r" . org-roam-tag-remove)
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
:config
|
||||||
|
;; If you're using a vertical completion framework, you might want a more informative completion interface
|
||||||
|
(setq org-roam-completion-everywhere t)
|
||||||
|
(setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
|
||||||
|
(org-roam-db-autosync-mode)
|
||||||
|
;; If using org-roam-protocol
|
||||||
|
(require 'org-roam-protocol)
|
||||||
|
:custom
|
||||||
|
(setq org-roam-db-location (concat org-roam-directory "/home/horhik/Notes/org-roam.db"))
|
||||||
|
(org-roam-directory "~/Notes/")
|
||||||
|
(org-roam-dailies-directory "~/Notes/journals/")
|
||||||
|
(org-roam-capture-templates
|
||||||
|
'(("d" "default" plain
|
||||||
|
"%?" :target
|
||||||
|
(file+head "pages/${slug}.org" "#+title: ${title}\n")
|
||||||
|
:unnarrowed t)))
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** Org-roam UI
|
** Org-roam UI
|
||||||
|
@ -370,5 +614,212 @@
|
||||||
org-roam-ui-update-on-save t
|
org-roam-ui-update-on-save t
|
||||||
org-roam-ui-open-on-start t))
|
org-roam-ui-open-on-start t))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
** ORG roam keybindings
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(general-define-key
|
||||||
|
:keymaps '(normal insert emacs)
|
||||||
|
:prefix "SPC"
|
||||||
|
:global-prefix "C-SPC"
|
||||||
|
:non-normal-prefix "M-SPC"
|
||||||
|
|
||||||
**
|
"n f" '(org-roam-node-find :which-key "Find Node")
|
||||||
|
"n i" '(org-roam-node-insert :which-key "Insert Node")
|
||||||
|
"n b" '(org-roam-buffer-toggle :which-key "Toggle buffer")
|
||||||
|
"n c" '(org-roam-capture :which-key "Capture")
|
||||||
|
"n d t" '(org-roam-dailies-goto-today :which-key "Today")
|
||||||
|
"n d T" '(org-roam-dailies-goto-tomorrow :which-key "Tomorrow")
|
||||||
|
"n d y" '(org-roam-dailies-goto-yesterday :which-key "Yesterday")
|
||||||
|
"l b" '(list-bookmarks :which-key "List bookmarks")
|
||||||
|
"n t a" '(org-roam-tag-add :which-key "Add tag")
|
||||||
|
"n t r" '(org-roam-tag-remove :which-key "Remove tag")
|
||||||
|
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
* Projectile
|
||||||
|
#+
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package projectile
|
||||||
|
:straight t
|
||||||
|
:diminish projectile-mode
|
||||||
|
:config (projectile-mode)
|
||||||
|
:custom ((projectile-completion-system 'ivy))
|
||||||
|
:bind-keymap
|
||||||
|
("C-c p" . projectile-command-map)
|
||||||
|
:init
|
||||||
|
;; NOTE: Set this to the folder where you keep your Git repos!
|
||||||
|
(when (file-directory-p "~/Projects/Code")
|
||||||
|
(setq projectile-project-search-path '("~/Projects/Code")))
|
||||||
|
(setq projectile-switch-project-action #'projectile-dired))
|
||||||
|
|
||||||
|
(use-package counsel-projectile
|
||||||
|
:straight t
|
||||||
|
:config (counsel-projectile-mode))
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
* Magit
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
|
||||||
|
(use-package magit
|
||||||
|
:straight t
|
||||||
|
:custom
|
||||||
|
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)
|
||||||
|
)
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
* Programming
|
||||||
|
** LSP
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package lsp-mode
|
||||||
|
:straight t
|
||||||
|
:commands lsp
|
||||||
|
:custom
|
||||||
|
;; what to use when checking on-save. "check" is default, I prefer clippy
|
||||||
|
(lsp-rust-analyzer-cargo-watch-command "clippy")
|
||||||
|
(lsp-eldoc-render-all t)
|
||||||
|
(lsp-idle-delay 1.6)
|
||||||
|
;; enable / disable the hints as you prefer:
|
||||||
|
(lsp-rust-analyzer-server-display-inlay-hints t)
|
||||||
|
(lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
|
||||||
|
(lsp-rust-analyzer-display-chaining-hints t)
|
||||||
|
(lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
|
||||||
|
(lsp-rust-analyzer-display-closure-return-type-hints t)
|
||||||
|
(lsp-rust-analyzer-display-parameter-hints nil)
|
||||||
|
(lsp-rust-analyzer-display-reborrow-hints nil)
|
||||||
|
:config
|
||||||
|
(add-hook 'lsp-mode-hook 'lsp-ui-mode))
|
||||||
|
|
||||||
|
(use-package lsp-ui
|
||||||
|
:straight t
|
||||||
|
:commands lsp-ui-mode
|
||||||
|
:custom
|
||||||
|
;(lsp-ui-peek-always-show t)
|
||||||
|
;(lsp-ui-sideline-show-hover t)
|
||||||
|
|
||||||
|
(lsp-ui-doc-enable nil)
|
||||||
|
:config
|
||||||
|
(setq lsp-ui-sideline-enable nil)
|
||||||
|
(setq lsp-ui-doc-enable t)
|
||||||
|
)
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
** Rust
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun rk/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)))
|
||||||
|
|
||||||
|
(use-package rustic
|
||||||
|
:straight t
|
||||||
|
:bind (:map rustic-mode-map
|
||||||
|
("M-j" . lsp-ui-imenu)
|
||||||
|
("M-?" . lsp-find-references)
|
||||||
|
("C-c C-c l" . flycheck-list-errors)
|
||||||
|
("C-c C-c a" . lsp-execute-code-action)
|
||||||
|
("C-c C-c r" . lsp-rename)
|
||||||
|
("C-c C-c q" . lsp-workspace-restart)
|
||||||
|
("C-c C-c Q" . lsp-workspace-shutdown)
|
||||||
|
("C-c C-c s" . lsp-rust-analyzer-status))
|
||||||
|
:config
|
||||||
|
;; uncomment for less flashiness
|
||||||
|
;; (setq lsp-eldoc-hook nil)
|
||||||
|
;; (setq lsp-enable-symbol-highlighting nil)
|
||||||
|
;; (setq lsp-signature-auto-activate nil)
|
||||||
|
|
||||||
|
;; comment to disable rustfmt on save
|
||||||
|
(setq rustic-format-on-save t)
|
||||||
|
;(setq lsp-rust-analyzer-server-display-inlay-hints t)
|
||||||
|
(add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))
|
||||||
|
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Flycheck
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package flycheck :straight t)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
|
* LaTeX Ninja 🥷
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package cdlatex
|
||||||
|
:straight t
|
||||||
|
:after org
|
||||||
|
:config
|
||||||
|
(setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0))
|
||||||
|
|
||||||
|
;(setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; (setq org-preview-latex-process-alist '((dvipng :programs
|
||||||
|
;; ("latex" "dvipng")
|
||||||
|
;; :description "dvi > png" :message "you need to install the programs: latex and dvipng." :image-input-type "dvi" :image-output-type "png" :image-size-adjust
|
||||||
|
;; (2.0 . 2.0)
|
||||||
|
;; :latex-compiler
|
||||||
|
;; ("latex -interaction nonstopmode -output-directory %o %f")
|
||||||
|
;; :image-converter
|
||||||
|
;; ("dvipng -D %D -T tight -o %O %f"))
|
||||||
|
;; (dvisvgm :programs
|
||||||
|
;; ("latex" "dvisvgm")
|
||||||
|
;; :description "dvi > svg" :message "you need to install the programs: latex and dvisvgm." :image-input-type "dvi" :image-output-type "svg" :image-size-adjust
|
||||||
|
;; (1.7 . 1.5)
|
||||||
|
;; :latex-compiler
|
||||||
|
;; ("latex -interaction nonstopmode -output-directory %o %f")
|
||||||
|
;; :image-converter
|
||||||
|
;; ("/opt/texlive/2022/bin/x86_64-linux/dvisvgm %f -n -b min -c %S -o %O"))
|
||||||
|
;; (imagemagick :programs
|
||||||
|
;; ("latex" "convert")
|
||||||
|
;; :description "pdf > png" :message "you need to install the programs: latex and imagemagick." :image-input-type "pdf" :image-output-type "png" :image-size-adjust
|
||||||
|
;; (1.0 . 1.0)
|
||||||
|
;; :latex-compiler
|
||||||
|
;; ("pdflatex -interaction nonstopmode -output-directory %o %f")
|
||||||
|
;; :image-converter
|
||||||
|
;; ("convert -density %D -trim -antialias %f -quality 100 %O"))))
|
||||||
|
|
||||||
|
(setq org-preview-latex-default-process 'dvipng) ;No blur when scaling
|
||||||
|
)
|
||||||
|
(defun my/text-scale-adjust-latex-previews ()
|
||||||
|
"Adjust the size of latex preview fragments when changing the
|
||||||
|
buffer's text scale."
|
||||||
|
(pcase major-mode
|
||||||
|
('latex-mode
|
||||||
|
(dolist (ov (overlays-in (point-min) (point-max)))
|
||||||
|
(if (eq (overlay-get ov 'category)
|
||||||
|
'preview-overlay)
|
||||||
|
(my/text-scale--resize-fragment ov))))
|
||||||
|
('org-mode
|
||||||
|
(dolist (ov (overlays-in (point-min) (point-max)))
|
||||||
|
(if (eq (overlay-get ov 'org-overlay-type)
|
||||||
|
'org-latex-overlay)
|
||||||
|
(my/text-scale--resize-fragment ov))))))
|
||||||
|
|
||||||
|
(defun my/text-scale--resize-fragment (ov)
|
||||||
|
(overlay-put
|
||||||
|
ov 'display
|
||||||
|
(cons 'image
|
||||||
|
(plist-put
|
||||||
|
(cdr (overlay-get ov 'display))
|
||||||
|
:scale (+ 1.0 (* 0.25 text-scale-mode-amount))))))
|
||||||
|
|
||||||
|
(add-hook 'text-scale-mode-hook #'my/text-scale-adjust-latex-previews)
|
||||||
|
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
** Live Preview
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package org-fragtog
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(add-hook 'org-mode-hook 'org-fragtog-mode)
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
* Encoding
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(modify-coding-system-alist 'file "\\.tex\\'" 'cp1252)
|
||||||
|
#+end_src
|
||||||
|
|
664
home/emacs/.emacs.d/init.el
Normal file
664
home/emacs/.emacs.d/init.el
Normal file
|
@ -0,0 +1,664 @@
|
||||||
|
(setq max-lisp-eval-depth 10000)
|
||||||
|
(require 'package)
|
||||||
|
(add-to-list 'package-archives
|
||||||
|
'("melpa" . "http://melpa.org/packages/") t)
|
||||||
|
(add-to-list 'package-archives
|
||||||
|
'("melpa" . "http://melpa.org/packages/") t)
|
||||||
|
|
||||||
|
|
||||||
|
(package-initialize)
|
||||||
|
|
||||||
|
(unless package-archive-contents
|
||||||
|
(package-refresh-contents))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defvar bootstrap-version)
|
||||||
|
(let ((bootstrap-file
|
||||||
|
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
||||||
|
(bootstrap-version 5))
|
||||||
|
(unless (file-exists-p bootstrap-file)
|
||||||
|
(with-current-buffer
|
||||||
|
(url-retrieve-synchronously
|
||||||
|
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
|
||||||
|
'silent 'inhibit-cookies)
|
||||||
|
(goto-char (point-max))
|
||||||
|
(eval-print-last-sexp)))
|
||||||
|
(load bootstrap-file nil 'nomessage))
|
||||||
|
|
||||||
|
(setq straight-use-package-by-default t)
|
||||||
|
(setq package-enable-at-startup nil)
|
||||||
|
|
||||||
|
(straight-use-package 'doom-themes
|
||||||
|
:init
|
||||||
|
(require 'doom-themes)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables 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.
|
||||||
|
'(custom-enabled-themes '(doom-gruvbox))
|
||||||
|
'(custom-safe-themes
|
||||||
|
'("e3daa8f18440301f3e54f2093fe15f4fe951986a8628e98dcd781efbec7a46f2" "969a67341a68becdccc9101dc87f5071b2767b75c0b199e0ded35bd8359ecd69" default)))
|
||||||
|
(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.
|
||||||
|
)
|
||||||
|
|
||||||
|
(setq inhibit-startup-message t)
|
||||||
|
(setq visible-bell t)
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
(toggle-scroll-bar -1)
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
(tooltip-mode -1)
|
||||||
|
(set-fringe-mode 10)
|
||||||
|
(visual-line-mode t)
|
||||||
|
(global-visual-line-mode 1)
|
||||||
|
(global-visual-line-mode)
|
||||||
|
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
||||||
|
(straight-use-package 'use-package)
|
||||||
|
|
||||||
|
(use-package which-key
|
||||||
|
:straight t)
|
||||||
|
|
||||||
|
(column-number-mode)
|
||||||
|
(global-display-line-numbers-mode)
|
||||||
|
(dolist (mode '(org-mode-hook
|
||||||
|
term-mode-hook
|
||||||
|
shell-mode-hook
|
||||||
|
eshell-mode-hook))
|
||||||
|
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
||||||
|
|
||||||
|
(use-package rainbow-delimiters
|
||||||
|
:straight t
|
||||||
|
:hook (prog-mode . rainbow-delimiters-mode))
|
||||||
|
|
||||||
|
(use-package which-key
|
||||||
|
:init (which-key-mode)
|
||||||
|
:diminish which-key-mode
|
||||||
|
:config
|
||||||
|
(setq which-key-idle-delay 0.3))
|
||||||
|
|
||||||
|
(use-package all-the-icons
|
||||||
|
:straight t)
|
||||||
|
|
||||||
|
(use-package evil
|
||||||
|
:straight t
|
||||||
|
:init
|
||||||
|
|
||||||
|
(setq evil-want-keybinding nil)
|
||||||
|
(setq evil-want-integration t)
|
||||||
|
(setq evil-want-C-u-scroll t)
|
||||||
|
(setq evil-want-C-i-jump nil)
|
||||||
|
(setq evil-search-module 'evil-search)
|
||||||
|
(setq evil-ex-complete-emacs-commands nil)
|
||||||
|
(setq evil-vsplit-window-right t)
|
||||||
|
(setq evil-split-window-below t)
|
||||||
|
(setq evil-want-fine-undo 'fine)
|
||||||
|
(setq evil-undo-system 'undo-redo)
|
||||||
|
(setq evil-set-undo-system 'undo-redo)
|
||||||
|
:config
|
||||||
|
(evil-mode 1)
|
||||||
|
(evil-set-undo-system 'undo-redo)
|
||||||
|
(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
|
||||||
|
(define-key evil-insert-state-map (kbd "C-h") 'evil-delete-backward-chair-and-join)
|
||||||
|
|
||||||
|
(evil-global-set-key 'motion "j" 'evil-next-visual-line)
|
||||||
|
(evil-global-set-key 'motion "k" 'evil-previous-visual-line)
|
||||||
|
|
||||||
|
(evil-set-initial-state 'messages-buffer-mode 'normal)
|
||||||
|
(evil-set-initial-state 'dashboard-mode 'normal)
|
||||||
|
|
||||||
|
)
|
||||||
|
(use-package undo-tree
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(setq evil-undo-system 'undo-redo)
|
||||||
|
(setq evil-set-undo-system 'undo-redo)
|
||||||
|
|
||||||
|
(use-package evil-collection
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(evil-collection-init)
|
||||||
|
))
|
||||||
|
|
||||||
|
(use-package general
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(general-evil-setup t)
|
||||||
|
(general-define-key
|
||||||
|
:keymaps '(normal insert emacs)
|
||||||
|
:prefix "SPC"
|
||||||
|
:global-prefix "C-SPC"
|
||||||
|
:non-normal-prefix "M-SPC"
|
||||||
|
|
||||||
|
"/" 'swiper
|
||||||
|
"b" 'counsel-switch-buffer
|
||||||
|
|
||||||
|
"f r" 'counsel-recentf
|
||||||
|
"f f" 'counsel-find-file
|
||||||
|
"SPC" 'counsel-M-x
|
||||||
|
|
||||||
|
"a" 'org-agenda
|
||||||
|
|
||||||
|
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
(general-create-definer my-leader-def
|
||||||
|
:states 'motion
|
||||||
|
:prefix "SPC")
|
||||||
|
|
||||||
|
(defun my/org-mode-setup()
|
||||||
|
(auto-fill-mode 0)
|
||||||
|
(visual-line-mode 1)
|
||||||
|
(setq evil-auto-indent 1)
|
||||||
|
(variable-pitch-mode t)
|
||||||
|
(prettify-symbols-mode +1)
|
||||||
|
(display-line-numbers-mode 0)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package org
|
||||||
|
:straight t
|
||||||
|
|
||||||
|
:hook ((org-mode . my/org-mode-setup)
|
||||||
|
(org-mode . variable-pitch-mode)
|
||||||
|
(org-mode . org-indent-mode)
|
||||||
|
(org-mode . prettify-symbols-mode)
|
||||||
|
)
|
||||||
|
:config
|
||||||
|
;; Make sure org-indent face is available
|
||||||
|
;; Increase the size of various headings
|
||||||
|
(set-face-attribute 'org-document-title nil :font "Ubuntu" :weight 'bold :height 1.3)
|
||||||
|
|
||||||
|
(dolist (face '((org-level-1 . 1.4)
|
||||||
|
(org-level-2 . 1.3)
|
||||||
|
(org-level-3 . 1.05)
|
||||||
|
(org-level-4 . 1.0)
|
||||||
|
(org-level-5 . 1.1)
|
||||||
|
(org-level-6 . 1.1)
|
||||||
|
(org-level-7 . 1.1)
|
||||||
|
(org-level-8 . 1.1)))
|
||||||
|
(set-face-attribute (car face) nil :font "Ubuntu" :weight 'bold :height (cdr face)))
|
||||||
|
|
||||||
|
;; Ensure that anything that should be fixed-pitch in Org files appears that way
|
||||||
|
(set-face-attribute 'org-block nil :foreground nil :inherit 'fixed-pitch)
|
||||||
|
(set-face-attribute 'org-table nil :inherit 'fixed-pitch)
|
||||||
|
(set-face-attribute 'org-formula nil :inherit 'fixed-pitch)
|
||||||
|
(set-face-attribute 'org-code nil :inherit '(shadow fixed-pitch))
|
||||||
|
;(set-face-attribute 'org-indent nil :inherit '(org-hide fixed-pitch))
|
||||||
|
(set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch))
|
||||||
|
(set-face-attribute 'org-special-keyword nil :inherit '(font-lock-comment-face fixed-pitch))
|
||||||
|
(set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch))
|
||||||
|
(set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch)
|
||||||
|
|
||||||
|
(setq org-agenda-files `("~/GTD"))
|
||||||
|
(setq org-image-actual-width (list 550))
|
||||||
|
;; Get rid of the background on column views
|
||||||
|
(set-face-attribute 'org-column nil :background nil)
|
||||||
|
(set-face-attribute 'org-column-title nil :background nil)
|
||||||
|
(setq org-src-fontify-natively t)
|
||||||
|
(setq org-agenda-start-with-log-mode t)
|
||||||
|
(setq org-log-done 'time)
|
||||||
|
(setq org-log-into-drawer t)
|
||||||
|
(setq org-todo-keyword-faces '(("TODO" . org-warning)
|
||||||
|
("STARTED" . "yellow")
|
||||||
|
("DREAM" . "pink")
|
||||||
|
("PJ" . "pink")
|
||||||
|
("IDEA" . "gold")
|
||||||
|
("READ" . "violet")
|
||||||
|
("NEXT" . "red")
|
||||||
|
("ARTICLE" . "lightblue")
|
||||||
|
("CANCELED" .
|
||||||
|
(:foreground "blue"
|
||||||
|
:weight bold))))
|
||||||
|
|
||||||
|
(setq org-todo-keywords '((sequence "INBOX(i)" "PJ(p)" "TODO(t)" "NEXT(n)" "CAL(c)" "WAIT(w@/!)" "|" "DONE(d!)" "CANC(k@)")
|
||||||
|
))
|
||||||
|
(setq org-agenda-custom-commands org-agenda-settings)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package org-bullets
|
||||||
|
:after (org)
|
||||||
|
:hook (
|
||||||
|
(org-mode . org-bullets-mode )
|
||||||
|
(org-mode . org-indent-mode )
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
|
(require 'general)
|
||||||
|
(evil-define-key 'normal org-mode-map (kbd "<tab>") #'org-cycle)
|
||||||
|
(general-def org-mode-map
|
||||||
|
"TAB" 'org-cycle
|
||||||
|
)
|
||||||
|
|
||||||
|
(setq org-agenda-settings '(
|
||||||
|
("d" "Dashboard 📜"
|
||||||
|
(
|
||||||
|
(agenda "" ((org-deadline-warning-days 14)))
|
||||||
|
(tags "@morning" ((org-agenda-overriding-header "Eat the Frog 🐸")))
|
||||||
|
(tags "today" ((org-agenda-overriding-header "Today Tasks 🌅")))
|
||||||
|
(todo "NEXT" ((org-agenda-overriding-header "Next Tasks ⏩")))
|
||||||
|
(todo "WAIT" ((org-agenda-overriding-header "Waiting tasks ⏰")))
|
||||||
|
(todo "PJ" ((org-agenda-overriding-header "Active Projects ")))
|
||||||
|
(todo "INBOX" ((org-agenda-overriding-header "Inbox 📥")))
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
("w" "Wait Tasks ⏰"
|
||||||
|
(todo "WAIT" ((org-agenda-overriding-header "Wait Tasks")))
|
||||||
|
(todo "NEXT" ((org-agenda-overriding-header "Wait Tasks")))
|
||||||
|
)
|
||||||
|
("c" "Dated Tasks 📅" ((todo "CAL" ((org-agenda-overriding-header "Dated Tasks")))))
|
||||||
|
|
||||||
|
("S" "Somewhen ⌛" ((todo "TODO" ((org-agenda-overriding-header "Somewhen ")))))
|
||||||
|
("R" "Read list 📚" tags-todo "+readlist")
|
||||||
|
("W" "Watch list 🎦" tags-todo "+watchlist")
|
||||||
|
("I" "Ideas 💡" tags-todo "+idea")
|
||||||
|
("P" "petprojects 🐕" tags-todo "+petproject")
|
||||||
|
("B" "Things to buy 🛍" tags-todo "+shoplist")
|
||||||
|
|
||||||
|
;; My state/contexts
|
||||||
|
("s" . "My State and contexts")
|
||||||
|
("st" "Tired 🥱" tags-todo "+@tired/NEXT" ((org-agenda-overriding-header "Tired 🥱")))
|
||||||
|
("sh" "At home🏠" tags-todo "+@home/NEXT" ((org-agenda-overriding-header "At home🏠")))
|
||||||
|
("sc" "By a computer 💻" tags-todo "+@computer/NEXT" ((org-agenda-overriding-header "By a computer 💻")))
|
||||||
|
("ss" "On studies 🏫" tags-todo "+@uni/NEXT" ((org-agenda-overriding-header "On studies 🏫")))
|
||||||
|
("so" "Online 🌐" tags-todo "+@online/NEXT" ((org-agenda-overriding-header "Online 🌐")))
|
||||||
|
("st" "Do Today 🌄" tags-todo "+today/NEXT" ((org-agenda-overriding-header "Today 🌄")))
|
||||||
|
("sO" "Outdoors🚶" tags-todo "+@outdoors/NEXT" ((org-agenda-overriding-header "Outdoors🚶")))
|
||||||
|
("sT" "To takeaway 👝 " tags-todo "+takeaway" ((org-agenda-overriding-header "To takeaway 👝 ")))
|
||||||
|
|
||||||
|
("h" "💪 Daily habits 💪"
|
||||||
|
((agenda ""))
|
||||||
|
((org-agenda-show-log t)
|
||||||
|
(org-agenda-ndays 7)
|
||||||
|
(org-agenda-log-mode-items '(state))
|
||||||
|
(org-agenda-skip-function '(org-agenda-skip-entry-if 'notregexp ":Habbit:"))))
|
||||||
|
|
||||||
|
)
|
||||||
|
;; other commands here
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package pdf-tools
|
||||||
|
:straight t
|
||||||
|
:defer t
|
||||||
|
)
|
||||||
|
;;(:host github :repo "https://git.savannah.gnu.org/cgit/emacs/elpa.git" :branch "main" :files ("*.el" "out"))
|
||||||
|
;:demand t
|
||||||
|
;:load-path "~/.emacs.d/elpa/org-9.5.4/"
|
||||||
|
;(org-bullets-mode t)
|
||||||
|
;(org-indent-mode t)
|
||||||
|
;(setq org-ellipsis " ▸" org-hide-emphasis-markers t org-src-fontify-natively t
|
||||||
|
; org-src-tab-acts-natively t org-edit-src-content-indentation 2 org-hide-block-startup nil
|
||||||
|
; org-src-preserve-indentation nil org-startup-folded 'content org-cycle-separator-lines 2)
|
||||||
|
|
||||||
|
;; Enable converting external formats (ie. webp) to internal ones
|
||||||
|
(setq image-use-external-converter t)
|
||||||
|
|
||||||
|
(use-package tempo
|
||||||
|
:straight t)
|
||||||
|
|
||||||
|
(general-define-key
|
||||||
|
:keymaps '(normal insert emacs)
|
||||||
|
:prefix "SPC"
|
||||||
|
:global-prefix "C-SPC"
|
||||||
|
:non-normal-prefix "M-SPC"
|
||||||
|
|
||||||
|
"o t" '(counsel-org-tag :which-key "insert tag")
|
||||||
|
"o l" '(counsel-org-link :which-key "insert tag")
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package doom-modeline
|
||||||
|
:straight t
|
||||||
|
:init (doom-modeline-mode 1)
|
||||||
|
:custom ((doom-modeline-height 15)))
|
||||||
|
|
||||||
|
(use-package ivy
|
||||||
|
:straight t
|
||||||
|
:diminish
|
||||||
|
:bind (("C-s" . swiper)
|
||||||
|
: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)
|
||||||
|
|
||||||
|
)
|
||||||
|
(use-package amx
|
||||||
|
:straight t
|
||||||
|
:init (amx-mode 1))
|
||||||
|
|
||||||
|
(straight-use-package 'ivy-posframe)
|
||||||
|
(use-package counsel
|
||||||
|
:straight t
|
||||||
|
:bind (
|
||||||
|
("M-x" . counsel-M-x)
|
||||||
|
("C-x b" . counsel-buffer-or-recentf)
|
||||||
|
("C-x C-b" . counsel-switch-buffer)
|
||||||
|
("C-x C-f" . counsel-find-file)
|
||||||
|
:map minibuffer-local-map
|
||||||
|
("C-x r" . 'counsel-minibuffer-history)))
|
||||||
|
;; (setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-frame-center)))
|
||||||
|
;; (setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-window-center)))
|
||||||
|
;; (setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-frame-bottom-left)))
|
||||||
|
;; (setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-window-bottom-left)))
|
||||||
|
;; (setq ivy-posframe-display-functions-alist '((t . ivy-posframe-display-at-frame-top-center)))
|
||||||
|
|
||||||
|
;;:after (ivy)
|
||||||
|
;;:config
|
||||||
|
(require 'ivy-posframe)
|
||||||
|
;; Different command can use different display function.
|
||||||
|
(setq ivy-posframe-display-functions-alist
|
||||||
|
'((swiper . ivy-posframe-display-at-point)
|
||||||
|
(complete-symbol . ivy-posframe-display-at-point)
|
||||||
|
(counsel-M-x . ivy-posframe-display)
|
||||||
|
(org-roam-node-find . ivy-posframe-display)
|
||||||
|
(org-roam-tag-add . ivy-posframe-display)
|
||||||
|
(org-roam-tag-remove . ivy-posframe-display)
|
||||||
|
(org-roam-node-insert . ivy-posframe-display)
|
||||||
|
(org-roam-node-insert . ivy-posframe-display)
|
||||||
|
(org-roam-tag-add . ivy-posframe-display)
|
||||||
|
(org-roam-tag-remove . ivy-posframe-display)
|
||||||
|
(t . ivy-posframe-display)))
|
||||||
|
(ivy-posframe-mode 1)
|
||||||
|
|
||||||
|
(use-package all-the-icons-ivy-rich
|
||||||
|
:straight t
|
||||||
|
:init (all-the-icons-ivy-rich-mode 1)
|
||||||
|
:config
|
||||||
|
(setq all-the-icons-ivy-rich-icon t)
|
||||||
|
(setq all-the-icons-ivy-rich-color-icon t)
|
||||||
|
(setq all-the-icons-ivy-rich-project t)
|
||||||
|
(setq all-the-icons-ivy-rich-field-width 80)
|
||||||
|
(setq inhibit-compacting-font-caches t)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package ivy-rich
|
||||||
|
:straight t
|
||||||
|
:init (ivy-rich-mode 1)
|
||||||
|
:config
|
||||||
|
(defun ivy-rich-counsel-find-file-truename (candidate)
|
||||||
|
(let ((type (car (file-attributes (directory-file-name (expand-file-name candidate ivy--directory))))))
|
||||||
|
(if (stringp type)
|
||||||
|
(concat "-> " (expand-file-name type ivy--directory))
|
||||||
|
"")))
|
||||||
|
(setq ivy-rich-display-transformers-list
|
||||||
|
'(ivy-switch-buffer
|
||||||
|
(:columns
|
||||||
|
((ivy-rich-switch-buffer-icon (:width 2))
|
||||||
|
(ivy-rich-candidate (:width 30))
|
||||||
|
(ivy-rich-switch-buffer-size (:width 7))
|
||||||
|
(ivy-rich-switch-buffer-indicators (:width 4 :face error :align right))
|
||||||
|
(ivy-rich-switch-buffer-major-mode (:width 12 :face warning))
|
||||||
|
(ivy-rich-switch-buffer-project (:width 15 :face success))
|
||||||
|
(ivy-rich-switch-buffer-path (:width (lambda (x) (ivy-rich-switch-buffer-shorten-path x (ivy-rich-minibuffer-width 0.3))))))
|
||||||
|
:predicate
|
||||||
|
(lambda (cand) (get-buffer cand)))))
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package company
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(company-mode 1)
|
||||||
|
(add-hook 'after-init-hook 'global-company-mode)
|
||||||
|
(setq company-backends '((company-capf :with company-yasnippet)))
|
||||||
|
)
|
||||||
|
(use-package company-org-roam
|
||||||
|
:straight t
|
||||||
|
:hook (org-roam-mode . company-org-roam)
|
||||||
|
)
|
||||||
|
(use-package yasnippet
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(yas-reload-all)
|
||||||
|
(add-hook 'prog-mode-hook 'yas-minor-mode)
|
||||||
|
(add-hook 'text-mode-hook 'yas-minor-mode))
|
||||||
|
|
||||||
|
(use-package org-roam
|
||||||
|
:straight t
|
||||||
|
:custom
|
||||||
|
(org-roam-directory (file-truename "/home/horhik/Notes/"))
|
||||||
|
:bind (("C-c n l" . org-roam-buffer-toggle)
|
||||||
|
("C-c n f" . org-roam-node-find)
|
||||||
|
("C-c n g" . org-roam-graph)
|
||||||
|
("C-c n i" . org-roam-node-insert)
|
||||||
|
("C-c n c" . org-roam-capture)
|
||||||
|
;; Dailies
|
||||||
|
("C-c n j" . org-roam-dailies-capture-today)
|
||||||
|
|
||||||
|
;; Tags
|
||||||
|
("C-c t a" . org-roam-tag-add)
|
||||||
|
("C-c t r" . org-roam-tag-remove)
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
:config
|
||||||
|
;; If you're using a vertical completion framework, you might want a more informative completion interface
|
||||||
|
(setq org-roam-completion-everywhere t)
|
||||||
|
(setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
|
||||||
|
(org-roam-db-autosync-mode)
|
||||||
|
;; If using org-roam-protocol
|
||||||
|
(require 'org-roam-protocol)
|
||||||
|
:custom
|
||||||
|
(setq org-roam-db-location (concat org-roam-directory "/home/horhik/Notes/org-roam.db"))
|
||||||
|
(org-roam-directory "~/Notes/")
|
||||||
|
(org-roam-dailies-directory "~/Notes/journals/")
|
||||||
|
(org-roam-capture-templates
|
||||||
|
'(("d" "default" plain
|
||||||
|
"%?" :target
|
||||||
|
(file+head "pages/${slug}.org" "#+title: ${title}\n")
|
||||||
|
:unnarrowed t)))
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package org-roam-ui
|
||||||
|
:straight
|
||||||
|
(:host github :repo "org-roam/org-roam-ui" :branch "main" :files ("*.el" "out"))
|
||||||
|
:after org-roam
|
||||||
|
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
|
||||||
|
;; a hookable mode anymore, you're advised to pick something yourself
|
||||||
|
;; if you don't care about startup time, use
|
||||||
|
;; :hook (after-init . org-roam-ui-mode)
|
||||||
|
:config
|
||||||
|
(setq org-roam-ui-sync-theme t
|
||||||
|
org-roam-ui-follow t
|
||||||
|
org-roam-ui-update-on-save t
|
||||||
|
org-roam-ui-open-on-start t))
|
||||||
|
|
||||||
|
(general-define-key
|
||||||
|
:keymaps '(normal insert emacs)
|
||||||
|
:prefix "SPC"
|
||||||
|
:global-prefix "C-SPC"
|
||||||
|
:non-normal-prefix "M-SPC"
|
||||||
|
|
||||||
|
"n f" '(org-roam-node-find :which-key "Find Node")
|
||||||
|
"n i" '(org-roam-node-insert :which-key "Insert Node")
|
||||||
|
"n b" '(org-roam-buffer-toggle :which-key "Toggle buffer")
|
||||||
|
"n c" '(org-roam-capture :which-key "Capture")
|
||||||
|
"n d t" '(org-roam-dailies-goto-today :which-key "Today")
|
||||||
|
"n d T" '(org-roam-dailies-goto-tomorrow :which-key "Tomorrow")
|
||||||
|
"n d y" '(org-roam-dailies-goto-yesterday :which-key "Yesterday")
|
||||||
|
"l b" '(list-bookmarks :which-key "List bookmarks")
|
||||||
|
"n t a" '(org-roam-tag-add :which-key "Add tag")
|
||||||
|
"n t r" '(org-roam-tag-remove :which-key "Remove tag")
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package projectile
|
||||||
|
:straight t
|
||||||
|
:diminish projectile-mode
|
||||||
|
:config (projectile-mode)
|
||||||
|
:custom ((projectile-completion-system 'ivy))
|
||||||
|
:bind-keymap
|
||||||
|
("C-c p" . projectile-command-map)
|
||||||
|
:init
|
||||||
|
;; NOTE: Set this to the folder where you keep your Git repos!
|
||||||
|
(when (file-directory-p "~/Projects/Code")
|
||||||
|
(setq projectile-project-search-path '("~/Projects/Code")))
|
||||||
|
(setq projectile-switch-project-action #'projectile-dired))
|
||||||
|
|
||||||
|
(use-package counsel-projectile
|
||||||
|
:straight t
|
||||||
|
:config (counsel-projectile-mode))
|
||||||
|
|
||||||
|
(use-package magit
|
||||||
|
:straight t
|
||||||
|
:custom
|
||||||
|
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package lsp-mode
|
||||||
|
:straight t
|
||||||
|
:commands lsp
|
||||||
|
:custom
|
||||||
|
;; what to use when checking on-save. "check" is default, I prefer clippy
|
||||||
|
(lsp-rust-analyzer-cargo-watch-command "clippy")
|
||||||
|
(lsp-eldoc-render-all t)
|
||||||
|
(lsp-idle-delay 1.6)
|
||||||
|
;; enable / disable the hints as you prefer:
|
||||||
|
(lsp-rust-analyzer-server-display-inlay-hints t)
|
||||||
|
(lsp-rust-analyzer-display-lifetime-elision-hints-enable "skip_trivial")
|
||||||
|
(lsp-rust-analyzer-display-chaining-hints t)
|
||||||
|
(lsp-rust-analyzer-display-lifetime-elision-hints-use-parameter-names nil)
|
||||||
|
(lsp-rust-analyzer-display-closure-return-type-hints t)
|
||||||
|
(lsp-rust-analyzer-display-parameter-hints nil)
|
||||||
|
(lsp-rust-analyzer-display-reborrow-hints nil)
|
||||||
|
:config
|
||||||
|
(add-hook 'lsp-mode-hook 'lsp-ui-mode))
|
||||||
|
|
||||||
|
(use-package lsp-ui
|
||||||
|
:straight t
|
||||||
|
:commands lsp-ui-mode
|
||||||
|
:custom
|
||||||
|
;(lsp-ui-peek-always-show t)
|
||||||
|
;(lsp-ui-sideline-show-hover t)
|
||||||
|
|
||||||
|
(lsp-ui-doc-enable nil)
|
||||||
|
:config
|
||||||
|
(setq lsp-ui-sideline-enable nil)
|
||||||
|
(setq lsp-ui-doc-enable t)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun rk/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)))
|
||||||
|
|
||||||
|
(use-package rustic
|
||||||
|
:straight t
|
||||||
|
:bind (:map rustic-mode-map
|
||||||
|
("M-j" . lsp-ui-imenu)
|
||||||
|
("M-?" . lsp-find-references)
|
||||||
|
("C-c C-c l" . flycheck-list-errors)
|
||||||
|
("C-c C-c a" . lsp-execute-code-action)
|
||||||
|
("C-c C-c r" . lsp-rename)
|
||||||
|
("C-c C-c q" . lsp-workspace-restart)
|
||||||
|
("C-c C-c Q" . lsp-workspace-shutdown)
|
||||||
|
("C-c C-c s" . lsp-rust-analyzer-status))
|
||||||
|
:config
|
||||||
|
;; uncomment for less flashiness
|
||||||
|
;; (setq lsp-eldoc-hook nil)
|
||||||
|
;; (setq lsp-enable-symbol-highlighting nil)
|
||||||
|
;; (setq lsp-signature-auto-activate nil)
|
||||||
|
|
||||||
|
;; comment to disable rustfmt on save
|
||||||
|
(setq rustic-format-on-save t)
|
||||||
|
;(setq lsp-rust-analyzer-server-display-inlay-hints t)
|
||||||
|
(add-hook 'rustic-mode-hook 'rk/rustic-mode-hook))
|
||||||
|
|
||||||
|
(use-package flycheck :straight t)
|
||||||
|
|
||||||
|
(use-package cdlatex
|
||||||
|
:straight t
|
||||||
|
:after org
|
||||||
|
:config
|
||||||
|
(setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0))
|
||||||
|
|
||||||
|
;(setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; (setq org-preview-latex-process-alist '((dvipng :programs
|
||||||
|
;; ("latex" "dvipng")
|
||||||
|
;; :description "dvi > png" :message "you need to install the programs: latex and dvipng." :image-input-type "dvi" :image-output-type "png" :image-size-adjust
|
||||||
|
;; (2.0 . 2.0)
|
||||||
|
;; :latex-compiler
|
||||||
|
;; ("latex -interaction nonstopmode -output-directory %o %f")
|
||||||
|
;; :image-converter
|
||||||
|
;; ("dvipng -D %D -T tight -o %O %f"))
|
||||||
|
;; (dvisvgm :programs
|
||||||
|
;; ("latex" "dvisvgm")
|
||||||
|
;; :description "dvi > svg" :message "you need to install the programs: latex and dvisvgm." :image-input-type "dvi" :image-output-type "svg" :image-size-adjust
|
||||||
|
;; (1.7 . 1.5)
|
||||||
|
;; :latex-compiler
|
||||||
|
;; ("latex -interaction nonstopmode -output-directory %o %f")
|
||||||
|
;; :image-converter
|
||||||
|
;; ("/opt/texlive/2022/bin/x86_64-linux/dvisvgm %f -n -b min -c %S -o %O"))
|
||||||
|
;; (imagemagick :programs
|
||||||
|
;; ("latex" "convert")
|
||||||
|
;; :description "pdf > png" :message "you need to install the programs: latex and imagemagick." :image-input-type "pdf" :image-output-type "png" :image-size-adjust
|
||||||
|
;; (1.0 . 1.0)
|
||||||
|
;; :latex-compiler
|
||||||
|
;; ("pdflatex -interaction nonstopmode -output-directory %o %f")
|
||||||
|
;; :image-converter
|
||||||
|
;; ("convert -density %D -trim -antialias %f -quality 100 %O"))))
|
||||||
|
|
||||||
|
(setq org-preview-latex-default-process 'dvipng) ;No blur when scaling
|
||||||
|
)
|
||||||
|
(defun my/text-scale-adjust-latex-previews ()
|
||||||
|
"Adjust the size of latex preview fragments when changing the
|
||||||
|
buffer's text scale."
|
||||||
|
(pcase major-mode
|
||||||
|
('latex-mode
|
||||||
|
(dolist (ov (overlays-in (point-min) (point-max)))
|
||||||
|
(if (eq (overlay-get ov 'category)
|
||||||
|
'preview-overlay)
|
||||||
|
(my/text-scale--resize-fragment ov))))
|
||||||
|
('org-mode
|
||||||
|
(dolist (ov (overlays-in (point-min) (point-max)))
|
||||||
|
(if (eq (overlay-get ov 'org-overlay-type)
|
||||||
|
'org-latex-overlay)
|
||||||
|
(my/text-scale--resize-fragment ov))))))
|
||||||
|
|
||||||
|
(defun my/text-scale--resize-fragment (ov)
|
||||||
|
(overlay-put
|
||||||
|
ov 'display
|
||||||
|
(cons 'image
|
||||||
|
(plist-put
|
||||||
|
(cdr (overlay-get ov 'display))
|
||||||
|
:scale (+ 1.0 (* 0.25 text-scale-mode-amount))))))
|
||||||
|
|
||||||
|
(add-hook 'text-scale-mode-hook #'my/text-scale-adjust-latex-previews)
|
||||||
|
|
||||||
|
(use-package org-fragtog
|
||||||
|
:straight t
|
||||||
|
:config
|
||||||
|
(add-hook 'org-mode-hook 'org-fragtog-mode)
|
||||||
|
)
|
||||||
|
|
||||||
|
(modify-coding-system-alist 'file "\\.tex\\'" 'cp1252)
|
Loading…
Reference in a new issue