- Notifications
You must be signed in to change notification settings - Fork202
GNU Emacs / N Λ N O - Emacs made simple
License
rougier/nano-emacs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
GNU Emacs / N Λ N O is a set of configuration files for GNU Emacssuch as to provide a nice and consistent look and feel as shown below.It is based on design principles I described in the article "On thedesign of text Editors" that isavailable on arXiv. The light theme is based onMaterialcolors and the dark theme is based onNordcolors.
The philosophy of nano emacs is to stick as much as possible tovanilla emacs without introducing too much dependencies (or none ifpossible) and to keep it modular enough. The idea is for users to copythe part they are interested in such as to include them in their ownconfiguration.
Nano Emacs is quite close to my other projectElegantEmacs which might beconsidered to be an early prototype.
You need a recent version ofGNU Emacs and to have theRoboto Mono andFira Code fontsinstalled on your system. There are no other dependencies.
The easiest way to test nano emacs is to clone the directory on yourdesktop and to type (from inside the cloned repository):
$ emacs -q -l nano.el
If you like the result, you can either manually merge the contents ofnano.el into your emacs configuration file, or install nanothrough thestraight.el packagemanager.
To merge thenano.el contents with your emacs configuration,you'll need to modify theload-path
to include the nano emacs repositoryand then call for the different modules. The only mandatory module isnano-faces
that defines 6 faces that are used in other modules.
To install nano throughstraight.el,install straight.el, and then add the following snippet into your emacsconfiguration:
(straight-use-package '(nano:type git:host github:repo"rougier/nano-emacs"))
from here, you may either(require 'nano)
to pull in the default nanoconfiguration, or call for the different modules. The only mandatory moduleisnano-faces
that defines 6 faces that are used in other modules.
You can customize the default font, the proportional font and the font-size.
(setq nano-font-family-monospaced"Roboto Mono")
This sets the default monospaced font. Defaults to Roboto Mono. Note that if you set this to a font without proper light or bold weights you will lose many of the key design features of nano-emacs.
(setq nano-font-family-proportionalnil)
Set this to the name (as a string) of your favorite variable-width font to enablevariable-width-mode
andmixed-pitch-mode
. If you have already set this somewhere else, you can use(setq nano-font-family-proportional (face-attribute 'variable-width :family))
to use the same one.
(setq nano-font-size14)
This sets the font-size of most faces in nano-emacs.
Because of the way nano-emacs is set up, you need to set these variablesbefore you call(nano-faces)
and(nano-theme)
. If you change one of these variables after load/calling(nano-faces)
and(nano-theme)
, you will need to call them again for these changes to take effect.
nano.el (optional)
This module is mostly used to test nano emacs locally. Its contentis supposed to be merged into an existing emacs configuration. SeeQuick test section above.
This module defines the fundamental colors of nano theme.If your Emacs has a theme or color-scheme, make sure its loadedbefore you load nano-faces so that its colors are used by nano.
This module defines the fundamental faces of nano theme.If your Emacs has a theme or color-scheme, make sure its loadedbefore you load nano-faces so that its colors are used by nano.
nano-theme-light.el &nano-theme-dark.el
Theses modules define light and dark themes respectively byoverriding the base colors. If your Emacs is not themed, you areencouraged to try one of these.
This module derives faces for several popular emacs modes from thenano faces. You can either use them all by calling
(nano-theme)
, or pick what you want by calling your selectionof(nano-theme--
functions.This module provides a function to display a small help message inthe echo area.
This module provides a splash screen when emacs is started.
This module defines a header line that is mode dependent and takescare of hiding the modeline when necessary.
This module defines the overall layout of an emacs frame, definingdefault font, fringes, margins, etc.
This modules provides a set of sane default settings for Emacs.
This modules configures Emacs such that a session is saved fromone run to the other.
This modules provides a reduced set of keybindings for a fewcommon commands.
This modules configures thecounselpackage that needs tohave beeninstalled by user.
This module provides a collection of colors palettes(open colors,material colors,nord colors)with functions for easily accessing them.
This package setup the look and feel of mu4e.
Minibuffer usingmini-frame
This package provides an experimental command line prompt in theheader line. It has not history nor completion but can be used forone line input such as org-capture.
An experimental interactive mini agenda that displays side byside a mini calendar on the left and timestamped org entries onthe right.
- Bespoke themeCustom medium contrast light and dark themes inspired by nano emacs,elegant emacs, Nord and Solarized themes.