From e8120c9a57cedc5b9cfea320e20330ba860a4cbf Mon Sep 17 00:00:00 2001 From: Amneesh Singh Date: Fri, 14 Oct 2022 09:59:10 +0530 Subject: [PATCH] home/natto: update emacs config Signed-off-by: Amneesh Singh --- home/natto/config/emacs/config.org | 171 +++++++++++++---------------- 1 file changed, 78 insertions(+), 93 deletions(-) diff --git a/home/natto/config/emacs/config.org b/home/natto/config/emacs/config.org index df6333e..7eeaf24 100644 --- a/home/natto/config/emacs/config.org +++ b/home/natto/config/emacs/config.org @@ -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 "" (lambda () (interactive) (vterm t)) "C-" 'vterm-toggle-cd "" 'vterm-toggle "" (lambda () (interactive) (run-in-vterm (candrun)))) - (define-key vterm-mode-map (kbd "") 'vterm-toggle-forward) + (define-key vterm-mode-map (kbd "") 'vterm-toggle-forward) (define-key vterm-mode-map (kbd "") 'vterm-toggle-backward) - - (general-define-key - :states '(normal insert) - :keymaps 'VTerm - "C-S-v" 'vterm-yank - ) ) #+end_src