X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=config.org;h=158b209a6484ad9ade475f60781e75802957dd15;hb=335b0015c36927d90983385c22bfa899c4903568;hp=12bb0a1e083cd7e607a8b77feba16a91943cb428;hpb=89f9475168989733cfd80ab41cb5503530e56139;p=config.org.git diff --git a/config.org b/config.org index 12bb0a1..158b209 100644 --- a/config.org +++ b/config.org @@ -6,7 +6,7 @@ * Welcome Welcome to my system configuration! This file contains my Emacs configuration, but also my config files for many of the other programs on my system! ** Compatability -I am currently using Emacs 28 with native compilation, so some settings and packages may not be available for older versions of Emacs. This is a purely personal configuration, so while I can guarantee that it works on my setup, it might not work for you. +I am currently using Emacs 27.2 on Linux, so some settings and packages may not be available for older versions of Emacs. This is a purely personal configuration, so while I can guarantee that it works on my setup, it might not work for you. ** Choices I chose to create a powerful, yet not overly heavy Emacs configuration. Things like a fancy modeline, icons, or LSP mode do not increase my productivity, and create visual clutter, and thus have been excluded. @@ -76,7 +76,8 @@ JetBrains Mono is a great programming font with ligatures. The "NF" means that i "[||]" "[<" "[|" "{|" "?." "?=" "?:" "##" "###" "####" "#[" "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_" "__" "~~" "~~>" "~>" "~-" "~@" "$>" "^=" "]#")) - (global-ligature-mode t)) + ;; (global-ligature-mode t)) + ) #+end_src ** Line numbers Display relative line numbers except in certain modes. @@ -201,7 +202,11 @@ Makes commenting super easy ** Undo redo Fix the oopsies! #+begin_src emacs-lisp - (evil-set-undo-system 'undo-redo) + (use-package undo-fu + :config (evil-set-undo-system 'undo-fu)) + + (use-package undo-fu-session + :config (global-undo-fu-session-mode)) #+end_src ** Number incrementing Add back C-a/C-x bindings. @@ -234,7 +239,7 @@ Add back C-a/C-x bindings. :custom (org-ellipsis " ▾") (org-agenda-start-with-log-mode t) - (org-agenda-files (quote ("~/Org/tasks.org" "~/Org/break.org"))) + (org-agenda-files (quote ("~/org/tasks.org"))) (org-log-done 'time) (org-log-into-drawer t) (org-src-tab-acts-natively t) @@ -254,18 +259,19 @@ Define templates for lots of common structure elements. Mostly just used within :after org :straight (:type built-in) :config - (dolist (addition '(("el" . "src emacs-lisp") - ("el" . "src emacs-lisp") - ("sp" . "src conf :tangle ~/.spectrwm.conf") + (dolist (addition '( + ("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf") ("ash" . "src shell :tangle ~/.config/ash/ashrc") - ("pi" . "src conf :tangle ~/.config/picom/picom.conf") + ("el" . "src emacs-lisp") ("git" . "src conf :tangle ~/.gitconfig") - ("za" . "src conf :tangle ~/.config/zathura/zathurarc") - ("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") - ("xm" . "src conf :tangle ~/.config/xmodmap"))) + ("pi" . "src conf :tangle ~/.config/picom/picom.conf") + ("sp" . "src conf :tangle ~/.spectrwm.conf") + ("tm" . "src conf :tangle ~/.tmux.conf") + ("xm" . "src conf :tangle ~/.config/xmodmap") + ("xr" . "src conf :tangle ~/.Xresources") + ("za" . "src conf :tangle ~/.config/zathura/zathurarc") + )) (add-to-list 'org-structure-template-alist addition))) #+end_src * Autocompletion @@ -553,12 +559,8 @@ I never use this, but apparently its very powerful. Another item on my todo list (use-package projectile :config (projectile-mode) :custom ((projectile-completion-system 'ivy)) - :bind-keymap - ("C-c p" . projectile-command-map) - :init - (when (file-directory-p "~/src") - (setq projectile-project-search-path '("~/src"))) - (setq projectile-switch-project-action #'projectile-dired)) + :bind-keymap ("C-c p" . projectile-command-map) + :init (setq projectile-switch-project-action #'projectile-dired)) (use-package counsel-projectile :after projectile @@ -602,13 +604,28 @@ A very good Git interface. :straight (git-email :repo "https://git.sr.ht/~yoctocell/git-email") :config (git-email-piem-mode)) #+end_src -* General text editing -** Indentation -Automatically indent after every change. I'm not sure how much I like this. It slows down the editor and code sometimes ends up in a half-indented state meaning I have to manually reformat using "==" anyways. -#+begin_src emacs-lisp - (use-package aggressive-indent - :config (global-aggressive-indent-mode)) +** C +Modified from https://eklitzke.org/smarter-emacs-clang-format. + +Style is basically ddevault's style guide but with 4 spaces instead of 8 char tabs. +#+begin_src emacs-lisp + (use-package clang-format + :custom (clang-format-style "{ + BasedOnStyle: llvm, + AlwaysBreakAfterReturnType: AllDefinitions, + IndentWidth: 4, + }")) + + (defun clang-format-buffer-smart () + "Reformat buffer if .clang-format exists in the projectile root." + (when (file-exists-p (expand-file-name ".clang-format" (projectile-project-root))) + (when (if (eq major-mode 'c-mode)) + (message "Formatting with clang-format...") + (clang-format-buffer)))) + + (add-hook 'before-save-hook 'clang-format-buffer-smart nil) #+end_src +* General text editing ** Spell checking Spell check in text mode, and in prog-mode comments. #+begin_src emacs-lisp @@ -815,6 +832,8 @@ I'm not a huge fan of how spectrwm handles keybindings, probably my biggest grip program[calendar] = emacsclient -ce '(acheam-calendar)' program[calc] = emacsclient -ce '(progn (calc) (windmove-up) (delete-window))' program[emacs] = emacsclient -c + program[bookmarks] = /home/armaa/src/bin/bookmarks + program[browser] = chorizo bind[email] = MOD+Control+1 bind[irc] = MOD+Control+2 @@ -822,12 +841,15 @@ I'm not a huge fan of how spectrwm handles keybindings, probably my biggest grip bind[calendar] = MOD+Control+4 bind[calc] = MOD+Control+5 bind[emacs] = MOD+Control+Return + bind[bookmarks] = MOD+Control+o + bind[browser] = MOD+Control+p #+end_src *** Quirks Float some specific programs by default. #+begin_src conf :tangle ~/.spectrwm.conf quirk[Castle Menu] = FLOAT quirk[momen] = FLOAT + quirk[pinentry-fltk] = FLOAT #+end_src ** Ash *** Options @@ -851,7 +873,7 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac } _uup() { - rsync "$1" "root@armaanb.net:/var/ftp/pub/$2" --chmod 644 + rsync "$1" "armaa@armaanb.net:/srv/ftp/pub/$2" --chmod 644 --progress } ufile() { @@ -888,8 +910,7 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac export LC_ALL="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8" export LANGUAGE="en_US.UTF-8" - - export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" + export TZ="America/New_York" export KISS_PATH="" export KISS_PATH="$KISS_PATH:$HOME/repos/personal" @@ -897,13 +918,13 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac 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/main/xorg" export KISS_PATH="$KISS_PATH:$HOME/repos/community/community" export KISS_PATH="$KISS_PATH:$HOME/repos/mid/ports" export CFLAGS="-O3 -pipe -march=native" export CXXFLAGS="$CFLAGS" export MAKEFLAGS="-j$(nproc)" + export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" export XDG_DESKTOP_DIR="/dev/null" export XDG_DOCUMENTS_DIR="$HOME/documents" @@ -911,12 +932,11 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac export XDG_MUSIC_DIR="$HOME/music" export XDG_PICTURES_DIR="$HOME/pictures" export XDG_VIDEOS_DIR="$HOME/videos" - #+end_src *** Aliases **** SSH #+begin_src shell :tangle ~/.config/ash/ashrc - alias bhoji-drop='ssh -p 23 root@armaanb.net' + alias poki='ssh armaanb.net' alias irc='ssh root@armaanb.net -t abduco -A irc catgirl freenode' alias union='ssh 192.168.1.18' alias mine='ssh -p 23 root@pickupserver.cc' @@ -939,7 +959,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' + alias lanex='java -jar ~/.local/share/lxc/lanxchange.jar && rm lxc*' emacs() { $EDITOR "$@" & } alias vim="emacs" #+end_src @@ -957,14 +977,14 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac 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" && \ + rsync armaanb.net:/home/armaa/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 && \ + rsync "$T" armaanb.net:/home/armaa/plan.txt && \ rm -f "$T"' #+end_src **** Virtual machines, chroots @@ -1062,6 +1082,11 @@ This file is used for any GNU Readline programs. I use Emacs editing mode mostly gpgsign = true verbose = true #+end_src +*** Tag +#+begin_src conf :tangle ~/.gitconfig + [tag] + gpgsign = true +#+end_src ** Zathura The best document reader! *** Options @@ -1144,28 +1169,21 @@ I use tmux in order to keep my st build light. Still learning how it works. #+end_src *** Agent #+begin_src conf :tangle ~/.gnupg/gpg-agent.conf - pinentry-program /sbin/pinentry-fltk + pinentry-program /sbin/pinentry max-cache-ttl 600 default-cache-ttl 600 allow-emacs-pinentry #+end_src ** Xmodmap -#+begin_src conf :tangle ~/.config/xmodmap - ! +#+begin_src conf (if (eq system-name "frost.armaanb.net") ":tangle ~/.config/xmodmap") ! Unmap left super - ! clear mod4 - ! ! Turn right alt into super - ! remove mod1 = Alt_R add mod4 = Alt_R -#+end_src -#+begin_src conf (if (eq system-name "frost.armaanb.net") ":tangle ~/.config/xmodmap") - ! + ! Swap caps and control - ! remove Lock = Caps_Lock remove Control = Control_L remove Lock = Control_L