(add-to-list 'org-structure-template-alist '("al" . "src yml :tangle ~/.config/alacritty/alacritty.yml"))
(add-to-list 'org-structure-template-alist '("ipy" . "src python :tangle ~/.ipython/"))
(add-to-list 'org-structure-template-alist '("pi" . "src conf :tangle ~/.config/picom/picom.conf"))
- (add-to-list 'org-structure-template-alist '("git" . "src plain :tangle ~/.gitconfig")))
+ (add-to-list 'org-structure-template-alist '("git" . "src conf :tangle ~/.gitconfig"))
+ (add-to-list 'org-structure-template-alist '("du" . "src conf :tangle ~/.config/dunst/dunstrc")))
#+end_src
* Autocompletion
** Ivy
** Ivy-rich
#+begin_src emacs-lisp
(use-package ivy-rich
- :after ivy
+ :after (ivy counsel)
:config (ivy-rich-mode))
#+end_src
** Counsel
:straight (:type built-in))
#+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))))
#+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.
(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.
(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)
"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
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
*** 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/
+*** General
+#+begin_src conf :tangle ~/.config/dunst/dunstrc
+ [global]
+ font = "JetBrains Mono Medium Nerd Font 11"
+ allow_markup = yes
+ format = "<b>%s</b>\n%b"
+ sort = no
+ indicate_hidden = yes
+ alignment = center
+ bounce_freq = 0
+ show_age_threshold = 60
+ word_wrap = yes
+ ignore_newline = no
+ geometry = "400x5-20+20"
+ transparency = 0
+ idle_threshold = 120
+ monitor = 0
+ sticky_history = yes
+ line_height = 0
+ separator_height = 4
+ padding = 8
+ horizontal_padding = 8
+ max_icon_size = 32
+ separator_color = "#585858"
+ startup_notification = false
+#+end_src
+*** Modes
+#+begin_src conf :tangle ~/.config/dunst/dunstrc
+ [frame]
+ width = 4
+ color = "#585858"
+
+ [shortcuts]
+ close = mod4+c
+ close_all = mod4+shift+c
+ history = mod4+ctrl+c
+
+ [urgency_low]
+ background = "#282828"
+ foreground = "#ebdbb2"
+ highlight = "#ebdbb2"
+ timeout = 5
+
+ [urgency_normal]
+ background = "#282828"
+ foreground = "#ebdbb2"
+ highlight = "#ebdbb2"
+ timeout = 15
+
+ [urgency_critical]
+ background = "#282828"
+ foreground = "#cc241d"
+ highlight = "#ebdbb2"
+ timeout = 0
#+end_src