home/natto: update emacs config
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
@@ -26,14 +26,11 @@ idk random variables to match my color theme
|
||||
c-white-2 "#fdf6e3")
|
||||
#+end_src
|
||||
|
||||
|
||||
#+begin_src python
|
||||
#+end_src
|
||||
|
||||
* Settings
|
||||
** Setting the default face
|
||||
#+begin_src emacs-lisp
|
||||
(setq default-frame-alist '((font . "Monoid-12")))
|
||||
(set-frame-font "Monoid 12" nil t)
|
||||
(add-to-list 'default-frame-alist '(font . "Monoid-12"))
|
||||
#+end_src
|
||||
|
||||
** Some mode settings based on personal preferences
|
||||
@@ -43,7 +40,8 @@ idk random variables to match my color theme
|
||||
(tool-bar-mode 0)
|
||||
(menu-bar-mode 0)
|
||||
(fringe-mode 0)
|
||||
;(cua-mode 1)
|
||||
;; (cua-mode 1)
|
||||
(electric-indent-mode 0)
|
||||
(global-display-line-numbers-mode 1)
|
||||
(xterm-mouse-mode 1)
|
||||
#+end_src
|
||||
@@ -103,9 +101,6 @@ Enable selectrum
|
||||
#+begin_src emacs-lisp
|
||||
(use-package selectrum
|
||||
:config
|
||||
(define-key selectrum-minibuffer-map (kbd "C-n") #'selectrum-next-candidate)
|
||||
(define-key selectrum-minibuffer-map (kbd "C-e") #'selectrum-previous-candidate)
|
||||
(define-key selectrum-minibuffer-map (kbd "C-i") #'selectrum-select-current-candidate)
|
||||
(selectrum-mode +1))
|
||||
#+end_src
|
||||
|
||||
@@ -148,10 +143,6 @@ Add orderless for selectrum
|
||||
:init
|
||||
(setq-default evil-shift-width 2)
|
||||
:config
|
||||
(setq org-src-fontify-natively t
|
||||
org-src-strip-leading-and-trailing-blank-lines t
|
||||
org-src-preserve-indentation t
|
||||
org-src-tab-acts-natively t)
|
||||
(evil-set-initial-state 'vterm-mode 'insert)
|
||||
(evil-set-undo-system 'undo-tree)
|
||||
(evil-define-key 'visual global-map (kbd ">") 'my/evil-shift-right)
|
||||
@@ -168,16 +159,6 @@ To undo and redo easily like vi
|
||||
(global-undo-tree-mode 1))
|
||||
#+end_src
|
||||
|
||||
*** Configure evil-colemak-basics
|
||||
To get colemak-dh bindings in evil mode
|
||||
#+begin_src emacs-lisp
|
||||
(use-package evil-colemak-basics
|
||||
:init
|
||||
(setq evil-colemak-basics-layout-mod 'mod-dh)
|
||||
:config
|
||||
(global-evil-colemak-basics-mode 1))
|
||||
#+end_src
|
||||
|
||||
*** Miscellaneous evil related packages
|
||||
#+begin_src emacs-lisp
|
||||
(use-package evil-terminal-cursor-changer)
|
||||
@@ -199,22 +180,8 @@ To get colemak-dh bindings in evil mode
|
||||
(treemacs-git-mode 'simple))
|
||||
#+end_src
|
||||
|
||||
*** Configure treemacs-evil
|
||||
Configure treemacs-evil to get colemak-dh bindings
|
||||
#+begin_src emacs-lisp
|
||||
(use-package treemacs-evil :config
|
||||
(define-key evil-treemacs-state-map (kbd "j") nil)
|
||||
(define-key evil-treemacs-state-map (kbd "k") nil)
|
||||
(define-key evil-treemacs-state-map (kbd "n") #'treemacs-next-line)
|
||||
(define-key evil-treemacs-state-map (kbd "e") #'treemacs-previous-line)
|
||||
(define-key evil-treemacs-state-map (kbd "M-n") #'treemacs-next-neighbour)
|
||||
(define-key evil-treemacs-state-map (kbd "M-e") #'treemacs-previous-neighbour)
|
||||
(define-key evil-treemacs-state-map (kbd "M-N") #'treemacs-next-line-other-window)
|
||||
(define-key evil-treemacs-state-map (kbd "M-E") #'treemacs-previous-line-other-window)
|
||||
(define-key evil-treemacs-state-map (kbd "M") #'treemacs-collapse-parent-node)
|
||||
(evil-define-key 'treemacs treemacs-mode-map (kbd "m") #'treemacs-COLLAPSE-action)
|
||||
(evil-define-key 'treemacs treemacs-mode-map (kbd "i") #'treemacs-RET-action)
|
||||
)
|
||||
(use-package treemacs-evil)
|
||||
#+end_src
|
||||
|
||||
** LSP
|
||||
@@ -273,12 +240,7 @@ For autocomplete
|
||||
:config
|
||||
(add-to-list 'company-backends 'company-dabbrev)
|
||||
(setq company-backends (cons 'company-files (remove 'company-files company-backends)))
|
||||
(company-mode 1)
|
||||
(define-key company-active-map (kbd "C-n") 'company-select-next)
|
||||
(define-key company-active-map (kbd "C-e") 'company-select-previous)
|
||||
(define-key company-search-map (kbd "C-n") 'company-select-next)
|
||||
(define-key company-search-map (kbd "C-e") 'company-select-previous)
|
||||
(company-mode))
|
||||
(company-mode 1))
|
||||
#+end_src
|
||||
|
||||
*** Configure company-quickhelp
|
||||
@@ -289,35 +251,35 @@ For autocomplete
|
||||
|
||||
** Treesitter
|
||||
#+begin_src emacs-lisp
|
||||
;(use-package tree-sitter-langs)
|
||||
;(use-package tree-sitter
|
||||
; :after tree-sitter-langs
|
||||
; :config
|
||||
; (global-tree-sitter-mode)
|
||||
; :init
|
||||
; (add-to-list 'tree-sitter-major-mode-language-alist '(fundamental-mode . bash))
|
||||
; (add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
|
||||
(use-package tree-sitter-langs)
|
||||
(use-package tree-sitter
|
||||
:after tree-sitter-langs
|
||||
:config
|
||||
(global-tree-sitter-mode)
|
||||
: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
|
||||
|
||||
** Lang support
|
||||
#+begin_src emacs-lisp
|
||||
;(use-package haskell-mode)
|
||||
(use-package haskell-mode)
|
||||
|
||||
;(use-package rustic)
|
||||
(use-package rustic)
|
||||
|
||||
;(use-package nix-mode
|
||||
; :mode "\\.nix\\'")
|
||||
;(add-to-list 'lsp-language-id-configuration '(nix-mode . "nix"))
|
||||
;(lsp-register-client
|
||||
; (make-lsp-client :new-connection (lsp-stdio-connection '("rnix-lsp"))
|
||||
; :major-modes '(nix-mode)
|
||||
; :server-id 'nix))
|
||||
(use-package nix-mode
|
||||
:mode "\\.nix\\'")
|
||||
(add-to-list 'lsp-language-id-configuration '(nix-mode . "nix"))
|
||||
(lsp-register-client
|
||||
(make-lsp-client :new-connection (lsp-stdio-connection '("rnix-lsp"))
|
||||
:major-modes '(nix-mode)
|
||||
:server-id 'nix))
|
||||
|
||||
|
||||
;(use-package hcl-mode
|
||||
; :mod
|
||||
; "\\.hcl\\'"
|
||||
; "\\.nomad\\'")
|
||||
(use-package hcl-mode
|
||||
:mode
|
||||
"\\.hcl\\'"
|
||||
"\\.nomad\\'")
|
||||
#+end_src
|
||||
|
||||
** Magit
|
||||
@@ -347,16 +309,16 @@ For autocomplete
|
||||
** Centaur Tabs
|
||||
#+begin_src emacs-lisp
|
||||
(use-package centaur-tabs
|
||||
:demand
|
||||
:config
|
||||
(setq centaur-tabs-style "box"
|
||||
; centaur-tabs-set-bar 'left
|
||||
(setq centaur-tabs-style "rounded"
|
||||
centaur-tabs-height 18
|
||||
centaur-tabs-set-modified-marker t
|
||||
centaur-tabs-set-icons t)
|
||||
(centaur-tabs-group-buffer-groups)
|
||||
(add-hook 'server-after-make-frame-hook 'centaur-tabs-mode)
|
||||
(set-face-attribute 'tab-line nil :inherit 'centaur-tabs-unselected)
|
||||
(centaur-tabs-headline-match))
|
||||
(centaur-tabs-group-by-projectile-project)
|
||||
(centaur-tabs-headline-match)
|
||||
(centaur-tabs-mode nil)
|
||||
(set-face-attribute 'tab-line nil :inherit 'centaur-tabs-unselected))
|
||||
#+end_src
|
||||
|
||||
** Misc packages
|
||||
@@ -371,11 +333,7 @@ For autocomplete
|
||||
|
||||
(use-package flex-autopair
|
||||
:config
|
||||
(flex-autopair-mode 1))
|
||||
|
||||
(use-package rainbow-mode
|
||||
:config
|
||||
(rainbow-mode 1))
|
||||
(flex-autopair-mode 0))
|
||||
|
||||
(use-package treemacs-all-the-icons)
|
||||
|
||||
@@ -388,8 +346,13 @@ For autocomplete
|
||||
(use-package org
|
||||
:after evil
|
||||
:config
|
||||
(setq evil-want-C-i-jump nil
|
||||
org-adapt-indentation t
|
||||
org-src-fontify-natively t
|
||||
org-src-strip-leading-and-trailing-blank-lines t
|
||||
org-src-preserve-indentation t
|
||||
org-src-tab-acts-natively t)
|
||||
(define-key org-mode-map (kbd "RET") 'org-return-and-maybe-indent)
|
||||
(setq evil-want-C-i-jump nil)
|
||||
(evil-define-key 'normal org-mode-map (kbd "TAB") 'org-cycle))
|
||||
#+end_src
|
||||
|
||||
@@ -540,10 +503,44 @@ This returns the command to run in the terminal
|
||||
|
||||
* Keybinds
|
||||
** General
|
||||
*** Colemak translations
|
||||
#+begin_src emacs-lisp
|
||||
(setq states-with-hjkl-keybindings
|
||||
'(normal visual motion treemacs))
|
||||
|
||||
(setq evil-states
|
||||
'(visual normal))
|
||||
|
||||
(general-translate-key states-with-hjkl-keybindings 'global
|
||||
"m" "h"
|
||||
"n" "j"
|
||||
"e" "k"
|
||||
"i" "l"
|
||||
"u" "i"
|
||||
"l" "u"
|
||||
"k" "n"
|
||||
"f" "e"
|
||||
"t" "f"
|
||||
"j" "t"
|
||||
)
|
||||
#+end_src
|
||||
|
||||
*** Misc binds
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'general
|
||||
|
||||
(general-define-key
|
||||
:states '(normal emacs visual motion treemacs Eshell override)
|
||||
:states evil-states
|
||||
"M-c" 'comment-line
|
||||
"C-c M-c" 'comment-box)
|
||||
|
||||
(general-define-key
|
||||
:states '(normal insert)
|
||||
"C-S-v" 'yank)
|
||||
|
||||
|
||||
(general-define-key
|
||||
:states states-with-hjkl-keybindings
|
||||
"M-o" 'treemacs
|
||||
"M-v" 'split-window-vertically
|
||||
"M-h" 'split-window-horizontally
|
||||
@@ -551,10 +548,6 @@ This returns the command to run in the terminal
|
||||
"M-C-i" 'enlarge-window-horizontally
|
||||
"M-C-e" 'shrink-window
|
||||
"M-C-n" 'enlarge-window
|
||||
"C-m" 'windmove-left
|
||||
"C-i" 'windmove-right
|
||||
"C-n" 'windmove-down
|
||||
"C-e" 'windmove-up
|
||||
"M-," 'centaur-tabs-backward
|
||||
"M-." 'centaur-tabs-forward
|
||||
"C-q" 'delete-window
|
||||
@@ -563,26 +556,18 @@ This returns the command to run in the terminal
|
||||
"M-S-w" 'kill-window)
|
||||
#+end_src
|
||||
|
||||
Pop-up terminal specific keybinds
|
||||
*** Pop-up terminal specific keybinds
|
||||
#+begin_src emacs-lisp
|
||||
|
||||
(with-eval-after-load 'vterm-toggle
|
||||
(general-define-key
|
||||
:states '(override insert normal visual treemacs motion)
|
||||
"M-f" 'lsp-format-buffer
|
||||
:states states-with-hjkl-keybindings
|
||||
"<f4>" (lambda () (interactive) (vterm t))
|
||||
"C-<f1>" 'vterm-toggle-cd
|
||||
"<f1>" 'vterm-toggle
|
||||
"<f5>" (lambda () (interactive) (run-in-vterm (candrun))))
|
||||
|
||||
(define-key vterm-mode-map (kbd "<f2>") 'vterm-toggle-forward)
|
||||
(define-key vterm-mode-map (kbd "<F2>") 'vterm-toggle-forward)
|
||||
(define-key vterm-mode-map (kbd "<f3>") 'vterm-toggle-backward)
|
||||
|
||||
(general-define-key
|
||||
:states '(normal insert)
|
||||
:keymaps 'VTerm
|
||||
"C-S-v" 'vterm-yank
|
||||
)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
|
Reference in New Issue
Block a user