]> git.armaanb.net Git - config.org.git/blobdiff - config.org
Write a TODO for magit
[config.org.git] / config.org
index f142ec99bd662789154a943d45397fb216434dc1..05c4d769aa8a2830a709d5023f1fa7ff20a173b2 100644 (file)
@@ -148,11 +148,11 @@ Highlight when changes are made.
     :config (evil-goggles-mode)
     (evil-goggles-use-diff-faces))
 #+end_src
-** Highlight "TODO" comments
+** Highlight TODOs in comments
 #+begin_src emacs-lisp
   (use-package hl-todo
     :straight (hl-todo :type git :host github :repo "tarsius/hl-todo")
-    :config (global-hl-todo-mode))
+    :config (global-hl-todo-mode 1))
 #+end_src
 ** Don't lose cursor
 #+begin_src emacs-lisp
@@ -277,12 +277,6 @@ Add back C-a/C-x
     (org-hide-emphasis-markers t)
     (org-fontify-whole-block-delimiter-line nil))
 #+end_src
-** Automatically tangle
-#+begin_src emacs-lisp
-  (add-hook 'org-mode-hook
-            (lambda () (add-hook 'after-save-hook #'org-babel-tangle
-                                 :append :local)))
-#+end_src
 ** Tempo
 #+begin_src emacs-lisp
   (use-package org-tempo
@@ -308,13 +302,13 @@ Simple, but not too simple autocompletion.
            :map ivy-minibuffer-map
            ("TAB" . ivy-alt-done)
            :map ivy-switch-buffer-map
-           ("C-d" . ivy-switch-buffer-kill))
+           ("M-d" . ivy-switch-buffer-kill))
     :config (ivy-mode))
 #+end_src
 ** Ivy-rich
 #+begin_src emacs-lisp
   (use-package ivy-rich
-    :after ivy
+    :after (ivy counsel)
     :config (ivy-rich-mode))
 #+end_src
 ** Counsel
@@ -372,7 +366,6 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
     :load-path "/usr/share/emacs/site-lisp/mu4e"
     :bind (("C-c m" . mu4e))
     :config
-
     (setq user-full-name "Armaan Bhojwani"
           smtpmail-local-domain "armaanb.net"
           smtpmail-stream-type 'ssl
@@ -416,12 +409,10 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
                        (smtpmail-smtp-server "smtp.mailbox.org")
                        (mu4e-drafts-folder . "/school/Drafts")
                        (mu4e-trash-folder . "/school/Trash")))))
-
     (add-to-list 'mu4e-bookmarks
-                 '(
-                   :name  "Unified inbox"
-                   :query "maildir:\"/personal/INBOX\" or maildir:\"/school/INBOX\""
-                   :key   ?b)))
+                 '(:name "Unified inbox"
+                         :query "maildir:\"/personal/INBOX\" or maildir:\"/school/INBOX\""
+                         :key ?b)))
 #+end_src
 ** Calendar
 #+begin_src emacs-lisp
@@ -446,26 +437,28 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
 Another file has more specific network configuration.
 #+begin_src emacs-lisp
   (use-package circe
-    :config
-    (load "~/.emacs.d/irc.el"))
-  (use-package circe-color-nicks
-    :after circe
-    :straight (:type built-in))
+    :config (load-file "~/.emacs.d/irc.el"))
+
   (use-package circe-chanop
-    :after circe
-    :straight (:type built-in))
+    :straight (:type built-in)
+    :after circe)
+
+  (use-package circe-color-nicks
+    :straight (:type built-in)
+    :after circe)
 #+end_src
 ** Default browser
-Set EWW as default browser except for videos
+Set EWW as default browser except for videos.
 #+begin_src emacs-lisp
   (defun browse-url-mpv (url &optional new-window)
     "Open URL in MPV."
     (start-process "mpv" "*mpv*" "mpv" url))
 
-  (setq browse-url-browser-function
+  (setq browse-url-handlers
         (quote
          (("youtu\\.?be" . browse-url-mpv)
-          ("." . eww-browse-url))))
+          ("." . eww-browse-url)
+          )))
 #+end_src
 ** Emacs Anywhere
 Use Emacs globally. Use the Emacs daemon and bind a key in your wm to
