|
|
|
@ -34,6 +34,8 @@ Initialize Package sources
|
|
|
|
|
(package-install 'use-package))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
#+RESULTS:
|
|
|
|
|
|
|
|
|
|
Make sure to download packages if not present
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(require 'use-package)
|
|
|
|
@ -86,10 +88,10 @@ remove warning by use-package
|
|
|
|
|
#+end_src
|
|
|
|
|
Emacs Backups trashing local dir!
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package no-littering
|
|
|
|
|
(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")))
|
|
|
|
|
`((".*" ,(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
|
|
|
|
@ -108,8 +110,8 @@ Better Scrolling
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(setq scroll-conservatively 10)
|
|
|
|
|
(setq scroll-margin 3)
|
|
|
|
|
(use-package smooth-scrolling
|
|
|
|
|
:custom (smooth-scrolling-mode 1))
|
|
|
|
|
;; (use-package smooth-scrolling
|
|
|
|
|
;; :custom (smooth-scrolling-mode 1))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
** Fonts
|
|
|
|
@ -117,7 +119,7 @@ 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 Kufi Arabic")
|
|
|
|
|
(setq my/ui/arabicfont "Noto Sans Arabic")
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
@ -204,10 +206,10 @@ Actuall Theme:
|
|
|
|
|
Transparency!
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
;; for the first frame
|
|
|
|
|
(set-frame-parameter nil 'alpha-background 0.8)
|
|
|
|
|
(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.8)))
|
|
|
|
|
(lambda nil (set-frame-parameter nil 'alpha-background 0.9)))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
Center text in the frame, looks nice ;)
|
|
|
|
@ -263,8 +265,14 @@ Self explanatory
|
|
|
|
|
** 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)
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
#+RESULTS:
|
|
|
|
|
|
|
|
|
|
* Auth!
|
|
|
|
|
should i really be commiting this? :>
|
|
|
|
@ -463,6 +471,7 @@ Capture
|
|
|
|
|
"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")
|
|
|
|
|
#+end_src
|
|
|
|
@ -524,9 +533,11 @@ Capture
|
|
|
|
|
"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")
|
|
|
|
|
"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)
|
|
|
|
@ -566,8 +577,8 @@ Capture
|
|
|
|
|
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-undo-system 'undo-redo)
|
|
|
|
|
|
|
|
|
|
:config
|
|
|
|
|
(evil-mode 1)
|
|
|
|
|
|
|
|
|
@ -607,7 +618,7 @@ Capture
|
|
|
|
|
|
|
|
|
|
;(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-insert-state-map "\C-k" 'kill-line)
|
|
|
|
|
(define-key evil-normal-state-map "Q" 'call-last-kbd-macro)
|
|
|
|
|
(define-key evil-visual-state-map "Q" 'call-last-kbd-macro)
|
|
|
|
|
;; (define-key evil-normal-state-map (kbd "TAB") 'evil-undefine)
|
|
|
|
@ -631,30 +642,15 @@ Capture
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(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
|
|
|
|
|
(use-package key-chord
|
|
|
|
|
:config
|
|
|
|
|
(key-chord-define evil-insert-state-map "jk" 'evil-normal-state)
|
|
|
|
|
(key-chord-define evil-replace-state-map "jk" 'evil-normal-state)
|
|
|
|
|
:init
|
|
|
|
|
(key-chord-mode 1))
|
|
|
|
|
|
|
|
|
|
;; (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))
|
|
|
|
|
;; ; 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)
|
|
|
|
@ -672,6 +668,27 @@ Capture
|
|
|
|
|
|
|
|
|
|
;; (define-key evil-insert-state-map (kbd "j") 'my-jk)
|
|
|
|
|
|
|
|
|
|
(use-package key-chord
|
|
|
|
|
:after evil
|
|
|
|
|
:custom
|
|
|
|
|
(key-chord-two-keys-delay 0.05)
|
|
|
|
|
(key-chord-safety-interval-forward 0.1)
|
|
|
|
|
:config
|
|
|
|
|
(key-chord-mode 1)
|
|
|
|
|
(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))
|
|
|
|
|
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Evil args
|
|
|
|
@ -812,22 +829,20 @@ slow loading! defer it
|
|
|
|
|
:custom
|
|
|
|
|
(company-tooltip-minimum-width 40) ;reduce flicker due to changing width
|
|
|
|
|
(global-company-mode t)
|
|
|
|
|
(company-idle-delay 0.3) ;; how long to wait until popup
|
|
|
|
|
(company-idle-delay 0.1) ;; how long to wait until popup
|
|
|
|
|
(company-minimum-prefix-length 1) ;; The minimum prefix length for idle completion.
|
|
|
|
|
(company-selection-wrap-around t)
|
|
|
|
|
;; (company-begin-commands nil) ;; uncomment to disable popup
|
|
|
|
|
:bind
|
|
|
|
|
(:map company-active-map
|
|
|
|
|
("C-n". company-select-next)
|
|
|
|
|
;; ("C-n". company-select-next)
|
|
|
|
|
("C-w". evil-delete-backward-word)
|
|
|
|
|
("<tab>" . company-complete-common-or-cycle)
|
|
|
|
|
("RET" . company-complete-selection)
|
|
|
|
|
("C-p". company-select-previous)
|
|
|
|
|
;; ("C-p". company-select-previous)
|
|
|
|
|
("M-<". company-select-first)
|
|
|
|
|
("M->". company-select-last)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; (use-package company-lsp)
|
|
|
|
|
(use-package company-box
|
|
|
|
|
:after company
|
|
|
|
|
:hook (company-mode . company-box-mode))
|
|
|
|
@ -889,14 +904,15 @@ better sorting for ivy, company..
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(setq org-directory "~/Documents/gtd/"
|
|
|
|
|
org-roam-directory "~/Documents/roam/"
|
|
|
|
|
org-books-file (concat org-roam-directory "book_list.org")
|
|
|
|
|
org-agenda-files (list org-directory org-books-file)
|
|
|
|
|
;; 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/private.el/elfeed.org")
|
|
|
|
|
elfeed-dashboard-file "~/Documents/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)))
|
|
|
|
|
)
|
|
|
|
|
org-refile-targets '((org-agenda-files . (:level . 1))))
|
|
|
|
|
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
** use-package
|
|
|
|
@ -1141,8 +1157,8 @@ 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!
|
|
|
|
@ -1245,7 +1261,7 @@ From: https://yiufung.net/post/anki-org/
|
|
|
|
|
*** habits
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(setq org-habit-graph-column 80 ; prevent overwriting title
|
|
|
|
|
org-habit-show-all-today t) ; show even if DONE
|
|
|
|
|
org-habit-show-all-today nil) ; show even if DONE
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** org SUPER agenda
|
|
|
|
@ -1256,6 +1272,12 @@ From: https://yiufung.net/post/anki-org/
|
|
|
|
|
(setq org-agenda-span 'day); a week is too much
|
|
|
|
|
(setq org-super-agenda-groups
|
|
|
|
|
'((:log t :order 99); logs at bottom
|
|
|
|
|
(:name "S"
|
|
|
|
|
:order 97
|
|
|
|
|
:tag ("S"))
|
|
|
|
|
(:name "Habits"
|
|
|
|
|
:order 98
|
|
|
|
|
:habit t)
|
|
|
|
|
(:name "Today" ; today is what
|
|
|
|
|
:time-grid t ; Items that appear on the time grid
|
|
|
|
|
:scheduled today)
|
|
|
|
@ -1285,7 +1307,7 @@ From: https://yiufung.net/post/anki-org/
|
|
|
|
|
("l" . evil-forward-char)))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** org-ql
|
|
|
|
|
*** COMMENT org-ql
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package helm-org-ql :after org-ql)
|
|
|
|
|
#+end_src
|
|
|
|
@ -1350,6 +1372,27 @@ From: https://yiufung.net/post/anki-org/
|
|
|
|
|
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** COMMENT org-timeblock
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package org-timeblock
|
|
|
|
|
:straight (org-timeblock :type git
|
|
|
|
|
:host github
|
|
|
|
|
:repo "ichernyshovvv/org-timeblock"))
|
|
|
|
|
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** org-hyperscheduler
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package org-hyperscheduler
|
|
|
|
|
:straight
|
|
|
|
|
( :repo "dmitrym0/org-hyperscheduler"
|
|
|
|
|
:host github
|
|
|
|
|
:type git
|
|
|
|
|
:files ("*"))
|
|
|
|
|
:custom
|
|
|
|
|
(org-hyperscheduler-readonly-mode nil))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** 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
|
|
|
|
@ -1457,8 +1500,6 @@ Stolen from: [[https://blog.jethro.dev/posts/processing_inbox/][Org-mode Workflo
|
|
|
|
|
(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
|
|
|
|
@ -1510,7 +1551,7 @@ Stopped using this, I just use Anki like a normal person
|
|
|
|
|
#+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)
|
|
|
|
@ -1522,6 +1563,11 @@ Stopped using this, I just use Anki like a normal person
|
|
|
|
|
; 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)
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Projectile
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
@ -1572,8 +1618,10 @@ Counsel Projectile
|
|
|
|
|
(lsp-eldoc-render-all t)
|
|
|
|
|
(lsp-eldoc-enable-hover nil)
|
|
|
|
|
(lsp-ui-doc-show-with-mouse nil)
|
|
|
|
|
(lsp-keep-workspace-alive nil)
|
|
|
|
|
(lsp-idle-delay 0.6)
|
|
|
|
|
(lsp-completion-provider :none)
|
|
|
|
|
(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)
|
|
|
|
@ -1581,7 +1629,7 @@ Counsel Projectile
|
|
|
|
|
:config
|
|
|
|
|
(lsp-enable-which-key-integration t)
|
|
|
|
|
(setq lsp-headerline-breadcrumb-enable nil); anonying tabs
|
|
|
|
|
(lsp-log-io nil) ; if set to true can cause a performance hit
|
|
|
|
|
(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)
|
|
|
|
@ -1595,7 +1643,6 @@ Counsel Projectile
|
|
|
|
|
Lsp UI
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package lsp-ui
|
|
|
|
|
:ensure
|
|
|
|
|
:commands lsp-ui-mode
|
|
|
|
|
:custom
|
|
|
|
|
(lsp-ui-peek-always-show t)
|
|
|
|
@ -1629,12 +1676,32 @@ Lsp UI
|
|
|
|
|
(flycheck-info ((t (:underline (:color "#83a598" :style line :position line))))))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Origami Mode (Folding)
|
|
|
|
|
*** Hide Show
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package origami
|
|
|
|
|
:hook (prog-mode . origami-mode))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Formatting
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package format-all
|
|
|
|
|
;; :commands (format-all-mode)
|
|
|
|
|
:defer
|
|
|
|
|
:config
|
|
|
|
|
(setq my/format-all-formatters '(("Verilog" verible)))
|
|
|
|
|
:hook (prog-mode . format-all-mode)
|
|
|
|
|
(format-all-mode . (lambda () (setq format-all-formatters my/format-all-formatters)))
|
|
|
|
|
(format-all-mode . format-all-ensure-formatter))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Debug
|
|
|
|
|
Use the Debug Adapter Protocol for running tests and debugging
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package dap-mode
|
|
|
|
|
:hook
|
|
|
|
|
(lsp-mode . dap-mode)
|
|
|
|
|
(lsp-mode . dap-ui-mode))
|
|
|
|
|
#+end_src
|
|
|
|
|
** Git
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(setq vc-handled-backends '(Git))
|
|
|
|
@ -1729,7 +1796,7 @@ Get treemacs-lsp
|
|
|
|
|
: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)
|
|
|
|
@ -1747,7 +1814,7 @@ Auto format
|
|
|
|
|
:after cider)
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Rust
|
|
|
|
|
*** COMMENT Rust
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package rustic
|
|
|
|
|
:defer t
|
|
|
|
@ -1821,7 +1888,7 @@ Auto format
|
|
|
|
|
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Haskell
|
|
|
|
|
*** COMMENT Haskell
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package haskell-mode :defer t)
|
|
|
|
|
#+end_src
|
|
|
|
@ -1846,7 +1913,7 @@ Auto format
|
|
|
|
|
)
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** yaml
|
|
|
|
|
*** COMMENT yaml
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package yaml-mode
|
|
|
|
|
:hook (yaml-mode . lsp))
|
|
|
|
@ -1854,6 +1921,15 @@ Auto format
|
|
|
|
|
|
|
|
|
|
*** Web
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package typescript-mode
|
|
|
|
|
:defer t
|
|
|
|
|
|
|
|
|
|
:hook (typescript-mode . electric-pair-mode)
|
|
|
|
|
:hook (typescript-mode . setup-tide-mode)
|
|
|
|
|
:hook (typescript-mode . prettier-mode)
|
|
|
|
|
:hook (typescript-mode . lsp)
|
|
|
|
|
:config (add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-mode)))
|
|
|
|
|
|
|
|
|
|
(use-package tide
|
|
|
|
|
:defer t
|
|
|
|
|
:preface
|
|
|
|
@ -1875,11 +1951,7 @@ Auto format
|
|
|
|
|
|
|
|
|
|
;; formats the buffer before saving
|
|
|
|
|
;; (add-hook 'before-save-hook 'tide-format-before-save)
|
|
|
|
|
(add-hook 'before-save-hook 'prettier-js)
|
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . js-jsx-mode))
|
|
|
|
|
:hook(typescript-mode . setup-tide-mode)
|
|
|
|
|
:hook(typescript-mode . prettier-mode)
|
|
|
|
|
:hook(typescript-mode . lsp))
|
|
|
|
|
(add-hook 'before-save-hook 'prettier-js))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
svelte
|
|
|
|
@ -1904,7 +1976,7 @@ lsp hooks setups
|
|
|
|
|
(add-hook 'js-jsx-mode-hook 'lsp)
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Lua
|
|
|
|
|
*** COMMENT Lua
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package lua-mode
|
|
|
|
|
:hook (lua-mode . lsp))
|
|
|
|
@ -1943,15 +2015,56 @@ Better Diff in header sizes
|
|
|
|
|
(use-package geiser-guile)
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Scala
|
|
|
|
|
Scala mode for highlighting, indents and motion commands
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package scala-mode
|
|
|
|
|
:hook
|
|
|
|
|
(scala-mode . flycheck-mode)
|
|
|
|
|
(scala-mode . lsp)
|
|
|
|
|
(scala-mode . electric-pair-mode)
|
|
|
|
|
(scala-mode . (lambda ()
|
|
|
|
|
(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
|
|
|
|
|
: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)
|
|
|
|
|
;; 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)
|
|
|
|
|
#+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 cc-mode
|
|
|
|
|
:defer t
|
|
|
|
|
:hook (cc-mode . lsp)
|
|
|
|
|
:hook (c-mode . lsp)
|
|
|
|
|
(c-mode . (lambda ()
|
|
|
|
|
(add-hook 'before-save-hook 'lsp-format-buffer nil t)))
|
|
|
|
|
:hook (c++-mode . lsp))
|
|
|
|
|
: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))))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** COMMENT Ruby
|
|
|
|
@ -2017,6 +2130,7 @@ AucTex
|
|
|
|
|
(LaTeX-mode . flycheck-mode)
|
|
|
|
|
(LaTeX-mode . turn-on-reftex)
|
|
|
|
|
(LaTeX-mode . auto-fill-mode)
|
|
|
|
|
(LaTeX-mode . format-all-mode)
|
|
|
|
|
(LaTeX-mode . TeX-source-correlate-mode)
|
|
|
|
|
(LaTeX-mode . try/latex-mode-setup)
|
|
|
|
|
(LaTeX-mode . turn-on-cdlatex)
|
|
|
|
@ -2062,6 +2176,13 @@ AucTex
|
|
|
|
|
(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))))
|
|
|
|
|
|
|
|
|
|
;; to have the buffer refresh after compilation,
|
|
|
|
|
;; very important so that PDFView refesh itself after comilation
|
|
|
|
@ -2092,14 +2213,61 @@ Custom functions
|
|
|
|
|
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
|
|
|
|
|
(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")
|
|
|
|
|
|
|
|
|
|
(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" )) "\"")))
|
|
|
|
|
|
|
|
|
|
;; 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))
|
|
|
|
|
|
|
|
|
|
;; 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 ()
|
|
|
|
|
(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" )) "\"")))
|
|
|
|
|
|
|
|
|
|
;; 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))
|
|
|
|
|
|
|
|
|
|
;; 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
|
|
|
|
|
(use-package outshine
|
|
|
|
|
#+begin_src emacs-lisp :tangle no
|
|
|
|
|
(use-package outshine ;
|
|
|
|
|
:defer t
|
|
|
|
|
:config
|
|
|
|
|
(setq LaTeX-section-list '(
|
|
|
|
@ -2110,9 +2278,9 @@ Folding
|
|
|
|
|
("subsubsection" 4)
|
|
|
|
|
("paragraph" 5)
|
|
|
|
|
("subparagraph" 6)
|
|
|
|
|
("begin" 7)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
("begin" 7)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(add-hook 'LaTeX-mode-hook #'(lambda ()
|
|
|
|
|
(outshine-mode 1)
|
|
|
|
|
(setq outline-level #'LaTeX-outline-level)
|
|
|
|
@ -2120,15 +2288,15 @@ Folding
|
|
|
|
|
(setq outline-heading-alist
|
|
|
|
|
(mapcar (lambda (x)
|
|
|
|
|
(cons (concat "\\" (nth 0 x)) (nth 1 x)))
|
|
|
|
|
LaTeX-section-list))))
|
|
|
|
|
LaTeX-section-list)))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
(general-define-key
|
|
|
|
|
:states '(normal visual)
|
|
|
|
|
:keymaps 'LaTeX-mode-map
|
|
|
|
|
"TAB" '(outshine-cycle :which-key "outshine-cycle")
|
|
|
|
|
)
|
|
|
|
|
"TAB" '(outshine-cycle :which-key "outshine-cycle"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
@ -2148,7 +2316,35 @@ ivy bibtex
|
|
|
|
|
|
|
|
|
|
*** Verilog
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(setq verilog-linter "verilator --lint-only")
|
|
|
|
|
|
|
|
|
|
(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
|
|
|
|
|
(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)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#+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)))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
*** Bash
|
|
|
|
@ -2283,7 +2479,7 @@ ivy bibtex
|
|
|
|
|
(icon-color nil))
|
|
|
|
|
(if (org-clock-is-active)
|
|
|
|
|
(setq message (substring-no-properties (org-clock-get-clock-string))
|
|
|
|
|
icon ""
|
|
|
|
|
icon ""; there is an icon here, in case it isn't rendered...
|
|
|
|
|
icon-color "#BA68C8")
|
|
|
|
|
(setq message ""
|
|
|
|
|
icon ""; "";; I want it to be empty
|
|
|
|
@ -2299,6 +2495,21 @@ ivy bibtex
|
|
|
|
|
:hook (elpher-mode . olivetti-mode) )
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
** Easy hugo
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package easy-hugo
|
|
|
|
|
:init
|
|
|
|
|
(easy-hugo-enable-menu)
|
|
|
|
|
(setq easy-hugo-basedir "~/code/sites/ammar.engineer/")
|
|
|
|
|
(setq easy-hugo-postdir "content/posts")
|
|
|
|
|
(setq easy-hugo-url "https://ammar.engineer")
|
|
|
|
|
;; (setq easy-hugo-sshdomain "blogdomain")
|
|
|
|
|
;; (setq easy-hugo-root "")
|
|
|
|
|
(setq easy-hugo-previewtime "300"))
|
|
|
|
|
;:bind
|
|
|
|
|
;("C-c C-e" . easy-hugo))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
* Elfeed org
|
|
|
|
|
=;; (setq rmh-elfeed-org-files (list "~/Documents/private.el/elfeed.org"))=
|
|
|
|
|
** Elfeed-org
|
|
|
|
@ -2538,6 +2749,10 @@ I wrote that, neat isn't it? :P
|
|
|
|
|
;; this line is for nixos
|
|
|
|
|
;; until here
|
|
|
|
|
;;:ensure-system-package mu
|
|
|
|
|
:init
|
|
|
|
|
(defun mu4e--main-action-str (str &optional func-or-shortcut))
|
|
|
|
|
(defun evil-collection-mu4e-update-main-view@override())
|
|
|
|
|
(advice-add 'evil-collection-mu4e-update-main-view :override #'evil-collection-mu4e-update-main-view@override)
|
|
|
|
|
:commands (mu4e)
|
|
|
|
|
:bind (:map mu4e-main-mode-map
|
|
|
|
|
([remap revert-buffer] . mu4e-update-index))
|
|
|
|
@ -2590,7 +2805,8 @@ I wrote that, neat isn't it? :P
|
|
|
|
|
`(
|
|
|
|
|
(mu4e-bookmarks .
|
|
|
|
|
,`(
|
|
|
|
|
(:name "All Unread messages" :query ,"flag:unread AND NOT flag:trashed AND NOT flag:list" :key ?a)
|
|
|
|
|
;(:name "All Unread messages" :query ,"flag:unread AND NOT flag:trashed AND NOT flag:list" :key ?a)
|
|
|
|
|
(:name "All Unread messages" :query ,"flag:unread AND NOT flag:trashed" :key ?a)
|
|
|
|
|
(:name "Unread messages" :query ,(concat "flag:unread AND NOT flag:trashed" context-filter) :key ?u)
|
|
|
|
|
(:name "Inbox" :query ,(concat "maildir:/Inbox/" context-filter) :key ?i)
|
|
|
|
|
(:name "Today's messages" :query ,(concat "date:today..now" context-filter) :key ?t)
|
|
|
|
@ -2683,7 +2899,7 @@ I prefer text/plain, over everything >:)
|
|
|
|
|
|
|
|
|
|
** Send email (msmtp)
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(setq sendmail-program (executable-find "msmtp") ;"/usr/bin/msmtp"
|
|
|
|
|
(setq sendmail-program (executable-find "msmtp") ;"/usr/bin/msmtp"
|
|
|
|
|
message-sendmail-f-is-evil t
|
|
|
|
|
message-sendmail-extra-arguments '("--read-envelope-from")
|
|
|
|
|
send-mail-function 'smtpmail-send-it
|
|
|
|
@ -2717,7 +2933,7 @@ I prefer text/plain, over everything >:)
|
|
|
|
|
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
* Matrix Ement
|
|
|
|
|
* COMMENT Matrix Ement
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
|
(use-package ement
|
|
|
|
|
:straight (ement
|
|
|
|
@ -2765,5 +2981,3 @@ I prefer text/plain, over everything >:)
|
|
|
|
|
(setq dashboard-projects-switch-function 'counsel-projectile-switch-project-by-name))
|
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|