#+TITLE: Dotfiles #+AUTHOR: Aryadev Chavali #+DESCRIPTION: README for Dotfiles This repository contains all of my custom configurations for programs I use daily. * Setup and installation 1) Clone this repository to =~/Dotfiles= 2) Construct the following directories: + =~/.local= + =src= + =bin= + =lib= + =share= + =~/.config= + =~/Downloads= + =~/Code= + =~/Media= + =~/Projects= 3) Install [[https://www.gnu.org/software/stow/][GNU/stow]] 4) Pick and choose what configurations you want + To install a module use ~stow ~ + To remove a module use ~stow -D ~ GNU/stow just makes it easier to instruct a new user on what to do: you can just setup symlinks from a given module to the root directory yourself. * Recommended usage * Emacs archives At https://aryadevchavali.com/resources/ I maintain a compressed backup of some of =~/.config/emacs=. The purpose of this is simply to escape having to clone this repository just to be able to use my editor: I can just copy then uncompress this backup to get a just-about-working version of my Emacs without having to do any further work. It isn't so I can have a completely working system, just some comfort in an otherwise potentially alien environment. This script generates the archive: #+begin_src sh tar -Jcvf emacs-config.tar.xz \ ~/.config/emacs/config.org \ ~/.config/emacs/early-init.el \ ~/.config/emacs/init.el \ ~/.config/emacs/elisp/ \ ~/.config/emacs/straight/ #+end_src And this script sends it over via rsync #+begin_src sh rsync -avz --info=progress2 --info=name0 emacs-config.tar.xz \ root@aryadevchavali.com:/var/www/html/resources #+end_src * Installing Emacs I like a specific set of flags on my Emacs install, and my configuration kind of depends on them existing as well. Prepackaged installs just won't cut it. So I'd highly recommend cloning and building my personal [[https://github.com/oreodave/emacs-29-custom][Emacs repo]] (currently =v29=). Or just run the following lines: #+begin_src sh cd ~/.local/src; git clone git@github.com:oreodave/emacs-29-custom emacs; cd emacs; sh personal-install; # Will configure, build and attempt to install #+end_src