Update emacs.org
This commit is contained in:
parent
0ec0250dd9
commit
e506934b72
1 changed files with 245 additions and 136 deletions
|
@ -3,6 +3,11 @@
|
||||||
|
|
||||||
* Usage
|
* Usage
|
||||||
M-x org-bable-tangle
|
M-x org-bable-tangle
|
||||||
|
* Lexical Binding
|
||||||
|
Should make startup faster, taken from doom-emacs
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
;; -*- lexical-binding: t; -*-
|
||||||
|
#+end_src
|
||||||
* Default Enconding
|
* Default Enconding
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(setq utf-translate-cjk-mode nil) ; disable CJK coding/encoding (Chinese/Japanese/Korean characters)
|
(setq utf-translate-cjk-mode nil) ; disable CJK coding/encoding (Chinese/Japanese/Korean characters)
|
||||||
|
@ -70,9 +75,35 @@ M-x org-bable-tangle
|
||||||
#+end_src
|
#+end_src
|
||||||
* Fonts
|
* Fonts
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(set-face-attribute `default nil :font "JetBrains Mono" :height 140)
|
(set-face-attribute `default nil :font "JetBrains Mono" :height 130)
|
||||||
#+end_src
|
#+end_src
|
||||||
* Package setup
|
* SPEED SPEED SPEED SPEED
|
||||||
|
Most of these are taken from Doom-Emacs!
|
||||||
|
https://github.com/doomemacs/doomemacs/blob/develop/docs/faq.org#how-does-doom-start-up-so-quickly
|
||||||
|
Theres also Centaur Emacs
|
||||||
|
https://github.com/seagle0128/.emacs.d
|
||||||
|
** Avoid Garbage Collection at startup
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package gcmh
|
||||||
|
:init
|
||||||
|
(gcmh-mode 1))
|
||||||
|
(add-hook 'emacs-startup-hook (gcmh-mode 1))
|
||||||
|
#+end_src
|
||||||
|
** Move Garbage collection further back
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(setq gc-cons-threshold most-positive-fixnum)
|
||||||
|
#+end_src
|
||||||
|
** Unset file-name-handler-alist temporarily
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defvar sakomacs--file-name-handler-alist file-name-handler-alist)
|
||||||
|
(setq file-name-handler-alist nil)
|
||||||
|
|
||||||
|
;; Alternatively, restore it even later:
|
||||||
|
(add-hook 'emacs-startup-hook
|
||||||
|
(lambda ()
|
||||||
|
(setq file-name-handler-alist sakomacs--file-name-handler-alist)))
|
||||||
|
#+end_src
|
||||||
|
* Use-Package setup
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(require `package)
|
(require `package)
|
||||||
|
|
||||||
|
@ -91,54 +122,79 @@ M-x org-bable-tangle
|
||||||
(require 'use-package)
|
(require 'use-package)
|
||||||
(setq use-package-always-ensure t)
|
(setq use-package-always-ensure t)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
* Straight.el setup
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defvar bootstrap-version)
|
||||||
|
(let ((bootstrap-file
|
||||||
|
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
||||||
|
(bootstrap-version 6))
|
||||||
|
(unless (file-exists-p bootstrap-file)
|
||||||
|
(with-current-buffer
|
||||||
|
(url-retrieve-synchronously
|
||||||
|
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
||||||
|
'silent 'inhibit-cookies)
|
||||||
|
(goto-char (point-max))
|
||||||
|
(eval-print-last-sexp)))
|
||||||
|
(load bootstrap-file nil 'nomessage))
|
||||||
|
#+end_src
|
||||||
* Packages
|
* Packages
|
||||||
** Command Log Mode
|
** Command Log Mode
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package command-log-mode)
|
(use-package command-log-mode
|
||||||
|
:straight t
|
||||||
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
** Command Autocompletion Packages
|
** Command Autocompletion Packages
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
;; better search
|
;; better search
|
||||||
(use-package swiper)
|
(use-package swiper
|
||||||
;; better commands
|
:straight t
|
||||||
(use-package counsel)
|
)
|
||||||
;; autocompletion on commands (?)
|
;; better commands
|
||||||
(use-package ivy
|
(use-package counsel
|
||||||
:diminish
|
:straight t
|
||||||
:bind (("C-s" . swiper)
|
)
|
||||||
:map ivy-minibuffer-map
|
;; autocompletion on commands (?)
|
||||||
("TAB" . ivy-alt-done)
|
(use-package ivy
|
||||||
("C-l" . ivy-alt-done)
|
:diminish
|
||||||
("C-j" . ivy-next-line)
|
:straight t
|
||||||
("C-k" . ivy-previous-line)
|
:bind (("C-s" . swiper)
|
||||||
:map ivy-switch-buffer-map
|
:map ivy-minibuffer-map
|
||||||
("C-k" . ivy-previous-line)
|
("TAB" . ivy-alt-done)
|
||||||
("C-l" . ivy-done)
|
("C-l" . ivy-alt-done)
|
||||||
("C-d" . ivy-switch-buffer-kill)
|
("C-j" . ivy-next-line)
|
||||||
:map ivy-reverse-i-search-map
|
("C-k" . ivy-previous-line)
|
||||||
("C-k" . ivy-previous-line)
|
:map ivy-switch-buffer-map
|
||||||
("C-d" . ivy-reverse-i-search-kill))
|
("C-k" . ivy-previous-line)
|
||||||
:demand
|
("C-l" . ivy-done)
|
||||||
:config
|
("C-d" . ivy-switch-buffer-kill)
|
||||||
(ivy-mode 1))
|
:map ivy-reverse-i-search-map
|
||||||
;; better ivy autocompletion
|
("C-k" . ivy-previous-line)
|
||||||
(use-package ivy-rich
|
("C-d" . ivy-reverse-i-search-kill))
|
||||||
:init
|
:demand
|
||||||
(ivy-rich-mode 1))
|
:config
|
||||||
|
(ivy-mode 1))
|
||||||
|
;; better ivy autocompletion
|
||||||
|
(use-package ivy-rich
|
||||||
|
:straight t
|
||||||
|
:init
|
||||||
|
(ivy-rich-mode 1))
|
||||||
|
|
||||||
;; counsel M+X
|
;; counsel M+X
|
||||||
(use-package counsel
|
(use-package counsel
|
||||||
:bind (("M-x" . counsel-M-x)
|
:straight t
|
||||||
("C-x b" . counsel-ibuffer)
|
:bind (("M-x" . counsel-M-x)
|
||||||
("C-x C-f" . counsel-find-file)
|
("C-x b" . counsel-ibuffer)
|
||||||
:map minibuffer-local-map
|
("C-x C-f" . counsel-find-file)
|
||||||
("C-r" . 'counsel-minibuffer-history))
|
:map minibuffer-local-map
|
||||||
:config
|
("C-r" . 'counsel-minibuffer-history))
|
||||||
(setq ivy-inital-inputs-alist nil))
|
:config
|
||||||
|
(setq ivy-inital-inputs-alist nil))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Custom Themes
|
** Custom Themes
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package doom-themes
|
(use-package doom-themes
|
||||||
|
:straight t
|
||||||
:ensure t
|
:ensure t
|
||||||
:config
|
:config
|
||||||
;; Global settings (defaults)
|
;; Global settings (defaults)
|
||||||
|
@ -160,6 +216,7 @@ M-x org-bable-tangle
|
||||||
** Nerd-Fonts (All of the Icons doesnt work for me)
|
** Nerd-Fonts (All of the Icons doesnt work for me)
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package nerd-icons
|
(use-package nerd-icons
|
||||||
|
:straight t
|
||||||
:custom
|
:custom
|
||||||
;; "Symbols Nerd Font Mono" is the default and is recommended
|
;; "Symbols Nerd Font Mono" is the default and is recommended
|
||||||
;; but you can use any other Nerd Font if you want
|
;; but you can use any other Nerd Font if you want
|
||||||
|
@ -167,30 +224,33 @@ M-x org-bable-tangle
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
** Rainbow Delimiters
|
** Rainbow Delimiters
|
||||||
**** TODO find something like this for other languages
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package rainbow-delimiters
|
(use-package rainbow-delimiters
|
||||||
|
:straight t
|
||||||
:hook (prog-mode . rainbow-delimiters-mode))
|
:hook (prog-mode . rainbow-delimiters-mode))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Keybinding autocompletion
|
** Keybinding autocompletion
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package which-key
|
(use-package which-key
|
||||||
:init (which-key-mode)
|
:straight t
|
||||||
:diminish which-key-mode
|
:init (which-key-mode)
|
||||||
:config
|
:diminish which-key-mode
|
||||||
(setq which-key-idle-delay 1))
|
:config
|
||||||
|
(setq which-key-idle-delay 1))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Custom Modeline
|
** Custom Modeline
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package doom-modeline
|
(use-package doom-modeline
|
||||||
:ensure t
|
:ensure t
|
||||||
:init (doom-modeline-mode 1)
|
:straight t
|
||||||
:custom ((doom-modeline-height 30)))
|
:init (doom-modeline-mode 1)
|
||||||
|
:custom ((doom-modeline-height 30)))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Better help menu
|
** Better help menu
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package helpful
|
(use-package helpful
|
||||||
:ensure t
|
:ensure t
|
||||||
|
:straight t
|
||||||
:custom
|
:custom
|
||||||
(counsel-describe-function-function #'helpful-callable)
|
(counsel-describe-function-function #'helpful-callable)
|
||||||
(counsel-describe-variable-function #'helpful-variable)
|
(counsel-describe-variable-function #'helpful-variable)
|
||||||
|
@ -203,6 +263,7 @@ M-x org-bable-tangle
|
||||||
** General Leader Key
|
** General Leader Key
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package general
|
(use-package general
|
||||||
|
:straight t
|
||||||
:config
|
:config
|
||||||
(general-create-definer sakomacs/leader-keys
|
(general-create-definer sakomacs/leader-keys
|
||||||
:keymaps `(normal insert visual emacs)
|
:keymaps `(normal insert visual emacs)
|
||||||
|
@ -223,84 +284,91 @@ M-x org-bable-tangle
|
||||||
#+end_src
|
#+end_src
|
||||||
** Emacs-Dashboard
|
** Emacs-Dashboard
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package dashboard
|
(use-package dashboard
|
||||||
:ensure t
|
:ensure t
|
||||||
:config
|
:straight t
|
||||||
(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*")))
|
:config
|
||||||
;; Configuration of Dashboard
|
(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*")))
|
||||||
(setq dashboard-display-icons-p t) ;; display icons on both GUI and terminal
|
;; Configuration of Dashboard
|
||||||
(setq dashboard-icon-type 'nerd-icons) ;; use `nerd-icons' package
|
(setq dashboard-display-icons-p t) ;; display icons on both GUI and terminal
|
||||||
;; Set the title
|
(setq dashboard-icon-type 'nerd-icons) ;; use `nerd-icons' package
|
||||||
(setq dashboard-banner-logo-title "Emacs is vscode for nerds")
|
;; Set the title
|
||||||
;; Set the banner
|
(setq dashboard-banner-logo-title "Emacs is vscode for nerds")
|
||||||
(setq dashboard-startup-banner 'official)
|
;; Set the banner
|
||||||
;; center everything
|
(setq dashboard-startup-banner 'official)
|
||||||
(setq dashboard-center-content t)
|
;; center everything
|
||||||
;; jump thing
|
(setq dashboard-center-content t)
|
||||||
(setq dashboard-show-shortcuts nil)
|
;; jump thing
|
||||||
(setq dashboard-items '((projects . 5)
|
(setq dashboard-show-shortcuts nil)
|
||||||
(agenda . 5)))
|
(setq dashboard-items '((projects . 5)
|
||||||
(setq dashboard-projects-switch-function 'counsel-projectile-switch-project-by-name)
|
(agenda . 5)))
|
||||||
(setq dashboard-footer-messages '("I think I have Emacs pinky!"))
|
(setq dashboard-projects-switch-function 'counsel-projectile-switch-project-by-name)
|
||||||
(dashboard-setup-startup-hook))
|
(setq dashboard-footer-messages '("I think I have Emacs pinky!"))
|
||||||
|
(dashboard-setup-startup-hook))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Evil Mode (vim)
|
** Evil Mode (vim)
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package evil
|
(use-package evil
|
||||||
:init
|
:straight t
|
||||||
(setq evil-want-integration t)
|
:init
|
||||||
(setq evil-want-keybinding nil)
|
(setq evil-want-integration t)
|
||||||
(setq evil-want-C-u-scroll t)
|
(setq evil-want-keybinding nil)
|
||||||
(setq evil-want-C-i-jump nil)
|
(setq evil-want-C-u-scroll t)
|
||||||
:hook (evil-mode . sakomacs/evil-hook)
|
(setq evil-want-C-i-jump nil)
|
||||||
:ensure t
|
:hook (evil-mode . sakomacs/evil-hook)
|
||||||
:demand
|
:ensure t
|
||||||
:config
|
:demand
|
||||||
(evil-mode 1)
|
:config
|
||||||
(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
|
(evil-mode 1)
|
||||||
(define-key evil-insert-state-map (kbd "C-h") `evil-delete-backward-char-and-join)
|
(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
|
||||||
|
(define-key evil-insert-state-map (kbd "C-h") `evil-delete-backward-char-and-join)
|
||||||
|
|
||||||
;; visual line motion
|
;; visual line motion
|
||||||
(evil-global-set-key 'motion "j" 'evil-next-visual-line)
|
(evil-global-set-key 'motion "j" 'evil-next-visual-line)
|
||||||
(evil-global-set-key 'motion "k" 'evil-previous-visual-line)
|
(evil-global-set-key 'motion "k" 'evil-previous-visual-line)
|
||||||
|
|
||||||
(evil-set-initial-state 'messages-buffer-mode 'normal)
|
(evil-set-initial-state 'messages-buffer-mode 'normal)
|
||||||
(evil-set-initial-state 'dashboard-mode 'normal))
|
(evil-set-initial-state 'dashboard-mode 'normal))
|
||||||
|
|
||||||
;; extra things for Evil
|
;; extra things for Evil
|
||||||
(use-package evil-collection
|
(use-package evil-collection
|
||||||
:after evil
|
:straight t
|
||||||
:config
|
:after evil
|
||||||
(evil-collection-init))
|
:config
|
||||||
|
(evil-collection-init))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Hydra for scaling text
|
** Hydra for scaling text
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package hydra)
|
(use-package hydra
|
||||||
(defhydra hydra-text-scale (:timeout 4)
|
:straight t
|
||||||
"scale text"
|
)
|
||||||
("j" text-scale-increase "in")
|
(defhydra hydra-text-scale (:timeout 4)
|
||||||
("k" text-scale-decrease "out")
|
"scale text"
|
||||||
("f" nil "finished" :exit t))
|
("j" text-scale-increase "in")
|
||||||
|
("k" text-scale-decrease "out")
|
||||||
|
("f" nil "finished" :exit t))
|
||||||
|
|
||||||
(sakomacs/leader-keys
|
(sakomacs/leader-keys
|
||||||
"ts" '(hydra-text-scale/body :which-key "scale text"))
|
"ts" '(hydra-text-scale/body :which-key "scale text"))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Helpful for projects
|
** Helpful for projects
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package projectile
|
(use-package projectile
|
||||||
:diminish projectile-mode
|
:straight t
|
||||||
:demand
|
:diminish projectile-mode
|
||||||
:config (projectile-mode)
|
:demand
|
||||||
:custom ((projectile-completion-system 'ivy))
|
:config (projectile-mode)
|
||||||
:bind-keymap
|
:custom ((projectile-completion-system 'ivy))
|
||||||
("C-c p" . projectile-command-map)
|
:bind-keymap
|
||||||
:init
|
("C-c p" . projectile-command-map)
|
||||||
(when (file-directory-p "~/dev")
|
:init
|
||||||
(setq projectile-project-search-path '("~/dev")))
|
(when (file-directory-p "~/dev")
|
||||||
(setq projectile-switch-project-action #'projectile-dired))
|
(setq projectile-project-search-path '("~/dev")))
|
||||||
|
(setq projectile-switch-project-action #'projectile-dired))
|
||||||
|
|
||||||
(use-package counsel-projectile
|
(use-package counsel-projectile
|
||||||
:config (counsel-projectile-mode))
|
:straight t
|
||||||
|
:config (counsel-projectile-mode))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Org-Mode
|
** Org-Mode
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
@ -310,6 +378,7 @@ M-x org-bable-tangle
|
||||||
(visual-line-mode 1))
|
(visual-line-mode 1))
|
||||||
|
|
||||||
(use-package org
|
(use-package org
|
||||||
|
:straight t
|
||||||
:hook (org-mode . sakomacs/org-mode-setup)
|
:hook (org-mode . sakomacs/org-mode-setup)
|
||||||
:config
|
:config
|
||||||
(setq org-ellipsis "▼")
|
(setq org-ellipsis "▼")
|
||||||
|
@ -461,6 +530,7 @@ M-x org-bable-tangle
|
||||||
** Org-Roam
|
** Org-Roam
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package org-roam
|
(use-package org-roam
|
||||||
|
:straight t
|
||||||
:ensure t
|
:ensure t
|
||||||
:custom
|
:custom
|
||||||
(org-roam-directory "~/org"
|
(org-roam-directory "~/org"
|
||||||
|
@ -475,6 +545,7 @@ M-x org-bable-tangle
|
||||||
(use-package treemacs
|
(use-package treemacs
|
||||||
:ensure t
|
:ensure t
|
||||||
:defer t
|
:defer t
|
||||||
|
:straight t
|
||||||
:init
|
:init
|
||||||
(with-eval-after-load 'winum
|
(with-eval-after-load 'winum
|
||||||
(define-key winum-keymap (kbd "M-0") #'treemacs-select-window))
|
(define-key winum-keymap (kbd "M-0") #'treemacs-select-window))
|
||||||
|
@ -564,14 +635,17 @@ M-x org-bable-tangle
|
||||||
|
|
||||||
(use-package treemacs-evil
|
(use-package treemacs-evil
|
||||||
:after (treemacs evil)
|
:after (treemacs evil)
|
||||||
|
:straight t
|
||||||
:ensure t)
|
:ensure t)
|
||||||
|
|
||||||
(use-package treemacs-projectile
|
(use-package treemacs-projectile
|
||||||
:after (treemacs projectile)
|
:after (treemacs projectile)
|
||||||
|
:straight t
|
||||||
:ensure t)
|
:ensure t)
|
||||||
|
|
||||||
(use-package treemacs-magit
|
(use-package treemacs-magit
|
||||||
:after (treemacs magit)
|
:after (treemacs magit)
|
||||||
|
:straight t
|
||||||
:ensure t)
|
:ensure t)
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
@ -579,6 +653,7 @@ M-x org-bable-tangle
|
||||||
*** Magit (git in emacs)
|
*** Magit (git in emacs)
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package magit
|
(use-package magit
|
||||||
|
:straight t
|
||||||
:custom
|
:custom
|
||||||
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)
|
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)
|
||||||
)
|
)
|
||||||
|
@ -587,51 +662,59 @@ M-x org-bable-tangle
|
||||||
make sure to setup authinfo
|
make sure to setup authinfo
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package forge
|
(use-package forge
|
||||||
|
:straight t
|
||||||
:after magit)
|
:after magit)
|
||||||
(setq auth-sources '("~/.authinfo"))
|
(setq auth-sources '("~/.authinfo"))
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Direnv
|
*** Direnv
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package direnv
|
(use-package direnv
|
||||||
|
:straight t
|
||||||
:config
|
:config
|
||||||
(direnv-mode))
|
(direnv-mode))
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Lsp-mode
|
*** Lsp-mode
|
||||||
**** Language Servers
|
**** Language Servers
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun sakomacs/lsp-mode-setup ()
|
(defun sakomacs/lsp-mode-setup ()
|
||||||
(setq lsp-headerline-breadcrumb-segments '(path-up-to-project file symbols))
|
(setq lsp-headerline-breadcrumb-segments '(path-up-to-project file symbols))
|
||||||
(lsp-headerline-breadcrumb-mode))
|
(lsp-headerline-breadcrumb-mode))
|
||||||
|
|
||||||
(use-package lsp-mode
|
(use-package lsp-mode
|
||||||
:commands (lsp lsp-deferred)
|
:straight t
|
||||||
:hook (lsp-mode . sakomacs/lsp-mode-setup)
|
:commands (lsp lsp-deferred)
|
||||||
:init
|
:hook (lsp-mode . sakomacs/lsp-mode-setup)
|
||||||
(setq lsp-keymap-prefix "C-c l")
|
:init
|
||||||
:config
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
(lsp-enable-which-key-integration t)
|
:config
|
||||||
(setq lsp-keep-workspace-alive nil))
|
(lsp-enable-which-key-integration t)
|
||||||
|
(setq lsp-keep-workspace-alive nil))
|
||||||
#+end_src
|
#+end_src
|
||||||
**** Lsp-ui
|
**** Lsp-ui
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package lsp-ui
|
(use-package lsp-ui
|
||||||
:hook (lsp-mode . lsp-ui-mode)
|
:hook (lsp-mode . lsp-ui-mode)
|
||||||
|
:straight t
|
||||||
:custom
|
:custom
|
||||||
(lsp-ui-doc-position 'bottom))
|
(lsp-ui-doc-position 'bottom))
|
||||||
#+end_src
|
#+end_src
|
||||||
**** Treemacs Lsp
|
**** Treemacs Lsp
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package lsp-treemacs
|
(use-package lsp-treemacs
|
||||||
|
:straight t
|
||||||
:after lsp)
|
:after lsp)
|
||||||
#+end_src
|
#+end_src
|
||||||
**** lsp-ivy
|
**** lsp-ivy
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package lsp-ivy)
|
(use-package lsp-ivy
|
||||||
|
:straight t
|
||||||
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
**** Languages
|
**** Languages
|
||||||
***** HTML/CSS
|
***** HTML/CSS
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package web-mode
|
(use-package web-mode
|
||||||
|
:straight t
|
||||||
:hook (web-mode . lsp)
|
:hook (web-mode . lsp)
|
||||||
:mode ("\\.html\\'"
|
:mode ("\\.html\\'"
|
||||||
"\\.css\\'"))
|
"\\.css\\'"))
|
||||||
|
@ -639,6 +722,7 @@ make sure to setup authinfo
|
||||||
***** Javascript
|
***** Javascript
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package js2-mode
|
(use-package js2-mode
|
||||||
|
:straight t
|
||||||
:mode "\\.js\\'"
|
:mode "\\.js\\'"
|
||||||
:hook (js2-mode . lsp))
|
:hook (js2-mode . lsp))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
@ -651,16 +735,19 @@ make sure to setup authinfo
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package cmake-mode
|
(use-package cmake-mode
|
||||||
:mode "CMakeLists.txt"
|
:mode "CMakeLists.txt"
|
||||||
|
:straight t
|
||||||
:hook (cmake-mode . lsp))
|
:hook (cmake-mode . lsp))
|
||||||
#+end_src
|
#+end_src
|
||||||
***** Python
|
***** Python
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package python-mode
|
(use-package python-mode
|
||||||
:mode "\\.py\\'"
|
:mode "\\.py\\'"
|
||||||
|
:straight t
|
||||||
:hook (python-mode . lsp))
|
:hook (python-mode . lsp))
|
||||||
|
|
||||||
(use-package elpy
|
(use-package elpy
|
||||||
:after python-mode
|
:after python-mode
|
||||||
|
:straight t
|
||||||
|
|
||||||
:custom
|
:custom
|
||||||
(elpy-rpc-python-command "python3")
|
(elpy-rpc-python-command "python3")
|
||||||
|
@ -670,6 +757,7 @@ make sure to setup authinfo
|
||||||
|
|
||||||
(use-package lsp-pyright
|
(use-package lsp-pyright
|
||||||
:ensure t
|
:ensure t
|
||||||
|
:straight t
|
||||||
:hook (python-mode . (lambda ()
|
:hook (python-mode . (lambda ()
|
||||||
(require 'lsp-pyright)
|
(require 'lsp-pyright)
|
||||||
(lsp)))) ; or lsp-deferred
|
(lsp)))) ; or lsp-deferred
|
||||||
|
@ -678,17 +766,20 @@ make sure to setup authinfo
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package haskell-mode
|
(use-package haskell-mode
|
||||||
:mode "\\.hs\\'"
|
:mode "\\.hs\\'"
|
||||||
|
:straight t
|
||||||
:hook (python-mode . lsp))
|
:hook (python-mode . lsp))
|
||||||
#+end_src
|
#+end_src
|
||||||
***** Yaml editing
|
***** Yaml editing
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package yaml-mode
|
(use-package yaml-mode
|
||||||
|
:straight t
|
||||||
:mode ("\\.yaml\\'"
|
:mode ("\\.yaml\\'"
|
||||||
"\\.yml\\'"))
|
"\\.yml\\'"))
|
||||||
#+end_src
|
#+end_src
|
||||||
***** Nix
|
***** Nix
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package nix-mode
|
(use-package nix-mode
|
||||||
|
:straight t
|
||||||
:hook ((nix-mode . lsp)
|
:hook ((nix-mode . lsp)
|
||||||
(nix-mode . format-all-mode)
|
(nix-mode . format-all-mode)
|
||||||
(nix-mode . (lambda () (setq-local format-all-formatters '(("Nix" alejandra))))))
|
(nix-mode . (lambda () (setq-local format-all-formatters '(("Nix" alejandra))))))
|
||||||
|
@ -697,17 +788,20 @@ make sure to setup authinfo
|
||||||
***** Dart
|
***** Dart
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package dart-mode
|
(use-package dart-mode
|
||||||
|
:straight t
|
||||||
:hook (dart-mode . lsp)
|
:hook (dart-mode . lsp)
|
||||||
:mode "\\.dart\\'" )
|
:mode "\\.dart\\'" )
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Commenter
|
*** Commenter
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package evil-nerd-commenter
|
(use-package evil-nerd-commenter
|
||||||
|
:straight t
|
||||||
:bind ("M-/" . evilnc-comment-or-uncomment-lines))
|
:bind ("M-/" . evilnc-comment-or-uncomment-lines))
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Company Mode (Better Autocompletion)
|
*** Company Mode (Better Autocompletion)
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package company
|
(use-package company
|
||||||
|
:straight t
|
||||||
:after lsp-mode
|
:after lsp-mode
|
||||||
:hook (lsp-mode . company-mode)
|
:hook (lsp-mode . company-mode)
|
||||||
:bind (:map company-active-map
|
:bind (:map company-active-map
|
||||||
|
@ -719,11 +813,14 @@ make sure to setup authinfo
|
||||||
(company-idle-delay 0.0))
|
(company-idle-delay 0.0))
|
||||||
|
|
||||||
(use-package company-box
|
(use-package company-box
|
||||||
|
:straight t
|
||||||
:hook (company-mode . company-box-mode))
|
:hook (company-mode . company-box-mode))
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Formatting
|
*** Formatting
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package format-all)
|
(use-package format-all
|
||||||
|
:straight t
|
||||||
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
** Dired (quick file management in emacs)
|
** Dired (quick file management in emacs)
|
||||||
Dired is a built-in file manager for Emacs that does some pretty amazing things! Here are some key bindings you should try out:
|
Dired is a built-in file manager for Emacs that does some pretty amazing things! Here are some key bindings you should try out:
|
||||||
|
@ -787,6 +884,7 @@ Dired is a built-in file manager for Emacs that does some pretty amazing things!
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package dired
|
(use-package dired
|
||||||
:ensure nil
|
:ensure nil
|
||||||
|
:straight t
|
||||||
:commands (dired dired-jump)
|
:commands (dired dired-jump)
|
||||||
:bind (("C-x C-j" . dired-jump))
|
:bind (("C-x C-j" . dired-jump))
|
||||||
:custom ((dired-listing-switches "-agho --group-directories-first"))
|
:custom ((dired-listing-switches "-agho --group-directories-first"))
|
||||||
|
@ -810,22 +908,27 @@ Dired is a built-in file manager for Emacs that does some pretty amazing things!
|
||||||
#+end_src
|
#+end_src
|
||||||
** Folder Cleaning
|
** Folder Cleaning
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
;; NOTE: If you want to move everything out of the ~/.emacs.d folder
|
;; NOTE: If you want to move everything out of the ~/.emacs.d folder
|
||||||
;; reliably, set `user-emacs-directory` before loading no-littering!
|
;; reliably, set `user-emacs-directory` before loading no-littering!
|
||||||
;(setq user-emacs-directory "~/.cache/emacs")
|
;(setq user-emacs-directory "~/.cache/emacs")
|
||||||
|
|
||||||
(use-package no-littering)
|
(use-package no-littering
|
||||||
|
:straight t
|
||||||
|
)
|
||||||
|
|
||||||
;; no-littering doesn't set this by default so we must place
|
;; no-littering doesn't set this by default so we must place
|
||||||
;; auto save files in the same path as it uses for sessions
|
;; auto save files in the same path as it uses for sessions
|
||||||
(setq auto-save-file-name-transforms
|
(setq auto-save-file-name-transforms
|
||||||
`((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))
|
`((".*" ,(no-littering-expand-var-file-name "auto-save/") t)))
|
||||||
#+end_src
|
#+end_src
|
||||||
** RSS Reader
|
** RSS Reader
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package elfeed)
|
(use-package elfeed
|
||||||
|
:straight t
|
||||||
|
)
|
||||||
|
|
||||||
(use-package elfeed-goodies
|
(use-package elfeed-goodies
|
||||||
|
:straight t
|
||||||
:after elfeed
|
:after elfeed
|
||||||
:ensure t
|
:ensure t
|
||||||
:init
|
:init
|
||||||
|
@ -833,6 +936,7 @@ Dired is a built-in file manager for Emacs that does some pretty amazing things!
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package elfeed-protocol
|
(use-package elfeed-protocol
|
||||||
|
:straight t
|
||||||
:after elfeed
|
:after elfeed
|
||||||
:ensure t
|
:ensure t
|
||||||
:config
|
:config
|
||||||
|
@ -868,7 +972,9 @@ Dired is a built-in file manager for Emacs that does some pretty amazing things!
|
||||||
** Telegram
|
** Telegram
|
||||||
only god knows why im doing this
|
only god knows why im doing this
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package telega)
|
(use-package telega
|
||||||
|
:straight t
|
||||||
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
* Org Mode Configuration Setup
|
* Org Mode Configuration Setup
|
||||||
** Babel Languages
|
** Babel Languages
|
||||||
|
@ -893,6 +999,7 @@ only god knows why im doing this
|
||||||
** term-mode
|
** term-mode
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package term
|
(use-package term
|
||||||
|
:straight t
|
||||||
:config
|
:config
|
||||||
(setq explicit-shell-file-name "zsh"))
|
(setq explicit-shell-file-name "zsh"))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
@ -919,6 +1026,7 @@ god dammit why are they making my shells in emacs lisp
|
||||||
(use-package eshell-git-prompt)
|
(use-package eshell-git-prompt)
|
||||||
|
|
||||||
(use-package eshell
|
(use-package eshell
|
||||||
|
:straight t
|
||||||
:hook (eshell-first-time-mode . sakomacs/configure-eshell)
|
:hook (eshell-first-time-mode . sakomacs/configure-eshell)
|
||||||
:config
|
:config
|
||||||
|
|
||||||
|
@ -932,6 +1040,7 @@ god dammit why are they making my shells in emacs lisp
|
||||||
** VTerm
|
** VTerm
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package vterm
|
(use-package vterm
|
||||||
|
:straight t
|
||||||
:commands vterm
|
:commands vterm
|
||||||
:config
|
:config
|
||||||
(setq vterm-max-scrollback 10000))
|
(setq vterm-max-scrollback 10000))
|
||||||
|
|
Loading…
Reference in a new issue