{"id":15062951,"url":"https://github.com/ichernyshovvv/enlight","last_synced_at":"2025-10-30T09:10:26.618Z","repository":{"id":238796156,"uuid":"797438991","full_name":"ichernyshovvv/enlight","owner":"ichernyshovvv","description":"Highly customizable startup screen for Emacs.","archived":false,"fork":false,"pushed_at":"2025-01-22T03:38:07.000Z","size":182,"stargazers_count":108,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T15:07:57.896Z","etag":null,"topics":["dashboard","emacs","startup"],"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/ichernyshovvv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-05-07T20:46:51.000Z","updated_at":"2025-03-28T07:39:06.000Z","dependencies_parsed_at":"2024-05-08T07:30:55.131Z","dependency_job_id":"4b57d412-7d57-4389-9cbf-8b571e01612f","html_url":"https://github.com/ichernyshovvv/enlight","commit_stats":null,"previous_names":["ichernyshovvv/light-dashboard","ichernyshovvv/enlight"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichernyshovvv%2Fenlight","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichernyshovvv%2Fenlight/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichernyshovvv%2Fenlight/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ichernyshovvv%2Fenlight/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ichernyshovvv","download_url":"https://codeload.github.com/ichernyshovvv/enlight/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247509235,"owners_count":20950232,"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":["dashboard","emacs","startup"],"created_at":"2024-09-24T23:49:00.398Z","updated_at":"2025-10-30T09:10:26.568Z","avatar_url":"https://github.com/ichernyshovvv.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\u003cimg width=\"250em\" src=\"gallery/logo.svg\"/\u003e\u003c/div\u003e\n\nHighly customizable startup screen for Emacs.\n\nPros:\n- lightweight (enlight: 100 loc, enlight-menu: 170 loc) and fast\n- no external dependencies (except for [compat](https://github.com/emacs-compat/compat))\n- very flexible. `enlight-content` custom is just a string and you decide what\n  to put into it. That might be just a reminder with a list of tasks to do\n  today. Or a menu with your often used commands. Or a full-blown dashboard with\n  a lot of useful (or not) blocks of information (org-agenda, notmuch new emails\n  count, whatever). See the screenshots below.\n\nTOC\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Screenshots and configuration examples](#screenshots-and-configuration-examples)\n- [For evil users](#for-evil-users)\n- [Thanks](#thanks)\n\n## Installation\n\nThis package is available on [MELPA](https://melpa.org/#/getting-started).\n\n``` elisp\nM-x package-install enlight\n```\n\n## Usage\n\n### Opening at startup\n\nYou can set `initial-buffer-choice` custom variable to #'enlight in\norder to show enlight right after Emacs startup:\n\n``` elisp\n(setopt initial-buffer-choice #'enlight)\n```\n\n### Opening manually\n\nAlso you always can switch to the buffer by calling\n\n```\nM-x enlight-open\n```\n\nBy default, it will open the buffer in the current window, but you can change\nthe behaviour by customizing `display-buffer-alist` variable.\n\n## Screenshots and configuration examples\n\n### Simple menu\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"gallery/menu.gif\" alt=\"Demo gif\"/\u003e\u003c/p\u003e\n\n``` elisp\n(use-package enlight\n  :custom\n  (enlight-content\n   (concat\n    (propertize \"MENU\" 'face 'highlight)\n    \"\\n\"\n    (enlight-menu\n     '((\"Org Mode\"\n\t(\"Org-Agenda (current day)\" (org-agenda nil \"a\") \"a\"))\n       (\"Downloads\"\n\t(\"Transmission\" transmission \"t\")\n\t(\"Downloads folder\" (dired \"~/Downloads\") \"a\"))\n       (\"Other\"\n\t(\"Projects\" project-switch-project \"p\")))))))\n```\n\n### Using grid.el\n\nYou can use [grid.el](https://github.com/ichernyshovvv/grid.el) to construct a\nbit more complex layouts.\n\n``` elisp\n(use-package grid\n  :init\n  (unless (package-installed-p 'grid)\n    (package-vc-install\n     '(grid\n       :vc-backend Git\n       :url \"https://github.com/ichernyshovvv/grid.el\"\n       :branch \"master\"))))\n```\n\n#### Two menus placed side by side\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"gallery/side-by-side.png\"/\u003e\n\u003c/p\u003e\n\n``` elisp\n(require 'grid)\n\n(use-package enlight\n  :custom\n  (enlight-content\n   (grid-get-row\n    `(,(enlight-menu\n        '((\"Org Mode\"\n           (\"Org-Agenda (current day)\" (org-agenda nil \"a\") \"a\"))\n          (\"Downloads\"\n           (\"Transmission\" transmission \"t\")\n           (\"Downloads folder\" (dired \"~/Downloads\") \"a\"))\n          (\"Other\"\n           (\"Projects\" project-switch-project \"p\"))))\n      \"   \"\n      ,(enlight-menu\n        `((\"Enlight Settings\"\n           (\"Jump to the config\"\n            (progn\n              (find-file ,user-init-file)\n              (goto-char (point-min))\n              (search-forward \"use-package enlight\"))\n            \"j\")\n           (\"Update\"\n            (let ((beg (point)))\n              (with-current-buffer\n                  (find-file-noselect ,user-init-file)\n                (goto-char (point-min))\n                (search-forward \"use-package enlight\")\n                (eval-defun nil)\n                (enlight))\n              (goto-char beg))\n            \"g\"))))))))\n```\n\n#### Complex layout\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"gallery/complex.png\"/\u003e\n\u003c/p\u003e\n\n``` elisp\n(require 'grid)\n\n(defvar enlight-lipsum \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\")\n\n(defface enlight-yellow-bold\n  '((t (:foreground \"#cabf00\" :bold t)))\n  \"Yellow bold face\")\n\n(defvar enlight-guix\n  (propertize\n   \" ..                             `.\n `--..```..`           `..```..--`   \n   .-:///-:::.       `-:::///:-.     \n      ````.:::`     `:::.````        \n           -//:`    -::-             \n            ://:   -::-              \n            `///- .:::`              \n             -+++-:::.               \n              :+/:::-                \n              `-....`                \"\n   'face 'enlight-yellow-bold))\n\n(defvar enlight-guix-widget\n  `( :content ,(concat \"\\n\" (propertize \"Block 1\" 'face 'enlight-yellow-bold)\n\t\t       \"\\nGUIX MANAGEMENT WIDGET\\n\\n\")\n     :width 22 :border t :align center :padding 2))\n\n(defvar enlight-email-width\n  `( :content\n     ,(concat \"\\n\" (propertize \"Block 2\" 'face 'enlight-yellow-bold)\n\t      \"\\nEMAIL WIDGET\\n\\n\")\n     :padding 2 :width 22 :align center :border t))\n\n(defvar enlight-weather-width\n  `( :content\n     ,(concat \"\\n\" (propertize \"Block 3\" 'face 'enlight-yellow-bold)\n\t      \"\\nWEATHER WIDGET\\n\\n\")\n     :padding 2 :width 22 :border t :align center))\n\n(defvar enlight-calendar\n  (progn\n    (calendar)\n    (diary-mark-entries)\n    (prog1 (with-current-buffer (buffer-name (current-buffer))\n\t     (buffer-string))\n      (calendar-exit))))\n\n(use-package enlight\n  :custom\n  (enlight-content\n   (concat\n    (grid-get-box `( :align center :content ,enlight-guix :width 80))\n    (grid-get-row\n     (list\n      (grid-get-box\n       (concat\n\t(grid-get-box\n\t `( :content\n\t    ,(concat\n\t      (grid-get-box `( :content ,(propertize \"HEADER\" 'face 'highlight)\n\t\t\t       :width 80 :align center))\n\t      (grid-get-row\n\t       `(,enlight-guix-widget\n\t\t \"     \"\n\t\t ,enlight-email-width\n\t\t \"     \"\n\t\t ,enlight-weather-width)))\n\t    :width 80))\n\tenlight-calendar \"\\n\"\n\t(grid-get-row\n\t `(,(concat\n\t     (propertize \"MENU\" 'face 'highlight)\n\t     \"\\n\"\n\t     (enlight-menu\n\t      '((\"Org Mode\"\n\t\t (\"Org-Agenda (current day)\" (org-agenda nil \"a\") \"a\"))\n\t\t(\"Downloads\"\n\t\t (\"Transmission\" transmission \"t\")\n\t\t (\"Downloads folder\" (dired \"~/Downloads\") \"a\"))\n\t\t(\"Other\"\n\t\t (\"Projects\" project-switch-project \"p\")))))\n\t   ,(grid-get-column\n\t     `(,(propertize \"THINGS TO REMEMBER\" 'face 'highlight)\n\t       (:content ,enlight-lipsum :width 50))))))))))))\n```\n\n## For evil users\n\nThis package does not work properly in evil mode. Feel free to send a PR to\nevil-collection. I have no any experience either in using evil mode or writing\nevil integrations.\n\n## Thanks\n\n- Thanks to [a13](https://github.com/a13) and [progfolio](https://github.com/progfolio) for code review.\n- Thanks to [G-LDM-N](https://github.com/G-LDM-N) for the logo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichernyshovvv%2Fenlight","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fichernyshovvv%2Fenlight","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fichernyshovvv%2Fenlight/lists"}