(setq display-fill-column-indicator-column 80)
(global-display-fill-column-indicator-mode)
#+end_src
-** Keybinding hints
-When starting a key chord, show possible future steps after 0.3 seconds.
-#+begin_src emacs-lisp
- (use-package which-key
- :config (which-key-mode)
- :custom (which-key-idle-delay 0.3))
-#+end_src
** Highlight todo items in comments
#+begin_src emacs-lisp
(use-package hl-todo
(global-visual-line-mode 1)
(dolist (hook '(prog-mode-hook
calc-trail-mode-hook
+ org-agenda-mode-hook
mu4e-headers-mode-hook))
(add-hook hook (lambda () (visual-line-mode -1))))
#+end_src
** Display number of matches in search
#+begin_src emacs-lisp
(use-package anzu
- :config (global-anzu-mode))
+ :config (global-anzu-mode)
+ :bind
+ ([remap query-replace] . anzu-query-replace)
+ ([remap query-replace-regexp] . anzu-query-replace-regexp))
#+end_src
** Visual bell
Invert modeline color instead of audible bell or the standard visual bell.
(org-startup-indented t)
(org-hide-emphasis-markers t)
(org-fontify-whole-block-delimiter-line nil)
- :bind ("C-c a" . org-agenda))
+ (org-archive-default-command 'org-archive-to-archive-sibling)
+ :bind
+ ("C-c a" . org-agenda)
+ (:map evil-normal-state-map ("ga" . org-archive-subtree-default)))
#+end_src
** Tempo
Define templates for lots of common structure elements. Mostly just used within this file.
:after org
:straight (:type built-in)
:config
- ;; TODO: There's gotta be a more efficient way to write this
- (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
- (add-to-list 'org-structure-template-alist '("sp" . "src conf :tangle ~/.spectrwm.conf"))
- (add-to-list 'org-structure-template-alist '("ash" . "src shell :tangle ~/.config/ash/ashrc"))
- (add-to-list 'org-structure-template-alist '("pi" . "src conf :tangle ~/.config/picom/picom.conf"))
- (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"))
- (add-to-list 'org-structure-template-alist '("za" . "src conf :tangle ~/.config/zathura/zathurarc"))
- (add-to-list 'org-structure-template-alist '("ff1" . "src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css"))
- (add-to-list 'org-structure-template-alist '("ff2" . "src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userContent.css"))
- (add-to-list 'org-structure-template-alist '("xr" . "src conf :tangle ~/.Xresources"))
- (add-to-list 'org-structure-template-alist '("tm" . "src conf :tangle ~/.tmux.conf"))
- (add-to-list 'org-structure-template-alist '("gp" . "src conf :tangle ~/.gnupg/gpg.conf"))
- (add-to-list 'org-structure-template-alist '("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf")))
+ (dolist (addition '(("el" . "src emacs-lisp")
+ ("el" . "src emacs-lisp")
+ ("sp" . "src conf :tangle ~/.spectrwm.conf")
+ ("ash" . "src shell :tangle ~/.config/ash/ashrc")
+ ("pi" . "src conf :tangle ~/.config/picom/picom.conf")
+ ("git" . "src conf :tangle ~/.gitconfig")
+ ("du" . "src conf :tangle ~/.config/dunst/dunstrc")
+ ("za" . "src conf :tangle ~/.config/zathura/zathurarc")
+ ("ff1" . "src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css")
+ ("ff2" . "src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userContent.css")
+ ("xr" . "src conf :tangle ~/.Xresources")
+ ("tm" . "src conf :tangle ~/.tmux.conf")
+ ("gp" . "src conf :tangle ~/.gnupg/gpg.conf")
+ ("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf")))
+ (add-to-list 'org-structure-template-alist addition)))
#+end_src
* Autocompletion
** Ivy
(defun sync-calendar ()
"Sync calendars with vdirsyncer"
(interactive)
- (shell-command "vdirsyncer -vcritical sync"))
+ (async-shell-command "vdirsyncer sync"))
(use-package calfw
:bind (:map cfw:calendar-mode-map ("C-S-u" . sync-calendar)))
set -o vi
#+end_src
*** Functions
-**** Interact with 0x0
-#+begin_src shell :tangle ~/.config/ash/ashrc
- zxz="https://envs.sh"
- ufile() { curl -F"file=@$1" "$zxz" ; }
- upb() { curl -F"file=@-;" "$zxz" ; }
- uurl() { curl -F"url=$1" "$zxz" ; }
- ushort() { curl -F"shorten=$1" "$zxz" ; }
- uclip() { xclip -out | curl -F"file=@-;" "$zxz" ; }
-#+end_src
**** Finger
#+begin_src shell :tangle ~/.config/ash/ashrc
finger() {
#+end_src
**** Upload to ftp.armaanb.net
#+begin_src shell :tangle ~/.config/ash/ashrc
- pubup() {
- rsync "$1" "root@armaanb.net:/var/ftp/pub/${2}"
- echo "https://ftp.armaanb.net/pub/"$(basename "$1") | tee /dev/tty | xclip -sel c
+ _uprint() {
+ echo "https://l.armaanb.net/$(basename "$1")" | tee /dev/tty | xclip -sel c
+ }
+
+ _uup() {
+ rsync "$1" "root@armaanb.net:/var/ftp/pub/$2" --chmod 644
+ }
+
+ ufile() {
+ _uup "$1" "$2"
+ _uprint "$1"
+ }
+
+ uclip() {
+ tmp=$(mktemp)
+ xclip -o -sel c >> "$tmp"
+ basetmp=$(echo "$tmp" | tail -c +5)
+ _uup "$tmp" "$basetmp"
+ _uprint "$basetmp"
+ rm -f "$tmp"
}
#+end_src
*** Exports
alias gps='gpg --keyserver keyserver.ubuntu.com --search-keys'
alias gpp='gpg --keyserver keyserver.ubuntu.com --recv-key'
alias plan='T=$(mktemp) && \
- rsync root@armaanb.net:/etc/finger/plan.txt "$T" && \
- TT=$(mktemp) && \
- head -n -2 $T > $TT && \
- /bin/nvim $TT && \
- echo "\nLast updated: $(date -R)" >> "$TT" && \
- fold -sw 72 "$TT" > "$T"| \
- rsync "$T" root@armaanb.net:/etc/finger/plan.txt'
+ rsync root@armaanb.net:/etc/finger/plan.txt "$T" && \
+ TT=$(mktemp) && \
+ head -n -2 $T > $TT && \
+ /bin/nvim $TT && \
+ echo >> "$TT" && \
+ echo "Last updated: $(date -R)" >> "$TT" && \
+ fold -sw 72 "$TT" > "$T"| \
+ rsync "$T" root@armaanb.net:/etc/finger/plan.txt && \
+ rm -f "$T"'
#+end_src
**** Virtual machines, chroots
#+begin_src shell :tangle ~/.config/ash/ashrc