2025-05-09 00:40:46 +01:00
2020-07-07 00:29:26 +01:00
2020-06-06 19:37:00 +01:00
2024-11-01 07:08:09 +00:00
2024-07-01 04:16:05 +01:00
2025-05-08 23:59:19 +01:00
2021-08-24 17:35:36 +01:00
2020-06-27 10:58:21 +01:00
2025-05-08 23:59:01 +01:00
2025-05-08 23:59:48 +01:00
2023-03-19 17:55:34 +00:00
2025-02-17 16:36:42 +00:00
2025-05-09 00:24:34 +01:00
2024-05-13 17:33:16 +05:30
2024-04-23 17:08:42 +05:30
2025-05-09 00:40:46 +01:00

Dotfiles

Configurations for a variety of programs. My system is really just composed of two things:

  • Emacs
  • The bootstrap for Emacs

emacs-screenshot.png

Setup

Assumptions:

  • You're on Linux
  • This repository is located at ~/Dotfiles
  • You have GNU/stow
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

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:

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/

And this script sends it over via rsync

rsync -avz --info=progress2 --info=name0 emacs-config.tar.zst \
      root@aryadevchavali.com:/var/www/html/resources
Description
No description provided
Readme MIT 3.8 MiB
Languages
Emacs Lisp 74%
Shell 10.1%
YASnippet 8.5%
Python 5.9%
Lua 1.5%