@@ -580,22 +573,70 @@ Company-box adds icons.
 #+end_src
 ** Git
 *** Magit
+# TODO: Write a command that commits hunk, skipping staging step.
 #+begin_src emacs-lisp
   (use-package magit
-    :hook (git-commit-setup-hook . pinentry-start))
+    :hook (magit-mode-hook. pinentry-start))
 #+end_src
 *** Colored diff in line number area
 #+begin_src emacs-lisp
   (use-package diff-hl
     :straight (diff-hl :type git :host github :repo "dgutov/diff-hl")
+    :hook ((magit-pre-refresh-hook . diff-hl-magit-pre-refresh)
+           (magit-post-refresh-hook . diff-hl-magit-post-refresh))
     :config (global-diff-hl-mode))
 #+end_src
+* General text editing
 ** Indentation
 Indent after every change.
 #+begin_src emacs-lisp
   (use-package aggressive-indent
     :config (global-aggressive-indent-mode))
 #+end_src
+** Spell checking
+Spell check in text mode, and in prog-mode comments.
+#+begin_src emacs-lisp
+  (dolist (hook '(text-mode-hook))
+    (add-hook hook (lambda () (flyspell-mode))))
+  (dolist (hook '(change-log-mode-hook log-edit-mode-hook))
+    (add-hook hook (lambda () (flyspell-mode -1))))
+  (add-hook 'prog-mode (lambda () (flyspell-prog mode)))
+#+end_src
+** Expand tabs to spaces
+#+begin_src emacs-lisp
+  (setq-default tab-width 2)
+#+end_src
+** Copy kill ring to clipboard
+#+begin_src emacs-lisp
+  (setq x-select-enable-clipboard t)
+  (defun copy-kill-ring-to-xorg ()
+    "Copy the current kill ring to the xorg clipboard."
+    (interactive)
+    (x-select-text (current-kill 0)))
+#+end_src
+** Browse kill ring
+#+begin_src emacs-lisp
+  (use-package browse-kill-ring)
+#+end_src
+** Save place
+Opens file where you left it.
+#+begin_src emacs-lisp
+  (save-place-mode)
+#+end_src
+** Writing mode
+Distraction free writing a la junegunn/goyo.
+#+begin_src emacs-lisp
+  (use-package olivetti
+    :config
+    (evil-leader/set-key "o" 'olivetti-mode))
+#+end_src
+** Abbreviations
+Abbreviate things!
+#+begin_src emacs-lisp
+  (setq abbrev-file-name "~/.emacs.d/abbrevs")
+  (setq save-abbrevs 'silent)
+  (setq-default abbrev-mode t)
+#+end_src
 * Functions
 ** Easily convert splits
 Converts splits from horizontal to vertical and vice versa. Lifted from EmacsWiki.
@@ -645,11 +686,6 @@ Makes "C-x k" binding faster.
   (substitute-key-definition 'kill-buffer 'kill-buffer-and-window global-map)
 #+end_src
 * Other settings
-** Save place
-Opens file where you left it.
-#+begin_src emacs-lisp
-  (save-place-mode)
-#+end_src
 ** OpenSCAD
 Render OpenSCAD files, and add a preview window.
 
@@ -659,29 +695,11 @@ Personal fork just merges a PR.
   (use-package scad-preview
     :straight (scad-preview :type git :host github :repo "Armaanb/scad-preview"))
 #+end_src
-** Writing mode
-Distraction free writing a la junegunn/goyo.
-#+begin_src emacs-lisp
-  (use-package olivetti
-    :config
-    (evil-leader/set-key "o" 'olivetti-mode))
-#+end_src
 ** Control backup files
 Stop backup files from spewing everywhere.
 #+begin_src emacs-lisp
   (setq backup-directory-alist `(("." . "~/.emacs.d/backups")))
 #+end_src
-** Abbreviations
-Abbreviate things!
-#+begin_src emacs-lisp
-  (setq abbrev-file-name "~/.emacs.d/abbrevs")
-  (setq save-abbrevs 'silent)
-  (setq-default abbrev-mode t)
-#+end_src
-** Expand tabs to spaces
-#+begin_src emacs-lisp
-  (setq-default tab-width 2)
-#+end_src
 ** Make yes/no easier
 #+begin_src emacs-lisp
   (defalias 'yes-or-no-p 'y-or-n-p)
@@ -727,18 +745,6 @@ No more clogging up init.el.
               "0c" '0x0-upload-kill-ring
               "0p" '0x0-upload-popup))
 #+end_src
-** Copy kill ring to clipboard
-#+begin_src emacs-lisp
-  (setq x-select-enable-clipboard t)
-  (defun copy-kill-ring-to-xorg ()
-    "Copy the current kill ring to the xorg clipboard."
-    (interactive)
-    (x-select-text (current-kill 0)))
-#+end_src
-** Browse kill ring
-#+begin_src emacs-lisp
-  (use-package browse-kill-ring)
-#+end_src
 * Tangles
 ** Spectrwm
 *** General settings
@@ -756,7 +762,9 @@ Gruvbox colors
   color_focus = rgb:83/a5/98
   color_focus_maximized = rgb:d6/5d/0e
   color_unfocus = rgb:58/58/58
-
+#+end_src
+*** Bar
+#+begin_src conf :tangle ~/.spectrwm.conf
   bar_enabled = 0
   bar_font = xos4 Fira Code:pixelsize=14:antialias=true # any installed font
 #+end_src
@@ -1398,52 +1406,52 @@ https://github.com/sharkdp/vivid
 *** User
 #+begin_src plain :tangle ~/.gitconfig
 [user]
-       name = Armaan Bhojwani
-       email = me@armaanb.net
-       signingkey = 0FEB9471E19C49C60CFBEB133C9ED82FFE788E4A
+  name = Armaan Bhojwani
+  email = me@armaanb.net
+  signingkey = 0FEB9471E19C49C60CFBEB133C9ED82FFE788E4A
 #+end_src
 *** Init
 #+begin_src plain :tangle ~/.gitconfig
 [init]
-       defaultBranch = main
+  defaultBranch = main
 #+end_src
 *** GPG
 #+begin_src plain :tangle ~/.gitconfig
 [gpg]
-       program = gpg
+  program = gpg
 #+end_src
 *** Sendemail
 #+begin_src plain :tangle ~/.gitconfig
 [sendemail]
-       smtpserver = smtp.mailbox.org
-       smtpuser = me@armaanb.net
-       smtpencryption = ssl
-       smtpserverport = 465
-       confirm = auto
+  smtpserver = smtp.mailbox.org
+  smtpuser = me@armaanb.net
+  smtpencryption = ssl
+  smtpserverport = 465
+  confirm = auto
 #+end_src
 *** Submodules
 #+begin_src plain :tangle ~/.gitconfig
 [submodule]
-       recurse = true
+  recurse = true
 #+end_src
 *** Aliases
 #+begin_src plain :tangle ~/.gitconfig
 [alias]
-       stat = diff --stat
-       sclone = clone --depth 1
-       sclean = clean -dfX
-       a = add
-       aa = add .
-       c = commit
-       p = push
-       subup = submodule update --remote
-       loc = diff --stat 4b825dc642cb6eb9a060e54bf8d69288fbee4904 # Empty hash
-       mirror = git config --global alias.mirrormirror
+  stat = diff --stat
+  sclone = clone --depth 1
+  sclean = clean -dfX
+  a = add
+  aa = add .
+  c = commit
+  p = push
+  subup = submodule update --remote
+  loc = diff --stat 4b825dc642cb6eb9a060e54bf8d69288fbee4904 # Empty hash
+  mirror = git config --global alias.mirrormirror
 #+end_src
 *** Commits
 #+begin_src plain :tangle ~/.gitconfig
 [commit]
-       gpgsign = true
+  gpgsign = true
 #+end_src
 ** Dunst
 Lightweight notification daemon. Gruvbox colors, based on https://github.com/a-schaefers/i3-wm-gruvbox-theme/