102 lines
3.1 KiB
Org Mode
102 lines
3.1 KiB
Org Mode
#+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!
|