84 lines
2.7 KiB
Org Mode
84 lines
2.7 KiB
Org Mode
#+title: Dotfiles
|
|
#+author: Aryadev Chavali
|
|
#+description: README for Dotfiles
|
|
|
|
Configurations for a variety of programs. My system is really just
|
|
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. If you're looking for inspiration, this is where it
|
|
dies. I don't maintain this for anyone but me; verily, I have no
|
|
shame about it. Don't expect this to work for you if you're not
|
|
willing to roll your sleeves up.
|
|
* Emacs archives
|
|
On a fresh machine it takes a horrendous amount of time to completely
|
|
setup my Emacs configuration. This is largely due to /straight/ (the
|
|
package manager I use for Emacs) having to pull over 80 git
|
|
repositories for the different packages in my configuration, which is
|
|
obviously a network bound task. In comparison, it takes a much
|
|
shorter time to build the Lisp in these packages then load my
|
|
configuration.
|
|
|
|
Hence I've introduced this measure: a compressed archive of a minimal
|
|
viable configuration for Emacs. This contains my configuration files,
|
|
custom Lisp code, all the repositories for external packages I use and
|
|
the straight package cache. Instead of downloading each repository
|
|
individually, this archive contains all of them immediately.
|
|
|
|
On my current machine after downloading the archive it takes around
|
|
209s to completely build the system including both package and custom
|
|
Lisp compilation. Once this is done Emacs takes less than 1 second to
|
|
boot.
|
|
|
|
*NOTE*: This time doesn't include the native compilation time, as that
|
|
is asynchronous anyway.
|
|
** 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
|