alopezrivera / Seaman-Emacs

Literate, layer-based Emacs configuration framework designed to give you maximal maintainability, extensibility and performance.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Seaman Emacs

Seaman Emacs is a literate, layer-based Emacs configuration framework designed to give you maximal maintainability, extensibility and performance. All in a way you can understand and control from the ground up.

./seaman/startscreen-light.png./seaman/startscreen-dark.png

How to use Seaman

Clone this repository to your .emacs.d. Write your personal configuration in config.org; all emacs-lisp source code blocks will be tangled to init.el every time config.org is saved.

BOM

Package ManagerLiterate Emacs configKeyboard bindings
straight.elconfig.org (tangled to init.el)Emacs + custom bindings

Features out of the box

The Seaman Base Configuration comes with batteries included!

  • UI

    Clean, minimalistic UI

  • Themes

    Easily set light and dark themes, easy theme toggling and circadian theme switching between light and dark themes

  • A good welcome

    Start screen with quick links to recent files, projects, bookmarks, registers and your weekly agenda

  • Full fledged Org mode

    Ready for literate programming, daily planning with org-agenda + org-super-agenda, code notebooks for any language, your own zettelkasten with org-roam and more

  • Full fledged PDF support

    Annotations and highlights you can save directly to the PDF, light and dark mode, text seach and more

  • Magit for version control

    A highlight of Emacs: version-control with the best Git front-end of them all

The Seaman Core

The backbone of Seaman Emacs, the Seaman Core, consists of the elisp code responsible for the

Seaman components: Layers, Modules and Extensions

Emacs has an expansive package landscape, providing it with wide-ranging functionality. Many packages are complementary, and their configuration non-trivial.

Following the approach of Doom Emacs and SpaceMacs, in Seaman Emacs, we combine complementary packages into units called “layers”, each providing a certain set of functionality, for example: PDF handling, LaTeX editing and an Integrated Development Environment.

Layers are composed of:

  • Modules: elisp code to install, load and set up an Emacs package.
  • Extensions: custom elisp code to add functionality, define custom behaviors, etc.

Loading components:

;; Loading a layer
(seaman-layer 'org)

;; Loading a module
(seaman-module 'org-roam)

;; Loading an extension
(seaman-extend 'org-queries)

Contributing

Components (layers mostly) marked with TODO in seaman.org have much room for improvement. For example:

  • The Project interaction layer
  • The IDE layer
  • The LaTeX layer

Adding packages and setting up things is easy within layers! And I would love any help to make these better than they are. If you have a good setup and would like to contribute or give a suggestion you’re more than welcome to! :)

About

Literate, layer-based Emacs configuration framework designed to give you maximal maintainability, extensibility and performance.


Languages

Language:Emacs Lisp 100.0%