2

GitHub - alopezrivera/Seaman-Emacs: Literate, layer-based Emacs configuration fr...

 11 months ago
source link: https://github.com/alopezrivera/Seaman-Emacs/tree/main
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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.

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 Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK