home: update emacs and some other configs
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
		@@ -17,10 +17,11 @@
 | 
			
		||||
(tool-bar-mode 0)
 | 
			
		||||
(menu-bar-mode 0)
 | 
			
		||||
(fringe-mode 0)
 | 
			
		||||
;; (cua-mode 1)
 | 
			
		||||
(global-display-line-numbers-mode 1)
 | 
			
		||||
(xterm-mouse-mode 1)
 | 
			
		||||
(setq ring-bell-function 'ignore)
 | 
			
		||||
(setq ring-bell-function 'ignore
 | 
			
		||||
      gc-cons-threshold most-positive-fixnum
 | 
			
		||||
      initial-major-mode 'fundamental-mode)
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Setting some variables
 | 
			
		||||
@@ -49,6 +50,11 @@
 | 
			
		||||
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
 | 
			
		||||
(package-initialize)
 | 
			
		||||
(require 'use-package)
 | 
			
		||||
(use-package benchmark-init
 | 
			
		||||
  :ensure t
 | 
			
		||||
  :config
 | 
			
		||||
  ;; To disable collection of benchmark data after init is done.
 | 
			
		||||
  (add-hook 'after-init-hook 'benchmark-init/deactivate))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Visual packages
 | 
			
		||||
@@ -143,30 +149,27 @@ To undo and redo easily like vi
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package treemacs-evil)
 | 
			
		||||
(use-package treemacs-magit)
 | 
			
		||||
(use-package treemacs-projectile)
 | 
			
		||||
(use-package treemacs-all-the-icons)
 | 
			
		||||
(use-package treemacs-evil :defer t)
 | 
			
		||||
(use-package treemacs-magit :defer t)
 | 
			
		||||
(use-package treemacs-projectile :defer t)
 | 
			
		||||
(use-package treemacs-all-the-icons :defer t)
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** LSP
 | 
			
		||||
*** Configure lsp-mode
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package lsp-mode
 | 
			
		||||
  :defer 0
 | 
			
		||||
  :commands lsp
 | 
			
		||||
  :custom
 | 
			
		||||
  (lsp-rust-analyzer-server-display-inlay-hints t)
 | 
			
		||||
  (lsp-rust-analyzer-display-chaining-hints t)
 | 
			
		||||
  (lsp-rust-analyzer-display-closure-return-type-hints t))
 | 
			
		||||
  :commands lsp)
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Configure lsp-ui
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package lsp-ui
 | 
			
		||||
  :defer 0
 | 
			
		||||
  :init
 | 
			
		||||
  (setq lsp-ui-doc-show-with-cursor t)
 | 
			
		||||
  (setq lsp-ui-doc-delay 1.0
 | 
			
		||||
        lsp-ui-doc-show-with-mouse t
 | 
			
		||||
        pgtk-wait-for-event-timeout nil
 | 
			
		||||
        lsp-ui-doc-show-with-cursor t)
 | 
			
		||||
  :config
 | 
			
		||||
  (lsp-ui-peek-enable 1)
 | 
			
		||||
  (lsp-ui-doc-enable 1))
 | 
			
		||||
@@ -175,7 +178,6 @@ To undo and redo easily like vi
 | 
			
		||||
*** Language specific LSP packages
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package lsp-haskell)
 | 
			
		||||
(use-package lsp-grammarly)
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Configure flycheck
 | 
			
		||||
@@ -193,11 +195,11 @@ To undo and redo easily like vi
 | 
			
		||||
For autocomplete
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package company
 | 
			
		||||
  :defer 0
 | 
			
		||||
  :after lsp-mode
 | 
			
		||||
  :config
 | 
			
		||||
  (add-to-list 'company-backends 'company-dabbrev)
 | 
			
		||||
  (setq company-backends (cons 'company-files (remove 'company-files company-backends)))
 | 
			
		||||
  (add-to-list 'company-backends 'company-emoji)
 | 
			
		||||
  (company-mode 1))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
@@ -207,14 +209,20 @@ For autocomplete
 | 
			
		||||
  :hook (company-mode . company-quickhelp-mode))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Extra company packages
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package company-emoji)
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Treesitter
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package tree-sitter-langs)
 | 
			
		||||
(use-package tree-sitter-langs :defer t)
 | 
			
		||||
