{"id":24196628,"url":"https://github.com/monkeyjunglejuice/matrix-emacs-theme","last_synced_at":"2025-03-03T08:21:03.610Z","repository":{"id":45116211,"uuid":"439158024","full_name":"monkeyjunglejuice/matrix-emacs-theme","owner":"monkeyjunglejuice","description":"\"Unfortunately, no one can be told what The Matrix Theme is. You’ll have to see it for yourself.\" —Morpheus","archived":false,"fork":false,"pushed_at":"2024-02-14T07:47:57.000Z","size":788,"stargazers_count":22,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-02-14T08:39:00.634Z","etag":null,"topics":["color-scheme","dark-mode","dark-theme","emacs-package","emacs-theme","matrix-theme"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monkeyjunglejuice.png","metadata":{"files":{"readme":"README.org","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}},"created_at":"2021-12-16T23:51:44.000Z","updated_at":"2024-04-15T00:34:29.166Z","dependencies_parsed_at":"2024-02-14T08:45:17.204Z","dependency_job_id":null,"html_url":"https://github.com/monkeyjunglejuice/matrix-emacs-theme","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/monkeyjunglejuice%2Fmatrix-emacs-theme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkeyjunglejuice%2Fmatrix-emacs-theme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkeyjunglejuice%2Fmatrix-emacs-theme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkeyjunglejuice%2Fmatrix-emacs-theme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monkeyjunglejuice","download_url":"https://codeload.github.com/monkeyjunglejuice/matrix-emacs-theme/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241630398,"owners_count":19993831,"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":["color-scheme","dark-mode","dark-theme","emacs-package","emacs-theme","matrix-theme"],"created_at":"2025-01-13T19:36:49.444Z","updated_at":"2025-03-03T08:21:03.583Z","avatar_url":"https://github.com/monkeyjunglejuice.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"* \"Unfortunately, no one can be told what The Matrix Theme is. You’ll have to see it for yourself\" —Morpheus\n\nI was looking for an almost monochrome green-on-black theme for the darker surroundings, because it helps me to focus, for some reason.\n\n** Screenshots\n\n*** Tuareg (OCaml)\n[[file:screenshots/tuareg.png]]\n*** Dired + Selectrum + Marginalia\n[[file:screenshots/dired.png]]\n*** Magit\n[[file:screenshots/magit.png]]\n\n** Colors\n\nThere are only three base colors used:\n\n- *Matrix Green*: coming in different shades and luminositiy for syntax highlighting\n- *Blue*: for infos, hints, notifications and diff-added\n- *Red*: for warnings, errors and diff-removed\n\n** Typography\n\nDue to the the reduced amount of colors, this theme makes use of font styles: italic, a lighter weight and an alternative monospaced font, configured via ~fixed-pitch-serif~. The latter is used to distinguish strings, comments and documentation.\n\nMonospace fonts come in different character width. If your ~default~ and ~fixed-pitch-serif~ have a different width, then the columns will not align with each other. If you don't set your ~fixed-pitch-serif~ explicitly, then a substitute font for ~fixed-pitch-serif~ will be chosen by Emacs, which may or may not go well with your ~default~ font.\n\nFor best results, I recommend to configure Emacs' primary font ~default~ and a secondary font ~fixed-pitch-serif~ (examples below). Each monospaced font *should have the same width*. Here are some font pairings that work well together. You can set up one as your ~default~ and the other one as ~fixed-pitch-serif~:\n\n| ~default~                    | ~fixed-pitch-serif~          | Download                                  |\n|------------------------------+------------------------------+-------------------------------------------|\n| Iosevka                      | Iosevka Slab                 | https://typeof.net/Iosevka                |\n| Recursive Mono Linear Static | Recursive Mono Casual Static | https://www.recursive.design              |\n| Courier Prime Code           | Courier Prime                | https://quoteunquoteapps.com/courierprime |\n| Fira Code ~:weight 'normal~  | Fira Code ~:weight 'light~   | https://github.com/tonsky/FiraCode        |\n\n/If you know other font pairs that have exactly the same width and look nicely together, please let me know (create an issue or PR) and I will add your pairing to the table./\n\nTo disable this feature, simply set your ~fixed-pitch-serif~ to the same font as your ~default~.\n\n#+caption: Example font config\n#+begin_src emacs-lisp\n  (defun my-fonts ()\n    \"Set the default fonts.\"\n    (set-face-attribute 'default nil\n                        :family \"Recursive Mono Linear Static\"\n                        :slant  'normal\n                        :weight 'normal\n                        :width  'normal\n                        :height 120)\n    (set-face-attribute 'fixed-pitch nil\n                        :family \"Recursive Mono Linear Static\"\n                        :slant  'normal\n                        :weight 'normal\n                        :width  'normal\n                        :height 120)\n    (set-face-attribute 'fixed-pitch-serif nil\n                        :family \"Recursive Mono Casual Static\"\n                        :slant  'normal\n                        :weight 'normal\n                        :width  'normal\n                        :height 120)\n    (set-face-attribute 'variable-pitch nil\n                        :family \"Recursive Sans Casual Static\"\n                        :slant  'normal\n                        :weight 'normal\n                        :width  'normal\n                        :height 140))\n\n  (my-fonts) ; Apply the function\n\n\n  (defun my-modeline ()\n    \"Custom modeline styling.\"\n    (set-face-attribute 'mode-line nil\n                        :family \"Recursive Mono Linear Static\"\n                        :slant  'normal\n                        :weight 'normal\n                        :width  'normal\n                        :height 100)\n    (set-face-attribute 'mode-line-inactive nil\n                        :family \"Recursive Mono Linear Static\"\n                        :slant  'normal\n                        :weight 'normal\n                        :width  'normal\n                        :height 100))\n\n  (my-modeline) ; Apply the function\n#+end_src\n\n** Themed Packages/Modes\n\nNon-exhaustive list of explicitly themed packages:\n\n- ansi colors\n- term colors\n- shell-script-mode\n- dired\n- dired-subtree\n- eldoc\n- proced\n- eshell\n- comint\n- completions/icomplete\n- diff\n- package\n- customization\n- info\n- message\n- erc\n- table\n- tex\n- outline\n- org-mode\n- org-tree-slide\n- shortdoc\n- compilation\n- whitespace\n- smartparens\n- rainbow-delimiters (to make the parens /less/ visible)\n- paren-face\n- git-commit\n- magit\n- git-gutter-fringe\n- diff-hl\n- company\n- flymake\n- flycheck\n- lsp-mode\n- eglot\n- csv-mode\n- css-mode\n- web-mode\n- slime\n- sly\n- geiser\n- cider\n- clojure-mode\n- tuareg\n- merlin\n- merlin-eldoc\n- utop\n- selectrum\n- marginalia\n- consult\n- helm\n- adoc-mode\n- highlight-indent-guides\n- notmuch\n- switch-window\n- telega\n- beancount\n- w3m\n- elfeed\n- rg\n- wgrep\n\n** Installation\n\n*** With Emacs package manager (from Melpa)\n\n*1.* 'M-x list-packages RET'\n\n*2.* Search for 'the-matrix-theme'\n\n*3.* Hit the 'i' key to mark the package for installation\n\n*4.* Hit 'x' to execute\n\nIf you cannot find \"the-matrix-theme\" between all the packages, it could mean that Melpa may be not yet enabled in your Emacs.\nHere's the official guide how to enable Melpa: https://melpa.org/#/getting-started\n\n*** Manual Installation\n\n*1.* Create your Emacs themes directory if it does not yet exist:\n#+begin_src sh\n  mkdir ~/.emacs.d/themes/\n#+end_src\n\n*2.* Then change into your Emacs themes directory and clone this repository:\n#+begin_src sh\n  cd ~/.emacs.d/themes/\n  git clone https://github.com/monkeyjunglejuice/matrix-emacs-theme.git\n#+end_src\n\n*3.* Only if you had to create the themes directory in step 1, put this in your Emacs init file (example for Linux/Unix):\n#+begin_src emacs-lisp\n  (let ((basedir \"~/.emacs.d/themes/\"))\n    (dolist (f (directory-files basedir))\n      (if (and (not (or (equal f \".\") (equal f \"..\")))\n               (file-directory-p (concat basedir f)))\n          (add-to-list 'custom-theme-load-path (concat basedir f)))))\n#+end_src\n\n*4.* (Re)start Emacs. You can now disable your current Emacs theme 'M-x disable-theme ... RET' and then 'M-x load-theme RET the-matrix RET'\n\n** Current Status\n\nI'm using this theme on a daily basis for writing OCaml, Lisp, Org, HTML and CSS. So I'll improve it continiously. I'll also would like to make it work for Terminal and TTY.\n\n- [X] *Graphical Emacs* Works as expected\n- [ ] *Terminal emulator* Usable, but colored backgrounds (strings, errors, etc.) don't look pretty yet\n- [ ] *TTY* There's no workaround yet to make colored backgrounds (strings, errors, etc.) readable\n\n*** Tested with:\n\n- [X] Emacs 27.1 on Ubuntu 21.10\n- [ ] Emacs 26.1 on Debian 10.9.0\n- [ ] Emacs 27 on Windows 10\n- [ ] Emacs 26 on Windows 10\n- [ ] Emacs 27 on MacOS\n- [ ] Emacs 26 on MacOS\n\n** Contribute\n\nIf you have issues with the theme or something looks odd, please open an issue. You are very welcome to add support for further packages/modes. See also 'Current Status'\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonkeyjunglejuice%2Fmatrix-emacs-theme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonkeyjunglejuice%2Fmatrix-emacs-theme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonkeyjunglejuice%2Fmatrix-emacs-theme/lists"}