{"id":18589748,"url":"https://github.com/onetom/onetomacs","last_synced_at":"2025-10-24T01:35:16.881Z","repository":{"id":150173914,"uuid":"418043319","full_name":"onetom/onetomacs","owner":"onetom","description":"onetom's from-scratch, holy Emacs configuration *playground*, geared towards Clojure development","archived":false,"fork":false,"pushed_at":"2021-10-17T10:55:55.000Z","size":18,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T12:49:38.352Z","etag":null,"topics":["cider","clojure","emacs"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onetom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-10-17T06:38:34.000Z","updated_at":"2024-05-30T14:48:37.000Z","dependencies_parsed_at":"2023-04-08T03:54:57.782Z","dependency_job_id":null,"html_url":"https://github.com/onetom/onetomacs","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/onetom%2Fonetomacs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onetom%2Fonetomacs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onetom%2Fonetomacs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onetom%2Fonetomacs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onetom","download_url":"https://codeload.github.com/onetom/onetomacs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243452,"owners_count":21071054,"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":["cider","clojure","emacs"],"created_at":"2024-11-07T00:53:10.888Z","updated_at":"2025-10-24T01:35:11.830Z","avatar_url":"https://github.com/onetom.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Intro\n\nHi, I'm @onetom and this is my Emacs configuration, built from scratch.\n\nI use it on macOS only, with the [emacs-mac][] variant of Emacs, made by\nMitsuharu Yamamoto (aka `@railwaycat`).\n\nI started building it, after I tried tons of other configuration systems, like\n\n* Doom Emacs\n* Spacemacs\n* Prelude\n* Centaur Emacs\n* and so on...\n\nI don't use it for work yet, because it still lacks lots of features, which I\nuse daily in IntelliJ with Cursive.\n\n[emacs-mac]: https://bitbucket.org/mituharu/emacs-mac/src/master\n\n# Rationale\n\nTrying off-the-shelf configurations were a great way to get acquainted with\nEmacs and its package ecosystem. I got to learn a lot of terminology, which is\nwildly different from the language used by the \"more modern\" editors and IDEs.\n\nI had a common issue with such configurations, though.\n\nWhile I could figure out how to customize some common aspects of them, more\noften than not, I had no idea where to start. Quite frequently, I didn't even\nknow what package was providing a certain feature.\n\nGenerally, I had to do deconstructive work to achieve the changes I desired. \n\nI prefer the constructive (additive) approach much more though.\n\nI can experience Emacs in all the intermediary states, as its complexity grows\nwith every package I load into it.\n\nIf anything breaks, the reasons for it are a lot more limited; I have to do a\nlot less guess work.\n\nThat's why I started my configuration from scratch.\n\nThe 1st step was to adjust all those basic settings, which I find familiar and\nalso common in every other editor/IDE, which was built in recent decades.\n\nThis made the whole exercise a lot more bearable. You can find these settings\naround the top of the `init.el`.\n\nNext step was to understand and decide about managing Emacs packages. I choose `straight.el`.\n\n# straight.el\n\nI'm using the Nix package manager on macOS for a couple of years now and I quite\nsold on its approach. `straight.el` documentation explicitly states that it was\ninspired by Nix, so it got me interested. After I've learnt that Doom Emacs is\nalso using straight under the hood, I was pretty convinced to put my bet on\nstraight.\n\n# chemacs2\n\nThere is a lot to learn from the various, full fledged Emacs \"distros\", so it's\nvery desirable to have access to them, while developing your own configuration.\n\nTo that end, I use [chemacs2](https://github.com/plexus/chemacs2), to keep multiple\nEmacs configurations around.\n\n`chemacs2` configures some aspects of Emacs, like the path to the `custom-file`,\nso my `.gitignore` assumes the following settings in\n`~/.config/chemacs/profiles.el`:\n\n```lisp\n((\"onetom\"\n  . ((server-name . \"onetom\")\n     (user-emacs-directory . \"~/src/emacs-cfg\")\n     (custom-file . \"~/src/emacs-cfg/custom.el\")\n     (straight-p . t)))\n\n (\"onetom-doom\"\n  . ((server-name . \"onetom-doom\")\n     (user-emacs-directory . \"~/src/doom-emacs\")))\n\n (\"spacemacs\"\n  . ((server-name . \"spacemacs\")\n     (user-emacs-directory . \"~/src/spacemacs\")\n     (env . ((\"SPACEMACSDIR\" . \"~/src/some-dotfiles/.spacemacs.d\"))))))\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonetom%2Fonetomacs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonetom%2Fonetomacs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonetom%2Fonetomacs/lists"}