#+title: Dotfiles #+author: Aryadev Chavali #+description: README for Dotfiles General configuration for my system, that system being composed of two things: - Emacs - The bootstrap for Emacs [[file:emacs-screenshot.png]] * Setup Assumptions: - You're on Linux - This repository is located at =~/Dotfiles= - You have [[https://www.gnu.org/software/stow/][GNU/stow]] #+begin_src sh mkdir -p \ ~/.local/src \ ~/.local/bin \ ~/.local/lib \ ~/.local/share \ ~/.config \ ~/Downloads \ ~/Code \ ~/Media \ ~/Projects \ ~/Text; cd ~/Dotfiles; stow Emacs \ tmux \ vim \ Shell \ XServer \ Scripts \ SystemD \ SXHkD \ mpv \ aspell \ ClangFormat \ Dunst \ Zathura; #+end_src * Why use this Please don't. I don't maintain this for anyone but me so don't expect this to work for you if you're not willing to roll your sleeves up. On the other hand, I'd say there's some pretty good work here - particularly in my Emacs configuration. Some highlights are: - A custom [[file:Emacs/.config/emacs/elisp/eshell-prompt.el][eshell prompt]] which provides git status information and a bit of dynamic colouring based on command exit status - A complete [[file:Emacs/.config/emacs/elisp/literate.el][literate]] system which compiles my configuration - A [[file:Emacs/.config/emacs/elisp/better-mode-line.el][better mode line]] which auto configures the default mode line to make it more aesthetically pleasing - 55 line [[file:Emacs/.config/emacs/elisp/elfeed-org.el][package extension]] for elfeed which adds org mode support * Emacs archives 99 Git repositories is a lot for Emacs to pull in order to setup my configuration. Would be nice if I could pull all of it down at once for use instead of having to wait for _straight_ (my Emacs package manager of choice) to do it synchronously. These Emacs archives are an MVC (Minimum Viable Configuration) including all the necessary Lisp which you can pull down and load directly. You should be able to find the latest archive [[https://aryadevchavali.com/resources][here]]. ** Scripts *IMPORTANT*: These are heavy scripts, expect them to take a while. Therefore, if in Emacs, do _not_ run these via ~C-c C-c~ because it will block the main thread. This script generates the archive: #+begin_src sh tar --use-compress-program="zstdmt -19 -T0" \ -cvf emacs-config.tar.zst \ ~/.config/emacs/config.org \ ~/.config/emacs/early-init.el \ ~/.config/emacs/init.el \ ~/.config/emacs/elisp/ \ ~/.config/emacs/.config/custom.el \ ~/.config/emacs/straight/versions/default.el \ ~/.config/emacs/straight/repos/ #+end_src And this script sends it over via rsync #+begin_src sh rsync -avz --info=progress2 --info=name0 emacs-config.tar.zst \ root@aryadevchavali.com:/var/www/html/resources #+end_src You can do the last bit if using Emacs: just open the directory where you've compressed the configuration in ~dired~, open the remote directory in another split, then =M-r= ~dired-rsync~ to copy it over. You get a cute Little progress indicator in the mode line as well!