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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,7 @@
 | 
			
		||||
monitor=,preferred,auto,1
 | 
			
		||||
monitor=eDP-1, preferred, auto, 1, bitdepth, 10
 | 
			
		||||
monitor=HDMI-A-1, preferred, auto, 1
 | 
			
		||||
workspace=eDP-1, 1
 | 
			
		||||
workspace=HDMI-A-1, 10
 | 
			
		||||
 | 
			
		||||
input {
 | 
			
		||||
    kb_layout = us
 | 
			
		||||
@@ -11,6 +14,7 @@ input {
 | 
			
		||||
 | 
			
		||||
    touchpad {
 | 
			
		||||
        natural_scroll = yes
 | 
			
		||||
        scroll_factor = 0.4
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    repeat_delay = 300
 | 
			
		||||
@@ -31,7 +35,7 @@ general {
 | 
			
		||||
decoration {
 | 
			
		||||
    rounding = 1
 | 
			
		||||
    blur = yes
 | 
			
		||||
    blur_size = 6
 | 
			
		||||
    blur_size = 5
 | 
			
		||||
    blur_passes = 1
 | 
			
		||||
    blur_new_optimizations = on
 | 
			
		||||
    blur_xray = yes
 | 
			
		||||
@@ -156,4 +160,10 @@ bind=$mainMod SHIFT, 8, movetoworkspacesilent, 8
 | 
			
		||||
bind=$mainMod SHIFT, 9, movetoworkspacesilent, 9
 | 
			
		||||
bind=$mainMod SHIFT, 0, movetoworkspacesilent, 10
 | 
			
		||||
 | 
			
		||||
bind=$mainMod SHIFT, comma, focusmonitor, -1
 | 
			
		||||
bind=$mainMod SHIFT, period, focusmonitor, +1
 | 
			
		||||
 | 
			
		||||
bind=CTRL ALT, r, pass, ^(com\.obsproject\.Studio)$
 | 
			
		||||
 | 
			
		||||
exec-once=eww open bar
 | 
			
		||||
exec-once=swaybg -i ~/Wallpapers/current.*
 | 
			
		||||
 
 | 
			
		||||
@@ -3,13 +3,23 @@ let
 | 
			
		||||
  mymacs = config: # with inputs.emacs-overlay.packages.${pkgs.system}; already resolved with overlay
 | 
			
		||||
    with pkgs; emacsWithPackagesFromUsePackage {
 | 
			
		||||
      inherit config;
 | 
			
		||||
      package = emacsPgtk;
 | 
			
		||||
      package = emacsPgtkGcc;
 | 
			
		||||
      alwaysEnsure = true;
 | 
			
		||||
      alwaysTangle = true;
 | 
			
		||||
      extraEmacsPackages = epkgs: with epkgs; [
 | 
			
		||||
        use-package
 | 
			
		||||
        (epkgs.tree-sitter-langs.withPlugins (_: epkgs.tree-sitter-langs.plugins))
 | 
			
		||||
      ];
 | 
			
		||||
      override = epkgs: epkgs // {
 | 
			
		||||
        catppuccin-theme = epkgs.melpaPackages.catppuccin-theme.overrideAttrs (_: {
 | 
			
		||||
          src = pkgs.fetchFromGitHub {
 | 
			
		||||
            owner = "natto1784";
 | 
			
		||||
            repo = "catppuccin-emacs";
 | 
			
		||||
            rev = "company";
 | 
			
		||||
            sha256 = "sha256-wI+RiOeRrvV5eXXVs6hBb3x9BMD9HgHmsjom7kzAFJg=";
 | 
			
		||||
          };
 | 
			
		||||
        });
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -2,14 +2,15 @@
 | 
			
		||||
let
 | 
			
		||||
  key = "53EC089EF230E47A83BA8F8195949BD4B853F559";
 | 
			
		||||
  host = "mail.weirdnatto.in";
 | 
			
		||||
  realName = "Amneesh Singh";
 | 
			
		||||
  address = "natto@weirdnatto.in";
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  accounts.email = {
 | 
			
		||||
    accounts = {
 | 
			
		||||
      natto = rec {
 | 
			
		||||
        realName = "Amneesh Singh";
 | 
			
		||||
        inherit address realName;
 | 
			
		||||
        primary = true;
 | 
			
		||||
        address = "natto@weirdnatto.in";
 | 
			
		||||
        userName = address;
 | 
			
		||||
        gpg = {
 | 
			
		||||
          inherit key;
 | 
			
		||||
@@ -61,7 +62,7 @@ in
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  home = {
 | 
			
		||||
    packages = with pkgs; [ mailcap ];
 | 
			
		||||
    packages = with pkgs; [ mailcap w3m ];
 | 
			
		||||
    file = {
 | 
			
		||||
      mailcap = {
 | 
			
		||||
        source = ./config/mailcap;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,33 +1,3 @@
 | 
			
		||||
$rosewater: #F5E0DC;
 | 
			
		||||
$flamingo: #F2CDCD;
 | 
			
		||||
$pink: #F5C2E7;
 | 
			
		||||
$mauve: #CBA6F7;
 | 
			
		||||
$red: #F38BA8;
 | 
			
		||||
$maroon: #EBA0AC;
 | 
			
		||||
$peach: #FAB387;
 | 
			
		||||
$yellow: #F9E2AF;
 | 
			
		||||
$green: #A6E3A1;
 | 
			
		||||
$teal: #94E2D5;
 | 
			
		||||
$sky: #89DCEB;
 | 
			
		||||
$sapphire: #74C7EC;
 | 
			
		||||
$blue: #89B4FA;
 | 
			
		||||
$lavender: #B4BEFE;
 | 
			
		||||
$text: #CDD6F4;
 | 
			
		||||
$subtext1: #BAC2DE;
 | 
			
		||||
$subtext0: #A6ADC8;
 | 
			
		||||
$overlay2: #9399B2;
 | 
			
		||||
$overlay1: #7F849C;
 | 
			
		||||
$overlay0: #6C7086;
 | 
			
		||||
$surface2: #585B70;
 | 
			
		||||
$surface1: #45475A;
 | 
			
		||||
$surface0: #313244;
 | 
			
		||||
$base: #1E1E2E;
 | 
			
		||||
$mantle: #181825;
 | 
			
		||||
$crust: #11111B;
 | 
			
		||||
 | 
			
		||||
$background: $base;
 | 
			
		||||
$foreground: $text;
 | 
			
		||||
 | 
			
		||||
* {
 | 
			
		||||
    all: unset;
 | 
			
		||||
}
 | 
			
		||||
@@ -78,6 +48,7 @@ tooltip {
 | 
			
		||||
    .workspace-active {
 | 
			
		||||
        @include color-shadow($mauve, $on-hover: 0);
 | 
			
		||||
        font-size: 20px;
 | 
			
		||||
        font-weight: bold;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .workspace-inactive {
 | 
			
		||||
@@ -106,7 +77,7 @@ tooltip {
 | 
			
		||||
.music-large {
 | 
			
		||||
    border: solid 3px $sapphire;
 | 
			
		||||
    color: $mauve;
 | 
			
		||||
    border-radius: 5px;
 | 
			
		||||
    border-radius: 8px;
 | 
			
		||||
    
 | 
			
		||||
    .music-large-cover {
 | 
			
		||||
        background-size: cover;
 | 
			
		||||
 
 | 
			
		||||
@@ -85,7 +85,7 @@
 | 
			
		||||
           :monitor 0
 | 
			
		||||
           :geometry (geometry
 | 
			
		||||
                      :x "0%"
 | 
			
		||||
                      :y "20px"
 | 
			
		||||
                      :y "10px"
 | 
			
		||||
                      :width "0%"
 | 
			
		||||
                      :height "0%"
 | 
			
		||||
                      :anchor "top center")
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1,31 @@
 | 
			
		||||
$rosewater: #F5E0DC;
 | 
			
		||||
$flamingo: #F2CDCD;
 | 
			
		||||
$pink: #F5C2E7;
 | 
			
		||||
$mauve: #CBA6F7;
 | 
			
		||||
$red: #F38BA8;
 | 
			
		||||
$maroon: #EBA0AC;
 | 
			
		||||
$peach: #FAB387;
 | 
			
		||||
$yellow: #F9E2AF;
 | 
			
		||||
$green: #A6E3A1;
 | 
			
		||||
$teal: #94E2D5;
 | 
			
		||||
$sky: #89DCEB;
 | 
			
		||||
$sapphire: #74C7EC;
 | 
			
		||||
$blue: #89B4FA;
 | 
			
		||||
$lavender: #B4BEFE;
 | 
			
		||||
$text: #CDD6F4;
 | 
			
		||||
$subtext1: #BAC2DE;
 | 
			
		||||
$subtext0: #A6ADC8;
 | 
			
		||||
$overlay2: #9399B2;
 | 
			
		||||
$overlay1: #7F849C;
 | 
			
		||||
$overlay0: #6C7086;
 | 
			
		||||
$surface2: #585B70;
 | 
			
		||||
$surface1: #45475A;
 | 
			
		||||
$surface0: #313244;
 | 
			
		||||
$base: #1E1E2E;
 | 
			
		||||
$mantle: #181825;
 | 
			
		||||
$crust: #11111B;
 | 
			
		||||
 | 
			
		||||
$background: $base;
 | 
			
		||||
$foreground: $text;
 | 
			
		||||
 | 
			
		||||
@import "bar/bar.scss"
 | 
			
		||||
 
 | 
			
		||||
@@ -25,12 +25,13 @@
 | 
			
		||||
    powertop
 | 
			
		||||
    cachix
 | 
			
		||||
    undervolt
 | 
			
		||||
    w3m
 | 
			
		||||
 | 
			
		||||
    # GUI utils
 | 
			
		||||
    (discord.override {
 | 
			
		||||
      nss = nss_latest;
 | 
			
		||||
    })
 | 
			
		||||
    inputs.webcord.legacyPackages.${pkgs.system}.webcord
 | 
			
		||||
    webcord
 | 
			
		||||
    (xfce.thunar.override {
 | 
			
		||||
      thunarPlugins = with xfce; [
 | 
			
		||||
        thunar-media-tags-plugin
 | 
			
		||||
@@ -51,9 +52,10 @@
 | 
			
		||||
    # Wine and games and stuff
 | 
			
		||||
    steam
 | 
			
		||||
    winetricks
 | 
			
		||||
    #   (inputs.nix-gaming.packages.${pkgs.system}.osu-stable)
 | 
			
		||||
    (flake.packages.${pkgs.system}.tlauncher)
 | 
			
		||||
    lutris
 | 
			
		||||
    flake.packages.${pkgs.system}.tlauncher
 | 
			
		||||
    mangohud
 | 
			
		||||
    inputs.nix-gaming.packages.${pkgs.system}.osu-stable
 | 
			
		||||
 | 
			
		||||
    # Programming and dev stuff
 | 
			
		||||
    rust-analyzer
 | 
			
		||||
 
 | 
			
		||||
@@ -55,5 +55,6 @@
 | 
			
		||||
    slurp
 | 
			
		||||
    inputs.hyprland-contrib.packages.${pkgs.system}.grimblast
 | 
			
		||||
    wl-clipboard
 | 
			
		||||
    swaybg
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user