Update emacs.org

This commit is contained in:
Sako 2023-11-12 00:03:13 +04:00 committed by GitHub
parent 0ec0250dd9
commit e506934b72
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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))