X-Git-Url: https://git.armaanb.net/?p=config.org.git;a=blobdiff_plain;f=config.org;h=697255662ff4fa8185e50180e2ed552477e5fb48;hp=6da58e350e177af6c34edf044a63bd271b45db24;hb=HEAD;hpb=9618f7ba168bf8b63b4b82ab6d9e09ac19a46127 diff --git a/config.org b/config.org index 6da58e3..6972556 100644 --- a/config.org +++ b/config.org @@ -49,7 +49,7 @@ Use the Modus Operandi theme by Protesilaos Stavrou. Its the best theme for Emac (modus-themes-mode-line '3d) (modus-themes-scale-headings t) (modus-themes-diffs 'desaturated) - :config (load-theme 'modus-vivendi t)) + :config (load-theme 'modus-operandi t)) #+end_src ** Typography *** Font @@ -84,12 +84,16 @@ Display relative line numbers except in certain modes. #+begin_src emacs-lisp (global-display-line-numbers-mode) (setq display-line-numbers-type 'relative) - (dolist (no-line-num '(term-mode-hook + (dolist (no-line-num '( + Man-mode-hook + circe-mode-hook + eshell-mode-hook + helpful-mode-hook + org-mode-hook pdf-view-mode-hook shell-mode-hook - org-mode-hook - circe-mode-hook - eshell-mode-hook)) + term-mode-hook + )) (add-hook no-line-num (lambda () (display-line-numbers-mode 0)))) #+end_src ** Highlight matching parenthesis @@ -135,16 +139,20 @@ Highlight whitespace and other bad text practices. ** Visual line mode Soft wrap words and do operations by visual lines in some modes. #+begin_src emacs-lisp - (dolist (hook '(text-mode-hook - org-mode-hook + (dolist (hook '( markdown-mode-hook - mu4e-view-mode-hook)) + mu4e-view-mode-hook + org-mode-hook + text-mode-hook + )) (add-hook hook (lambda () (visual-line-mode 1)))) #+end_src ** Auto fill mode #+begin_src emacs-lisp - (dolist (hook '(scdoc-mode-hook - mu4e-compose-mode-hook)) + (dolist (hook '( + mu4e-compose-mode-hook + scdoc-mode-hook + )) (add-hook hook (lambda () (auto-fill-mode 1)))) #+end_src ** Display number of matches in search @@ -175,6 +183,18 @@ Invert modeline color instead of audible bell or the standard visual bell. (menu-bar-mode -1) (setq-default frame-title-format '("%b [%m]")) #+end_src +** auth-source +#+begin_src emacs-lisp + (setq auth-sources '("~/.emacs.d/authinfo.gpg")) +#+end_src +** Shackle +#+begin_src emacs-lisp + (use-package shackle + :config (shackle-mode) + :custom (shackle-rules '( + (Man-mode :select t) + ))) +#+end_src * Evil mode ** General #+begin_src emacs-lisp @@ -279,14 +299,21 @@ Define templates for lots of common structure elements. Mostly just used within (dolist (addition '( ("ash" . "src shell :tangle ~/.config/ash/ashrc") ("el" . "src emacs-lisp") - ("git" . "src conf :tangle ~/.gitconfig") - ("mb" . "src conf :tangle ~/.mbsyncrc") - ("sp" . "src conf :tangle ~/.spectrwm.conf") - ("tm" . "src conf :tangle ~/.tmux.conf") + ("git" . "src conf :tangle ~/.config/git/config") + ("mb" . "src conf :tangle ~/.config/mbsync/mbsyncrc") + ("tm" . "src conf :tangle ~/.config/tmux/f") ("za" . "src conf :tangle ~/.config/zathura/zathurarc") )) (add-to-list 'org-structure-template-alist addition))) #+end_src +** Tables +#+begin_src emacs-lisp + (use-package org-table-wrap-functions + :straight (:repo "analyticd/org-table-wrap-functions" :host github) + :bind (:map org-mode-map + ("C-\\" . org-table-column-wrap-to-width) + ("C-|" . 'org-table-unwrap-cell-region))) +#+end_src * Autocompletion ** Ivy A well balanced completion framework. @@ -335,13 +362,13 @@ Use mu4e and mbsync for reading emails. Contexts are a not very well known feature of mu4e that makes it super easy to manage multiple accounts. Much better than some of the hacky methods and external packages that I've seen. *** mbsync **** General -#+begin_src conf :tangle ~/.mbsyncrc +#+begin_src conf :tangle ~/.config/mbsync/mbsyncrc Create Near Expunge Both SyncState * #+end_src **** Personal -#+begin_src conf :tangle ~/.mbsyncrc +#+begin_src conf :tangle ~/.config/mbsync/mbsyncrc IMAPStore personal-remote Host imap.mailbox.org User me@armaanb.net @@ -361,7 +388,7 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m Channel personal-channel #+end_src **** School -#+begin_src conf :tangle ~/.mbsyncrc +#+begin_src conf :tangle ~/.config/mbsync/mbsyncrc IMAPStore school-remote SSLType IMAPS Host imap.gmail.com @@ -396,7 +423,7 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m smtpmail-stream-type 'ssl smtpmail-smtp-service '465 mu4e-change-filenames-when-moving t - mu4e-get-mail-command "mbsync -a" + mu4e-get-mail-command "mbsync -a -c ~/.config/mbsync/mbsyncrc" message-citation-line-format "On %a %d %b %Y at %R, %f wrote:\n" message-citation-line-function 'message-insert-formatted-citation-line mu4e-completing-read-function 'ivy-completing-read @@ -458,6 +485,9 @@ Set EWW as default browser except for multimedia which should open in MPV. (interactive) (start-process "mpv" "*mpv*" "mpv" url)) + (setq browse-url-browser-function 'browse-url-generic + browse-url-generic-program "chorizo") + (setq browse-url-handlers (quote (("youtu\\.?be" . browse-url-mpv) @@ -467,7 +497,6 @@ Set EWW as default browser except for multimedia which should open in MPV. ("*.mp4" . browse-url-mpv) ("*.mp3" . browse-url-mpv) ("*.ogg" . browse-url-mpv) - ("." . eww-browse-url) ))) #+end_src ** EWW @@ -652,6 +681,11 @@ The best file manager! :config (evil-collection-define-key 'normal 'dired-mode-map "H" 'dired-hide-dotfiles-mode)) #+end_src +** Man +#+begin_src emacs-lisp + (use-package man + :bind ("C-c t" . man)) +#+end_src ** Git *** Magit A very good Git interface. @@ -686,13 +720,23 @@ Style is basically ddevault's style guide but with 4 spaces instead of 8 char ta (add-hook 'before-save-hook 'clang-format-buffer-smart nil) #+end_src +** KISS +#+begin_src emacs-lisp + (append auto-mode-alist '("/home/armaa/repos/" . sh-mode)) +#+end_src +** Shell +#+begin_src emacs-lisp + (add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p) +#+end_src * General text editing ** Spell checking Spell check in text mode, and in prog-mode comments. #+begin_src emacs-lisp - (dolist (hook '(text-mode-hook + (dolist (hook '( markdown-mode-hook - scdoc-mode-hook)) + scdoc-mode-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)))) @@ -881,11 +925,18 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac **** General program configs #+begin_src shell :tangle ~/.config/ash/ashrc export GPG_TTY="$(tty)" - export MANPAGER='nvim +Man!' + + export GNUPGHOME="$HOME/.local/share/gnupg" + export GOPATH="$HOME/.local/share/go" + export JUPYTER_CONFIG_DIR="$HOME/.config/jupyter" + export IPYTHON_DIR="$HOME/.local/share/ipython" + export DISTCC_DIR="$HOME/.local/state/distcc" + export PAGER='less' export GTK_USE_PORTAL=1 export CDPATH=:~ export LESSHISTFILE=/dev/null + export PASH_KEYID=me@armaanb.net export PASH_LENGTH=20 #+end_src @@ -907,19 +958,20 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac #+begin_src shell :tangle ~/.config/ash/ashrc export KISS_PATH="" export KISS_PATH="$KISS_PATH:$HOME/repos/personal" - export KISS_PATH="$KISS_PATH:$HOME/repos/bin/bin" export KISS_PATH="$KISS_PATH:$HOME/repos/main/core" export KISS_PATH="$KISS_PATH:$HOME/repos/main/extra" export KISS_PATH="$KISS_PATH:$HOME/repos/main/xorg" export KISS_PATH="$KISS_PATH:$HOME/repos/community/community" export KISS_PATH="$KISS_PATH:$HOME/repos/mid/ports" - export KISS_COMPRESS=xz + export KISS_COMPRESS=zst #+end_src **** Compilation flags #+begin_src shell :tangle ~/.config/ash/ashrc - export CFLAGS="-O3 -pipe -march=native" - export CXXFLAGS="$CFLAGS" + export CC=clang + export CFLAGS="-O3 -pipe -march=native -w -D_FORTIFY_SOURCE=1 -fPIE -fPIC" + export CXX=clang++ + export CXXFLAGS="$CFLAGS -stdlib=libc++" export MAKEFLAGS="-j$(nproc)" export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" #+end_src @@ -958,7 +1010,7 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac alias ln='ln -v' alias grep='grep -in' alias mkdir='mkdir -pv' - alias lanex='java -jar ~/.local/share/lxc/lanxchange.jar && rm lxc*' + alias kmake='make LLVM=1 LLVM_IAS=1 YACC=byacc' emacs() { $EDITOR "$@" & } alias vim="emacs" #+end_src @@ -1023,24 +1075,24 @@ Make MPV play a little bit smoother. #+end_src ** Git *** User -#+begin_src conf :tangle ~/.gitconfig +#+begin_src conf :tangle ~/.config/git/config [user] name = Armaan Bhojwani email = me@armaanb.net signingkey = 0FEB9471E19C49C60CFBEB133C9ED82FFE788E4A #+end_src *** Init -#+begin_src conf :tangle ~/.gitconfig +#+begin_src conf :tangle ~/.config/git/config [init] defaultBranch = main #+end_src *** GPG -#+begin_src conf :tangle ~/.gitconfig +#+begin_src conf :tangle ~/.config/git/config [gpg] program = gpg #+end_src *** Sendemail -#+begin_src conf :tangle ~/.gitconfig +#+begin_src conf :tangle ~/.config/git/config [sendemail] smtpserver = smtp.mailbox.org smtpuser = me@armaanb.net @@ -1049,12 +1101,12 @@ Make MPV play a little bit smoother. confirm = auto #+end_src *** Submodule -#+begin_src conf :tangle ~/.gitconfig +#+begin_src conf :tangle ~/.config/git/config [submodule] recurse = true #+end_src *** Aliases -#+begin_src conf :tangle ~/.gitconfig +#+begin_src conf :tangle ~/.config/git/config [alias] stat = diff --stat sclone = clone --depth 1 @@ -1069,13 +1121,13 @@ Make MPV play a little bit smoother. pushnc = push -o skip-ci #+end_src *** Commit -#+begin_src conf :tangle ~/.gitconfig +#+begin_src conf :tangle ~/.config/git/config [commit] gpgsign = true verbose = true #+end_src *** Tag -#+begin_src conf :tangle ~/.gitconfig +#+begin_src conf :tangle ~/.config/git/config [tag] gpgsign = true #+end_src @@ -1083,29 +1135,15 @@ Make MPV play a little bit smoother. The best document reader! *** Options #+begin_src conf :tangle ~/.config/zathura/zathurarc - map recolor - map toggle_statusbar set selection-clipboard clipboard set scroll-step 200 set window-title-basename "true" set selection-clipboard "clipboard" #+end_src -*** Colors -#+begin_src conf :tangle ~/.config/zathura/zathurarc - set default-bg "#000000" - set default-fg "#ffffff" - set render-loading true - set render-loading-bg "#000000" - set render-loading-fg "#ffffff" - - set recolor-lightcolor "#000000" # bg - set recolor-darkcolor "#ffffff" # fg - set recolor "true" -#+end_src ** Tmux I use tmux in order to keep my st build light. Still learning how it works. -#+begin_src conf :tangle ~/.tmux.conf +#+begin_src conf :tangle ~/.config/tmux/tmux.conf set -g status off set -g mouse on @@ -1117,16 +1155,19 @@ I use tmux in order to keep my st build light. Still learning how it works. set-window-option -g mode-keys vi bind-key -T copy-mode-vi 'v' send -X begin-selection bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard' + unbind C-b + set-option -g prefix None #+end_src ** GPG *** Config -#+begin_src conf :tangle ~/.gnupg/gpg.conf +#+begin_src conf :tangle ~/.local/share/gnupg/gpg.conf default-key 3C9ED82FFE788E4A use-agent #+end_src *** Agent -#+begin_src conf :tangle ~/.gnupg/gpg-agent.conf +#+begin_src conf :tangle ~/.local/share/gnupg/gpg-agent.conf pinentry-program /sbin/pinentry + max-cache-ttl 6000 default-cache-ttl 6000 allow-emacs-pinentry @@ -1152,7 +1193,6 @@ I use tmux in order to keep my st build light. Still learning how it works. #+end_src ** sx #+begin_src shell :tangle ~/.config/sx/sxrc :tangle-mode (identity #o755) - autostart & - dwmblocks & + xhost + exec dwm #+end_src