{"id":13443232,"url":"https://github.com/rougier/nano-emacs","last_synced_at":"2025-05-14T01:09:03.632Z","repository":{"id":37409765,"uuid":"303162873","full_name":"rougier/nano-emacs","owner":"rougier","description":"GNU Emacs / N Λ N O - Emacs made simple","archived":false,"fork":false,"pushed_at":"2025-03-11T06:04:15.000Z","size":2544,"stargazers_count":2651,"open_issues_count":41,"forks_count":203,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-03-30T20:00:28.852Z","etag":null,"topics":["design","emacs","lisp"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rougier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"rougier","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-10-11T16:23:57.000Z","updated_at":"2025-03-29T10:22:38.000Z","dependencies_parsed_at":"2023-01-30T02:45:30.161Z","dependency_job_id":"e7a1c015-fe34-41af-bb6b-12b88c8e6cb3","html_url":"https://github.com/rougier/nano-emacs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fnano-emacs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fnano-emacs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fnano-emacs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fnano-emacs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rougier","download_url":"https://codeload.github.com/rougier/nano-emacs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247550667,"owners_count":20956985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["design","emacs","lisp"],"created_at":"2024-07-31T03:01:57.867Z","updated_at":"2025-04-06T21:00:26.550Z","avatar_url":"https://github.com/rougier.png","language":"Emacs Lisp","funding_links":["https://github.com/sponsors/rougier"],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"## GNU Emacs / N Λ N O\n\n**GNU Emacs / N Λ N O** is a set of configuration files for GNU Emacs\nsuch as to provide a nice and consistent look and feel as shown below.\nIt is based on design principles I described in the article \"[On the\ndesign of text Editors](https://arxiv.org/abs/2008.06030)\" that is\navailable on arXiv. The light theme is based on [Material\ncolors](https://material.io/) and the dark theme is based on [Nord\ncolors](https://www.nordtheme.com/).\n\nThe philosophy of nano emacs is to stick as much as possible to\nvanilla emacs without introducing too much dependencies (or none if\npossible) and to keep it modular enough. The idea is for users to copy\nthe part they are interested in such as to include them in their own\nconfiguration.\n\n\u003cdiv\u003e\n\u003cimg src=\"./images/nano-emacs-light.png\" width=47.5%\u003e\n\u003cimg src=\"./images/nano-emacs-dark.png\"  width=47.5%\u003e\n\u003c/div\u003e\n\nNano Emacs is quite close to my other project [Elegant\nEmacs](https://github.com/rougier/elegant-emacs) which might be\nconsidered to be an early prototype.\n\n### Requirements\n\nYou need a recent version of\n[GNU Emacs](https://www.gnu.org/software/emacs/) and to have the\n[Roboto Mono](https://fonts.google.com/specimen/Roboto+Mono) and\n[Fira Code](https://fonts.google.com/specimen/Fira+Code) fonts\ninstalled on your system. There are no other dependencies.\n\n### Quick test\n\nThe easiest way to test nano emacs is to clone the directory on your\ndesktop and to type (from inside the cloned repository):\n\n```\n$ emacs -q -l nano.el\n```\n\n### Installation\n\nIf you like the result, you can either manually merge the contents of\n[nano.el](nano.el) into your emacs configuration file, or install nano\nthrough the [straight.el](https://github.com/raxod502/straight.el) package\nmanager.\n\n#### Manual Installation\nTo merge the [nano.el](nano.el) contents with your emacs configuration,\nyou'll need to modify the `load-path` to include the nano emacs repository\nand then call for the different modules. The only mandatory module is\n`nano-faces` that defines 6 faces that are used in other modules.\n\n#### Installation through straight.el\nTo install nano through [straight.el](https://github.com/raxod502/straight.el),\ninstall straight.el, and then add the following snippet into your emacs\nconfiguration:\n``` emacs-lisp\n(straight-use-package\n  '(nano :type git :host github :repo \"rougier/nano-emacs\"))\n```\nfrom here, you may either `(require 'nano)` to pull in the default nano\nconfiguration, or call for the different modules. The only mandatory module\nis `nano-faces` that defines 6 faces that are used in other modules.\n\n### Customization\n\nYou can customize the default font, the proportional font and the font-size.\n\n```emacs-lisp\n(setq nano-font-family-monospaced \"Roboto Mono\")\n```\n\nThis 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.\n\n```emacs-lisp\n(setq nano-font-family-proportional nil)\n```\n\nSet this to the name (as a string) of your favorite variable-width font to enable `variable-width-mode` and `mixed-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.\n\n```emacs-lisp\n(setq nano-font-size 14)\n```\n\nThis sets the font-size of most faces in nano-emacs.\n\n#### Note about load-order\n\nBecause of the way nano-emacs is set up, you need to set these variables *before* 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.\n\n\n\n### Modules\n\n- **[nano.el](./nano.el)** (optional)\n\n  \u003e This module is mostly used to test nano emacs locally. Its content\n    is supposed to be merged into an existing emacs configuration. See\n    [Quick test](#Quick-test) section above.\n\n#### Mandatory\n\n* **[nano-base-colors.el](./nano-base-colors.el)**\n\n  \u003e This module defines the fundamental colors of nano theme.\n    If your Emacs has a theme or color-scheme, make sure its loaded\n    before you load nano-faces so that its colors are used by nano.\n\n* **[nano-faces.el](./nano-faces.el)**\n\n  \u003e This module defines the fundamental faces of nano theme.\n    If your Emacs has a theme or color-scheme, make sure its loaded\n    before you load nano-faces so that its colors are used by nano.\n\n\n#### Optional\n\n- **[nano-theme-light.el](./nano-theme-light.el)** \u0026\n  **[nano-theme-dark.el](./nano-theme-dark.el)**\n\n  \u003e Theses modules define light and dark themes respectively by\n    overriding the base colors. If your Emacs is not themed, you are\n    encouraged to try one of these.\n\n- **[nano-theme.el](./nano-theme.el)**\n\n  \u003e This module derives faces for several popular emacs modes from the\n    nano faces. You can either use them all by calling\n    `(nano-theme)`, or pick what you want by calling your selection\n    of `(nano-theme--` functions.\n\n\n- **[nano-help.el](./nano-help.el)**\n\n  \u003e This module provides a function to display a small help message in\n    the echo area.\n\n- **[nano-splash.el](./nano-splash.el)**\n\n  \u003e This module provides a splash screen when emacs is started.\n\n- **[nano-modeline.el](./nano-modeline.el)**\n\n  \u003e This module defines a header line that is mode dependent and takes\n    care of hiding the modeline when necessary.\n\n- **[nano-layout.el](./nano-layout.el)**\n\n  \u003e This module defines the overall layout of an emacs frame, defining\n    default font, fringes, margins, etc.\n\n- **[nano-defaults.el](./nano-defaults.el)**\n\n  \u003e This modules provides a set of sane default settings for Emacs.\n\n- **[nano-session.el](./nano-session.el)**\n\n  \u003e This modules configures Emacs such that a session is saved from\n    one run to the other.\n\n- **[nano-bindings.el](./nano-bindings.el)**\n\n  \u003e This modules provides a reduced set of keybindings for a few\n    common commands.\n\n- **[nano-counsel.el](./nano-counsel.el)**\n\n  \u003e This modules configures the [counsel\n    package](https://elpa.gnu.org/packages/counsel.html) that needs to\n    have been **installed** by user.\n\n- **[nano-colors.el](./nano-colors.el)**\n\n  \u003e This module provides a collection of colors palettes\n    ([open colors](https://yeun.github.io/open-color/),\n     [material colors](https://material.io/),\n     [nord colors](https://www.nordtheme.com/))\n    with functions for easily accessing them.\n\n#### Experimental\n\n- **[nano-mu4e.el](./nano-mu4e.el)**\n\n  \u003e This package setup the look and feel of mu4e.\n  \n  ![](./images/nano-mu4e.png)\n\n- **[nano-minibuffer.el](./nano-minibuffer.el)**\n\n  \u003e Minibuffer using [mini-frame](https://github.com/muffinmad/emacs-mini-frame)\n  \n  \u003cdiv\u003e\n  \u003cimg src=\"./images/nano-minibuffer-light.png\" width=47.5%\u003e\n  \u003cimg src=\"./images/nano-minibuffer-dark.png\"  width=47.5%\u003e\n  \u003c/div\u003e\n\n\n- **[nano-command.el](./nano-command.el)**\n\n  \u003e This package provides an experimental command line prompt in the\n  \u003e header line. It has not history nor completion but can be used for\n  \u003e one line input such as org-capture.\n\n  ![](./images/nano-command.png)\n\n\n- **[nano-agenda.el](./nano-agenda.el)**\n\n  \u003e An experimental interactive mini agenda that displays side by\n  \u003e side a mini calendar on the left and timestamped org entries on\n  \u003e the right.\n  \n  ![](./images/nano-agenda.png)\n\n### Related works\n\n- [Bespoke theme](https://github.com/mclear-tools/bespoke-themes)\n  Custom medium contrast light and dark themes inspired by nano emacs,\n  elegant emacs, Nord and Solarized themes.\n  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frougier%2Fnano-emacs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frougier%2Fnano-emacs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frougier%2Fnano-emacs/lists"}