(use-package tree-sitter
 | 
			
		||||
 :after tree-sitter-langs
 | 
			
		||||
  :after tree-sitter-langs
 | 
			
		||||
  :defer t
 | 
			
		||||
  :config
 | 
			
		||||
  (global-tree-sitter-mode)
 | 
			
		||||
 :init 
 | 
			
		||||
  :init
 | 
			
		||||
  (add-to-list 'tree-sitter-major-mode-language-alist '(fundamental-mode . bash))
 | 
			
		||||
  (add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
 | 
			
		||||
#+end_src
 | 
			
		||||
@@ -222,38 +230,30 @@ For autocomplete
 | 
			
		||||
** Direnv
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package direnv
 | 
			
		||||
 :defer t
 | 
			
		||||
 :config
 | 
			
		||||
 (direnv-mode))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Lang support
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package inform7)
 | 
			
		||||
 | 
			
		||||
(use-package haskell-mode)
 | 
			
		||||
 | 
			
		||||
(use-package lsp-latex)
 | 
			
		||||
 | 
			
		||||
(use-package rustic)
 | 
			
		||||
 | 
			
		||||
(use-package yuck-mode)
 | 
			
		||||
 | 
			
		||||
(use-package wgsl-mode)
 | 
			
		||||
 | 
			
		||||
(use-package nix-mode
 | 
			
		||||
  :mode "\\.nix\\'")
 | 
			
		||||
 | 
			
		||||
(use-package hcl-mode
 | 
			
		||||
  :mode
 | 
			
		||||
  "\\.hcl\\'"
 | 
			
		||||
  "\\.nomad\\'")
 | 
			
		||||
 | 
			
		||||
(use-package go-mode)
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Magit
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package magit)
 | 
			
		||||
(use-package magit :defer t)
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* VTerm
 | 
			
		||||
@@ -266,6 +266,7 @@ For autocomplete
 | 
			
		||||
  (setq vterm-timer-delay 0.005))
 | 
			
		||||
 | 
			
		||||
(use-package vterm-toggle
 | 
			
		||||
  :after vterm
 | 
			
		||||
  :config
 | 
			
		||||
  (setq vterm-toggle-fullscreen-p nil)
 | 
			
		||||
  (add-to-list 'display-buffer-alist
 | 
			
		||||
@@ -283,28 +284,32 @@ For autocomplete
 | 
			
		||||
** Centaur Tabs
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package centaur-tabs
 | 
			
		||||
  :demand
 | 
			
		||||
  :config
 | 
			
		||||
  (setq centaur-tabs-style "rounded"
 | 
			
		||||
	centaur-tabs-height 18
 | 
			
		||||
	centaur-tabs-set-modified-marker t
 | 
			
		||||
	centaur-tabs-set-icons t)
 | 
			
		||||
  (centaur-tabs-group-by-projectile-project)
 | 
			
		||||
  (centaur-tabs-headline-match)
 | 
			
		||||
  (centaur-tabs-mode nil)
 | 
			
		||||
  (set-face-attribute 'tab-line nil :inherit 'centaur-tabs-unselected))
 | 
			
		||||
  (set-face-attribute 'tab-line nil :inherit 'centaur-tabs-unselected)
 | 
			
		||||
  (centaur-tabs-headline-match))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Misc packages
 | 
			
		||||
#+begin_src emacs-lisp 
 | 
			
		||||
(use-package elcord
 | 
			
		||||
  :defer 0)
 | 
			
		||||
(use-package all-the-icons
 | 
			
		||||
  :if (display-graphic-p))
 | 
			
		||||
 | 
			
		||||
(use-package elcord :defer t)
 | 
			
		||||
 | 
			
		||||
