Update the README and make it more user-friendly.
Add a link to the thread I wrote
This commit is contained in:
parent
263abac66d
commit
a6fa2219b7
1 changed files with 77 additions and 49 deletions
|
@ -4,59 +4,27 @@
|
|||
#+language: en
|
||||
#+options: ':t toc:nil num:t author:t email:t
|
||||
|
||||
This configuration is inspired from the work of [[https://github.com/protesilaos/dotfiles/blob/master/emacs/.emacs.d/prot-emacs.org][my hero Prot]]. I've
|
||||
copied straight from his config file, because I think the explanations
|
||||
he has created are worthwhile and should be read by everyone. Prot's
|
||||
files are all prefixed with =prot-emacs-*=. I have changed this to
|
||||
=unravel-*=. The reason for this is that I have picked up only what I
|
||||
need and changed it based on my usage. As such, any issues you face
|
||||
with this configuration are likely introduced by me.
|
||||
* Quick Start
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:2818C76B-3A6D-4676-8159-ED7BBFA45501
|
||||
:CREATED: [2024-12-19 Thu 17:06]
|
||||
:END:
|
||||
|
||||
I use emacs on Mac OSX as my primary development environment. I
|
||||
install the latest available pre-compiled Emacs (with native
|
||||
compilation), as provided by Jimeh here: [[https://github.com/jimeh/emacs-builds?tab=readme-ov-file][jimeh/emacs-builds]].
|
||||
1. Install the latest available Emacs version, with native-compilation
|
||||
and tree-sitter support.
|
||||
- I use the latest release from [[https://github.com/jimeh/emacs-builds?tab=readme-ov-file][jimeh/emacs-builds]] on MacOSX
|
||||
2. Clone this repository as your =.emacs.d= folder and start Emacs.
|
||||
3. When you open any programming language file, run =M-x eglot= to
|
||||
start an LSP server in the background and connect to it.
|
||||
4. Go through the Table of Contents below and read details of
|
||||
whichever section you are interested in knowing more about. Reach
|
||||
out with questions, they will help me improve the README further!
|
||||
|
||||
Any quote without attribution is directly taken from [[https://github.com/protesilaos/dotfiles/blob/master/emacs/.emacs.d/prot-emacs.org][Prot's org file]].
|
||||
Prot gives even more detailed explanations in his writing, I have only
|
||||
picked snippets. The interested reader should definitely go through
|
||||
Prot's notes.
|
||||
|
||||
To make a change to this Emacs configuration, edit this file and then
|
||||
type =C-c C-v C-t= (=M-x org-babel-tangle=) to republish all the
|
||||
relevant files.
|
||||
|
||||
#+begin_quote
|
||||
What you are now reading is not a common literate configuration of
|
||||
Emacs. In most such cases, you have a generic =init.el= with a call to
|
||||
the ~org-babel-load-file~ function that gets an Org document as its
|
||||
value. That method works but is very slow, because we have to load Org
|
||||
before starting Emacs (and Org loads a bunch of other things we do not
|
||||
need at such an early stage).
|
||||
|
||||
Whereas this Org document serves as (i) a single point of entry to my
|
||||
Emacs setup and (ii) the origin of all of my Emacs configurations.
|
||||
While I am defining everything in a single Org file, I am not actually
|
||||
starting Emacs by reading this file. Rather, I am instructing Org to
|
||||
put the code blocks defined herein in standalone files, organised by
|
||||
scope. The end result is something where you cannot tell whether a
|
||||
literate program was executed or not.
|
||||
|
||||
This is the beauty of it. I can keep editing a single file as the
|
||||
"source of truth", though I can still handle each of the files
|
||||
individually (e.g. someone wants to see how I do a specific thing, so
|
||||
I share only that file as an email attachment---no need to send over
|
||||
this massive document).
|
||||
|
||||
When I want to modify my Emacs setup, I edit this file and then
|
||||
evaluate the following code block or do =C-c C-v C-t=. All files will
|
||||
be updated accordingly.
|
||||
#+end_quote
|
||||
|
||||
#+begin_src emacs-lisp :tangle no :results none
|
||||
(org-babel-tangle)
|
||||
#+end_src
|
||||
[ A short thread on the configuration: https://fosstodon.org/@vedang/113685331202099234 (2024-12-20) ]
|
||||
|
||||
* Table of Contents :TOC:
|
||||
- [[#quick-start][Quick Start]]
|
||||
- [[#introduction][Introduction]]
|
||||
- [[#the-early-initel-file][The =early-init.el= file]]
|
||||
- [[#the-early-initel-basic-frame-settings][The =early-init.el= basic frame settings]]
|
||||
- [[#the-early-initel-tweaks-to-startup-time-and-garbage-collection][The =early-init.el= tweaks to startup time and garbage collection]]
|
||||
|
@ -90,6 +58,7 @@ be updated accordingly.
|
|||
- [[#the-unravel-essentialsel-block-with-basic-configurations][The =unravel-essentials.el= block with basic configurations]]
|
||||
- [[#the-unravel-essentialsel-section-for-fixing-path-on-osx-exec-path-from-shell][The =unravel-essentials.el= section for fixing PATH on OSX (~exec-path-from-shell~)]]
|
||||
- [[#the-unravel-essentialsel-configuration-to-track-recently-visited-files-recentf][The =unravel-essentials.el= configuration to track recently visited files (~recentf~)]]
|
||||
- [[#the-unravel-essentialsel-configuration-to-track-my-place-in-visited-files-saveplace][The =unravel-essentials.el= configuration to track my place in visited files (~saveplace~)]]
|
||||
- [[#the-unravel-essentialsel-settings-for-bookmarks][The =unravel-essentials.el= settings for bookmarks]]
|
||||
- [[#the-unravel-essentialsel-settings-for-registers][The =unravel-essentials.el= settings for registers]]
|
||||
- [[#the-unravel-essentialsel-settings-for-files][The =unravel-essentials.el= settings for files]]
|
||||
|
@ -214,6 +183,65 @@ be updated accordingly.
|
|||
- [[#the-prot-windowel-library][The =prot-window.el= library]]
|
||||
- [[#the-vedang-personalel-module][The =vedang-personal.el= module]]
|
||||
|
||||
* Introduction
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: h:D8816D6D-3B30-4ED5-9AE5-892029BA6C24
|
||||
:CREATED: [2024-12-19 Thu 17:05]
|
||||
:END:
|
||||
|
||||
This configuration is inspired from the work of [[https://github.com/protesilaos/dotfiles/blob/master/emacs/.emacs.d/prot-emacs.org][my hero Prot]]. I've
|
||||
copied straight from his config file, because I think the explanations
|
||||
he has created are worthwhile and should be read by everyone. Prot's
|
||||
files are all prefixed with =prot-emacs-*=. I have changed this to
|
||||
=unravel-*=. The reason for this is that I have picked up only what I
|
||||
need and changed it based on my usage. As such, any issues you face
|
||||
with this configuration are likely introduced by me.
|
||||
|
||||
I use emacs on Mac OSX as my primary development environment. I
|
||||
install the latest available pre-compiled Emacs (with native
|
||||
compilation), as provided by Jimeh here: [[https://github.com/jimeh/emacs-builds?tab=readme-ov-file][jimeh/emacs-builds]].
|
||||
|
||||
Any quote without attribution is directly taken from [[https://github.com/protesilaos/dotfiles/blob/master/emacs/.emacs.d/prot-emacs.org][Prot's org file]].
|
||||
Prot gives even more detailed explanations in his writing, I have only
|
||||
picked snippets. The interested reader should definitely go through
|
||||
Prot's notes.
|
||||
|
||||
To make a change to this Emacs configuration, edit this file and then
|
||||
type =C-c C-v C-t= (=M-x org-babel-tangle=) to republish all the
|
||||
relevant files.
|
||||
|
||||
#+begin_quote
|
||||
What you are now reading is not a common literate configuration of
|
||||
Emacs. In most such cases, you have a generic =init.el= with a call to
|
||||
the ~org-babel-load-file~ function that gets an Org document as its
|
||||
value. That method works but is very slow, because we have to load Org
|
||||
before starting Emacs (and Org loads a bunch of other things we do not
|
||||
need at such an early stage).
|
||||
|
||||
Whereas this Org document serves as (i) a single point of entry to my
|
||||
Emacs setup and (ii) the origin of all of my Emacs configurations.
|
||||
While I am defining everything in a single Org file, I am not actually
|
||||
starting Emacs by reading this file. Rather, I am instructing Org to
|
||||
put the code blocks defined herein in standalone files, organised by
|
||||
scope. The end result is something where you cannot tell whether a
|
||||
literate program was executed or not.
|
||||
|
||||
This is the beauty of it. I can keep editing a single file as the
|
||||
"source of truth", though I can still handle each of the files
|
||||
individually (e.g. someone wants to see how I do a specific thing, so
|
||||
I share only that file as an email attachment---no need to send over
|
||||
this massive document).
|
||||
|
||||
When I want to modify my Emacs setup, I edit this file and then
|
||||
evaluate the following code block or do =C-c C-v C-t=. All files will
|
||||
be updated accordingly.
|
||||
#+end_quote
|
||||
|
||||
#+begin_src emacs-lisp :tangle no :results none
|
||||
(org-babel-tangle)
|
||||
#+end_src
|
||||
|
||||
|
||||
* The =early-init.el= file
|
||||
|
||||
#+begin_quote
|
||||
|
|
Loading…
Reference in a new issue