79 lines
3.8 KiB
Org Mode
79 lines
3.8 KiB
Org Mode
#+BEGIN_CENTER
|
|
#+CAPTION: ThwapMacs: T.H.W.A.P. GNU Emacs Configuration
|
|
#+NAME: logo
|
|
#+ATTR_HTML: :align center
|
|
[[./logos/logo3.png]]
|
|
#+END_CENTER
|
|
|
|
* T.H.W.A.P. Emacs Configuration
|
|
|
|
I recently advised someone against rolling their own emacs configuration. Then I did it, because I'm smart like that.
|
|
As it turns out, yeah, I was wrong. The result of rolling my own is a nice fast distribution that is somewhat opinionated.
|
|
|
|
No doubt I've been helped along that journey by much reading and worthy YouTube Emacs content. And in that spirit I am
|
|
publishing this configuration, and endeavoring to ensure that it is well commented and documented. If you have questions,
|
|
concerns, or suggestions, feel free to start a discussion by opening an issue. If you have suggestions, and can't be asked
|
|
to interact with someone, I get it, feel free to send a PR and we can communicate through code if that works for you.
|
|
|
|
** Installation
|
|
|
|
Simply clone this repository as your ~/.emacs.d directory and start emacs.
|
|
|
|
#+BEGIN_SRC
|
|
$ test -d ~/.emacs.d && mv ~/.emacs.d ~/emacs.d
|
|
$ git clone https://github.com/fuzzy/thwapmacs ~/.emacs.d
|
|
$ emacs # start up emacs in the normal way and let it bootstrap
|
|
#+END_SRC
|
|
|
|
This configuration bootstraps and uses straight.el to manage all package installations.
|
|
|
|
Once you get emacs started, you will quickly find, that it is nearly as minimal as it can be. straight.el and use-package
|
|
will have been bootstrapped, along with golden-ratio. There is a handy note in the keybindings listed on the dashboard
|
|
telling you which keys to press, in order to get to the customization group. From there, you can enable and configure
|
|
all of the avaiable layers of support. That keybinding for reference, is _C-c t C-c_.
|
|
|
|
#+BEGIN_CENTER
|
|
#+CAPTION: An example of the configuration options, in console mode
|
|
#+NAME: config
|
|
#+ATTR_HTML: :align center
|
|
[[./config.png]]
|
|
#+END_CENTER
|
|
|
|
** Help
|
|
|
|
All keybindings set in this configuration are listed on the dashboard. Any other keybindings set by this configuration
|
|
were the recommended defaults from the package. If a non-default was chosen, it is listed in the help information on
|
|
the dashboard.
|
|
|
|
Additionally, with any custom configuration you may do, if you wish your keybindings to be added to the _thwap-map_,
|
|
you may do so with the provided _thwap/add-key-binding_ function, like so:
|
|
|
|
#+begin_src emacs-lisp
|
|
(thwap/add-key-binding
|
|
"M-s"
|
|
'org-edit-special
|
|
"Edit the source at this point, in it's native mode")
|
|
#+end_src
|
|
|
|
This will prefix it with _C-c t_ like all other T.H.W.A.P. Emacs commands, but it will also place the help message
|
|
into the dashboard's greeting message as a reminder.
|
|
|
|
** Features
|
|
|
|
T.H.W.A.P. Emacs (or thwapmacs) is configured to be minimal out of the box, however has rich support for many different
|
|
packages. All of these are off by default with *VERY* few exceptions. Below you will find a list of all the optional
|
|
packages that are natively supported. Further, we'll go over how you can add your own configuration options and take
|
|
advantage of the configuration interface.
|
|
|
|
*** Non-Optional packages
|
|
|
|
1. [[https://github.com/radian-software/straight.el][straight.el]] - straight works with use-package to fetch and setup local installations.
|
|
2. [[https://github.com/jwiegley/use-package][use-package]] - use-package is a fantastic package management system for local installs.
|
|
3. [[https://github.com/roman/golden-ratio.el][golden-ratio.el]] - Window size management for split buffers. Quite handy.
|
|
4. [[https://github.com/emacs-dashboard/emacs-dashboard][emacs-dashboard]] - A nice handy startup screen, filled with fun facts and stuff.
|
|
5. [[https://github.com/joaotavora/yasnippet][yasnippet]] - A handy snippet/macro system for commonly used bits.
|
|
|
|
*** Optional packages
|
|
|
|
1. [[https://github.com/joaotavora/eglot][eglot]] - Emacs Polyglot LSP library (seems like everything uses this).
|