(use-package projectile
 | 
			
		||||
  :defer t
 | 
			
		||||
  :config
 | 
			
		||||
  (define-key projectile-mode-map (kbd "C-x p") 'projectile-command-map)
 | 
			
		||||
  (projectile-mode +1))
 | 
			
		||||
 | 
			
		||||
(use-package rainbow-mode :defer t)
 | 
			
		||||
 | 
			
		||||
(use-package rainbow-delimiters
 | 
			
		||||
  :hook (prog-mode . rainbow-delimiters-mode))
 | 
			
		||||
 | 
			
		||||
@@ -316,6 +321,7 @@ For autocomplete
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package org
 | 
			
		||||
  :after evil
 | 
			
		||||
  :defer t
 | 
			
		||||
  :config
 | 
			
		||||
  (setq evil-want-C-i-jump nil
 | 
			
		||||
        org-adapt-indentation t
 | 
			
		||||
@@ -330,13 +336,14 @@ For autocomplete
 | 
			
		||||
** Add org-bullets
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
 (use-package org-bullets
 | 
			
		||||
    :config
 | 
			
		||||
    (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
 | 
			
		||||
  :defer t
 | 
			
		||||
  :config
 | 
			
		||||
  (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Babel and exports
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package htmlize)
 | 
			
		||||
(use-package htmlize :defer t)
 | 
			
		||||
(add-to-list 'org-latex-packages-alist '("" "minted"))
 | 
			
		||||
(setq org-latex-listings 'minted) 
 | 
			
		||||
 | 
			
		||||
@@ -367,78 +374,13 @@ For autocomplete
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Random eye candy stuff
 | 
			
		||||
** Ligature
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(use-package ligature
 | 
			
		||||
  :config
 | 
			
		||||
  (ligature-set-ligatures 't '("www"))
 | 
			
		||||
  (ligature-set-ligatures 'prog-mode '("www" "**" "***" "**/" "*>" "*/" "\\\\" "\\\\\\" "{-" "::"
 | 
			
		||||
                                      ":::" ":=" "!!" "!=" "!==" "-}" "----" "-->" "->" "->>"
 | 
			
		||||
                                      "-<" "-<<" "-~" "#{" "#[" "##" "###" "####" "#(" "#?" "#_"
 | 
			
		||||
                                      "#_(" ".-" ".=" ".." "..<" "..." "?=" "??" ";;" "/*" "/**"
 | 
			
		||||
                                      "/=" "/==" "/>" "//" "///" "&&" "||" "||=" "|=" "|>" "^=" "$>"
 | 
			
		||||
                                      "++" "+++" "+>" "=:=" "==" "===" "==>" "=>" "=>>" "<="
 | 
			
		||||
                                      "=<<" "=/=" ">-" ">=" ">=>" ">>" ">>-" ">>=" ">>>" "<*"
 | 
			
		||||
                                      "<*>" "<|" "<|>" "<$" "<$>" "<!--" "<-" "<--" "<->" "<+"
 | 
			
		||||
                                      "<+>" "<=" "<==" "<=>" "<=<" "<>" "<<" "<<-" "<<=" "<<<"
 | 
			
		||||
                                      "<~" "<~~" "</" "</>" "~@" "~-" "~>" "~~" "~~>" "%%"))
 | 
			
		||||
  (global-ligature-mode t))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Custom mode line
 | 
			
		||||
switched to doom modeline after using my own modeline for a while
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(defface mode-line-buf-name
 | 
			
		||||
  `((t :foreground ,(catppuccin-get-color 'text)
 | 
			
		||||
       :background ,(catppuccin-get-color 'base)
 | 
			
		||||
       :weight bold
 | 
			
		||||
     ))
 | 
			
		||||
  "Custom face for buffer name"
 | 
			
		||||
  :group 'mode-line-faces )
 | 
			
		||||
(defface mode-line-maj-mode
 | 
			
		||||
  `((t :foreground ,(catppuccin-get-color 'text)
 | 
			
		||||
       :background ,(catppuccin-get-color 'base)
 | 
			
		||||
     ))
 | 
			
		||||
  "Custom face for major mode"
 | 
			
		||||
  :group 'mode-line-faces )
 | 
			
		||||
 | 
			
		||||
(defface mode-line-vc
 | 
			
		||||
  `((t :foreground ,(catppuccin-get-color 'base)
 | 
			
		||||
       :background ,(catppuccin-get-color 'sky)
 | 
			
		||||
       :weight bold
 | 
			
		||||
     ))
 | 
			
		||||
  "Custom face for VC"
 | 
			
		||||
  :group 'mode-line-faces )
 | 
			
		||||
(defface mode-line-info
 | 
			
		||||
  `((t :foreground ,(catppuccin-get-color 'base)
 | 
			
		||||
       :background ,(catppuccin-get-color 'green)
 | 
			
		||||
       :weight bold
 | 
			
		||||
     ))
 | 
			
		||||
  "For showing line and column number"
 | 
			
		||||
  :group 'mode-line-faces )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(setq-default mode-line-format
 | 
			
		||||
              '((:propertize " %b " face mode-line-buf-name)
 | 
			
		||||
                (vc-mode (:propertize (" " vc-mode " " ) face mode-line-vc))
 | 
			
		||||
                (:propertize (" " mode-name " ") face mode-line-maj-mode)
 | 
			
		||||
                (:propertize (" [[ %l | %c || %p . %+%@ ]] ") face mode-line-info)))
 | 
			
		||||
 | 
			
		||||
(setq exclude-ln '(term-mode-hook eshell-mode-hook shell-mode-hook))
 | 
			
		||||
(while exclude-ln
 | 
			
		||||
       (add-hook (car exclude-ln) (lambda () (display-line-numbers-mode 0)))
 | 
			
		||||
       (setq exclude-ln (cdr exclude-ln)))
 | 
			
		||||
(let ((default-color (cons (face-background 'mode-line)
 | 
			
		||||
                           (face-foreground 'mode-line))))
 | 
			
		||||
      (add-hook 'post-command-hook
 | 
			
		||||
            (lambda ()
 | 
			
		||||
              (let ((color (cond ((minibufferp) default-color)
 | 
			
		||||
                                ((evil-insert-state-p) (cons (catppuccin-get-color 'mauve) (catppuccin-get-color 'base)))
 | 
			
		||||
                                ((evil-normal-state-p) (cons (catppuccin-get-color 'yellow) (catppuccin-get-color 'base)))
 | 
			
		||||
                                ((evil-visual-state-p) (cons (catppuccin-get-color 'teal) (catppuccin-get-color 'base)))
 | 
			
		||||
                                ((buffer-modified-p) (cons (catppuccin-get-color 'red) (catppuccin-get-color 'text)))
 | 
			
		||||
                                (t default-color))))
 | 
			
		||||
          (set-face-background 'mode-line-buf-name (car color))
 | 
			
		||||
          (set-face-foreground 'mode-line-buf-name (cdr color))))))
 | 
			
		||||
(use-package doom-modeline
 | 
			
		||||
  :ensure t
 | 
			
		||||
  :hook (after-init . doom-modeline-mode))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Pop-up terminal
 | 
			
		||||
@@ -467,7 +409,7 @@ Stolen from [[https://www.reddit.com/r/emacs/comments/ft84xy/run_shell_command_i
 | 
			
		||||
    (vterm-send-return)))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
This returns the command to run in the terminal
 | 
			
		||||
Compilation shortcuts for standalone files
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(defun candrun ()
 | 
			
		||||
  (let ((full buffer-file-name)
 | 
			
		||||
@@ -480,8 +422,8 @@ This returns the command to run in the terminal
 | 
			
		||||
           ("hs" (concat "runhaskell " full))
 | 
			
		||||
           ("sh" (concat "sh " full))
 | 
			
		||||
           ("js" (concat "node " full))
 | 
			
		||||
           ("ts" (concat "tsc" full " && node " file ".js && rm " file ".js" ))
 | 
			
		||||
           ("rs" (concat "rustc" full " -o " file " && " file " && rm " file)))))
 | 
			
		||||
           ("ts" (concat "tsc " full " && node " file ".js && rm " file ".js" ))
 | 
			
		||||
           ("rs" (concat "rustc " full " -o " file " && " file " && rm " file)))))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Custom Functions
 | 
			
		||||
@@ -512,68 +454,50 @@ This returns the command to run in the terminal
 | 
			
		||||
  '(visual normal motion))
 | 
			
		||||
 | 
			
		||||
(with-eval-after-load 'general
 | 
			
		||||
(general-define-key
 | 
			
		||||
  :states evil-states
 | 
			
		||||
  "M-c" 'comment-line
 | 
			
		||||
  "C-c M-c" 'comment-box)
 | 
			
		||||
  (general-define-key
 | 
			
		||||
    :states evil-states
 | 
			
		||||
    "M-c" 'comment-line
 | 
			
		||||
    "C-c M-c" 'comment-box)
 | 
			
		||||
 | 
			
		||||
(general-define-key
 | 
			
		||||
  :states '(normal insert)
 | 
			
		||||
  "M-C-f" 'lsp-format-buffer
 | 
			
		||||
  "C-S-v" 'yank)
 | 
			
		||||
  (general-define-key
 | 
			
		||||
    :states '(normal insert)
 | 
			
		||||
    "M-C-f" 'lsp-format-buffer
 | 
			
		||||
    "C-S-v" 'yank)
 | 
			
		||||
 | 
			
		||||
(general-define-key
 | 
			
		||||
  :keymaps '(global override vterm-mode-map)
 | 
			
		||||
  :states evil-states
 | 
			
		||||
  "M-o" 'treemacs
 | 
			
		||||
  "M-v" 'split-window-vertically
 | 
			
		||||
  "M-h" 'split-window-horizontally
 | 
			
		||||
  "M-m" 'windmove-left
 | 
			
		||||
  "M-n" 'windmove-down
 | 
			
		||||
  "M-e" 'windmove-up
 | 
			
		||||
  "M-i" 'windmove-right
 | 
			
		||||
  "M-C-m" 'shrink-window-horizontally
 | 
			
		||||
  "M-C-i" 'enlarge-window-horizontally
 | 
			
		||||
  "M-C-e" 'shrink-window
 | 
			
		||||
  "M-C-n" 'enlarge-window
 | 
			
		||||
  "M-,"  'centaur-tabs-backward
 | 
			
		||||
  "M-."  'centaur-tabs-forward
 | 
			
		||||
  "C-q"  'delete-window
 | 
			
		||||
  "M-C-S-q"  'kill-buffer-and-window
 | 
			
		||||
  "M-w"  'centaur-tabs--kill-this-buffer-dont-ask
 | 
			
		||||
  "M-S-w"  'kill-window)
 | 
			
		||||
  (general-define-key
 | 
			
		||||
    :keymaps '(global override vterm-mode-map)
 | 
			
		||||
    :states evil-states
 | 
			
		||||
    "M-o" 'treemacs
 | 
			
		||||
    "M-v" 'split-window-vertically
 | 
			
		||||
    "M-h" 'split-window-horizontally
 | 
			
		||||
    "M-m" 'windmove-left
 | 
			
		||||
    "M-n" 'windmove-down
 | 
			
		||||
    "M-e" 'windmove-up
 | 
			
		||||
    "M-i" 'windmove-right
 | 
			
		||||
    "M-C-m" 'shrink-window-horizontally
 | 
			
		||||
    "M-C-i" 'enlarge-window-horizontally
 | 
			
		||||
    "M-C-e" 'shrink-window
 | 
			
		||||
    "M-C-n" 'enlarge-window
 | 
			
		||||
    "M-,"  'centaur-tabs-backward
 | 
			
		||||
    "M-."  'centaur-tabs-forward
 | 
			
		||||
    "C-q"  'delete-window
 | 
			
		||||
    "M-C-S-q"  'kill-buffer-and-window
 | 
			
		||||
    "M-w"  'centaur-tabs--kill-this-buffer-dont-ask
 | 
			
		||||
    "M-S-w"  'kill-window)
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Pop-up terminal specific keybinds
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(with-eval-after-load 'vterm-toggle
 | 
			
		||||
  (general-define-key
 | 
			
		||||
    :keymaps '(global override vterm-mode-map)
 | 
			
		||||
    :states evil-states
 | 
			
		||||
    "<f4>"  (lambda () (interactive) (vterm t))
 | 
			
		||||
    "C-<f1>" 'vterm-toggle-cd
 | 
			
		||||
    "<f1>" 'vterm-toggle
 | 
			
		||||
    "<f5>" (lambda () (interactive) (run-in-vterm (candrun))))
 | 
			
		||||
  (general-define-key
 | 
			
		||||
    :keymaps 'vterm-mode-map
 | 
			
		||||
    "<f2>" 'vterm-toggle-forward
 | 
			
		||||
    "<f3>" 'vterm-toggle-backward))
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Toggle Appearance
 | 
			
		||||
#+begin_src emacs-lisp
 | 
			
		||||
(defun toggle-theme-shade ()
 | 
			
		||||
  (if (symbol-value dark-theme)
 | 
			
		||||
	    (progn (setq catppuccin-flavor 'latte)
 | 
			
		||||
             (catppuccin-reload))
 | 
			
		||||
	    (progn (setq catppuccin-flavor 'mocha)
 | 
			
		||||
             (catppuccin-reload)))
 | 
			
		||||
  (setq-local dark-theme (not dark-theme))
 | 
			
		||||
  (centaur-tabs-display-update)
 | 
			
		||||
  (centaur-tabs-headline-match))
 | 
			
		||||
 | 
			
		||||
(general-define-key
 | 
			
		||||
 :states '(normal)
 | 
			
		||||
 "<f7>" (lambda () (interactive) (toggle-theme-shade)))
 | 
			
		||||
)
 | 
			
		||||
  (with-eval-after-load 'vterm-toggle
 | 
			
		||||
    (general-define-key
 | 
			
		||||
      :keymaps '(global override vterm-mode-map)
 | 
			
		||||
      :states evil-states
 | 
			
		||||
      "<f4>"  (lambda () (interactive) (vterm t))
 | 
			
		||||
      "C-<f1>" 'vterm-toggle-cd
 | 
			
		||||
      "<f1>" 'vterm-toggle
 | 
			
		||||
      "<f5>" (lambda () (interactive) (run-in-vterm (candrun))))
 | 
			
		||||
    (general-define-key
 | 
			
		||||
      :keymaps 'vterm-mode-map
 | 
			
		||||
      "<f2>" 'vterm-toggle-forward
 | 
			
		||||
      "<f3>" 'vterm-toggle-backward)))
 | 
			
		||||
#+end_src
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user