{"id":17267588,"url":"https://github.com/yugaego/emacs-config","last_synced_at":"2025-04-14T08:04:58.525Z","repository":{"id":44096261,"uuid":"295475496","full_name":"yugaego/emacs-config","owner":"yugaego","description":"Yet another Emacs flavor.","archived":false,"fork":false,"pushed_at":"2025-01-14T15:24:32.000Z","size":2019,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T08:04:27.821Z","etag":null,"topics":["emacs","emacs-config","emacs-customizations","emacs-initialization","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":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yugaego.png","metadata":{"files":{"readme":"README.org","changelog":"CHANGELOG.org","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":"2020-09-14T16:31:03.000Z","updated_at":"2025-01-14T15:24:36.000Z","dependencies_parsed_at":"2023-01-24T12:15:48.565Z","dependency_job_id":"643b2cdd-cb0d-4666-a349-4caf43237ee2","html_url":"https://github.com/yugaego/emacs-config","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yugaego%2Femacs-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yugaego%2Femacs-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yugaego%2Femacs-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yugaego%2Femacs-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yugaego","download_url":"https://codeload.github.com/yugaego/emacs-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248843819,"owners_count":21170488,"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":["emacs","emacs-config","emacs-customizations","emacs-initialization","emacs-lisp"],"created_at":"2024-10-15T08:11:03.454Z","updated_at":"2025-04-14T08:04:58.487Z","avatar_url":"https://github.com/yugaego.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"[[https://www.gnu.org/software/emacs][file:./images/badge.png]]\n\n* Intro\n\n#+BEGIN_QUOTE\n/Emacs/ is... what *you* want it to be.\n#+END_QUOTE\n\nThis is a collection of files for configuration of /Emacs/.\n\nThis /Emacs flavor/ is intended to be *well-organized*, *documented*,\n*good-looking*, and *behaving* according to modern expectations. A priority is\ngiven to the usage of the *built-in packages*, but without usability sacrifice.\n\nThis configuration tested to work well on =MacOS=, =Linux=, and =Windows=. The\nsame time, it provides =MacOS=-specific treats.\n\n[[file:./images/Emacs-screenshot.png]]\n\nSee also [[https://github.com/caisah/emacs.dz][this list of other configurations and starter-kits]] for a source of\ninspiration to configure your own /Emacs/.\n\n\n* Playing With This Repo\n\n*** Install\n\n1. Download this configuration:\n  - Backup contents of the directory =~/.emacs.d=, if you have the one.\n  - Do one of the following:\n    - Download one of the releases, unpack it, and rename to =~/.emacs.d~=.\n      - Earlier versions might become a good starting point for a newbie.\n    - ~$ git clone git@gitlab.com:yugaego/emacs-config.git ~/.emacs.d~\n    - ~$ git clone git@github.com:yugaego/emacs-config.git ~/.emacs.d~\n\n2. Install configured packages:\n  - =$ cd ~/.emacs.d=\n  - ~$ emacs --script install-packages.el~\n\n\n*** Structure\n\n- init.el :: Main configuration file.\n- early-init.el :: Configurations loaded very early in the startup process.\n- custom.el :: [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Easy-Customization.html][Emacs Customization]] writes to this file. Read-only.\n- configs/init-*.el :: Auto-loaded configuration files extracted from ~init.el~\n  for better readability.\n- install-packages.el :: Install configured packages after cloning (on new devices).\n- local-pre-init.el :: Private information can be stored in this file.\\\\\n  This optional file is excluded from the repository\n  and loaded only if present in the file system.\n- examples/local-pre-init.el :: Example local configurations.\n- local-post-init.el :: One more /git/-ignored optional file, loaded after\n  ~configs/init-*.el~ files load.\n- CHANGELOG.org :: Lists notable changes.\n\n*** Global Custom Keybindings\n\n- C-x C-b :: =M-x ibuffer-other-window=\n- C-c b k :: =M-x kill-some-buffers=\n- C-c b r :: =M-x yet-rotate-windows-buffers=\n- C-c c / :: =M-x company-other-backend=\n- C-c c f :: =M-x company-files=\n- C-c c d :: =M-x company-dabbrev=\n- C-c c c :: =M-x company-capf=\n- C-z :: =ctl-x-map= (for split keyboard usability)\n- M-\u003cdelete\u003e :: =M-x kill-word=\n- M-s M-s :: =M-x isearch-forward-thing-at-point=\n- C-c b w :: =M-x whitespaces-mode= (toggle)\n- C-c d :: =M-x yet-duplicate-current-line-or-region= (calls function\n  =duplicate-dwim= since Emacs 29.1)\n- C-c f r :: =M-x rename-visited-file= (since Emacs 29.1)\n- C-c s-f :: =M-x yet-mac-open-finder-current-file=\n- C-c s-d :: =M-x yet-mac-open-dictionary-current-word=\n- C-c s-g :: =M-x yet-browse-grammarly=\n- C-c l s :: =M-x eglot=\n- C-c i s :: =M-x imenu-list-smart-toggle= (toggle)\n- C-c t s :: =M-x yet-start-term=\n- C-c b i :: =M-x display-fill-column-indicator-mode=\n- C-c b l :: =M-x scroll-lock-mode=\n- C-c b s :: =M-x yet-toggle-window-split= (toggle)\n- C-c e r :: =M-x restart-emacs=\n- C-c e q :: =M-x M-x yet-kill-emacs-reset-desktop=\n\n* Getting Started with Emacs on Mac OS\n\nWith the listed types of installation you get a \"pure\" /Emacs/ that behaves similarly to other OS applications.\n\nFor example, on Mac OS you may:\n  - quit /Emacs/ with =Cmd-q= or hide /Emacs/ with =Cmd-h=,\n  - perform well-known operations with =Cmd-c=, =Cmd-v=, =Cmd-a=, =Cmd-x=,\n  - navigate text with the =arrows=.\n\n\n*** Install\n\n**** Pre-compiled\n\nThe first two approaches install /Emacs.app/ to =/Applications/=.\nConsult documentation of the listed providers for more information.\n\n****** DMG file\n\nDownload from [[https://emacsformacosx.com][EmacsForMacOSX]], install as any other application.\n\n****** Homebrew\n\n~$ brew cask install emacs~\n\n- Upgrade: ~$ brew upgrade homebrew/cask/emacs~\n\n- Info: ~$ brew cask info homebrew/cask/emacs~\n\n****** Macports\n\n- ~$ sudo port install emacs-app~\n  - Installs /Emacs.app/ to =/Applications/MacPorts/=\n  - Current default variants =+nativecomp= and =+rsvg= are fine choice.\n  - Pre-install ~mailutils +gnutls~ if you plan to retrieve e-mails in /Emacs/.\n\n- ~$ sudo port install emacs~\n  - Installs =/opt/local/bin/emacs=\n  - Current default variant =+nativecomp= is a fine choice.\n\n\n[[https://www.emacswiki.org/emacs/EmacsForMacOS][More on Mac OS installers]].\n\nAnd by the way, /Emacs/ usage is smooth with /Dvorak/ layout and a /split keyboard/.\\\\\nI personally use [[https://kinesis-ergo.com/shop/advantage2/][Kinesis Advantage]] and feel comfortable having a set of modifier keys [[https://gitlab.com/-/snippets/1744636][under each of my hands]].\n\n\n\n**** From source\n\nCompiling from source is simple enough.\n\n- ~$ git clone git://git.savannah.gnu.org/emacs.git YOUR-DIR~\n- ~$ cd YOUR-DIR~\n- ~$ ./autogen.sh~\n  - This is an optional step.\n  - Only needed for the fresh clone of the code without the ~configure~ script.\n  - On this step the ~configure~ script and some related files are generated.\n- ~$ ./configure~\n  - For example, with additional options:\n    - ~$ ./configure -C --with-json --with-native-compilation --with-mailutils --with-imagemagick~.\n  - ~$ ./configure --help~ lists all the available options.\n- ~$ make~\n  - Compiles emacs into =YOUR-DIR/src/=.\n  - Launch install [[https://stackoverflow.com/a/68289258/1319821][emacs from CLI]].\n- ~$ make install~\n  - This is an optional step.\n  - Adds /Emacs.app/ to =YOUR-DIR/nextstep/=.\n  - Feel free to move or symlink the created app.\n\nFor more details consult the files =YOUR-DIR/INSTALL=, =YOUR-DIR/nextstep/INSTALL=, and =YOUR-DIR/README=.\n\n\n* What's Next\n\nAs the next steps, I highly recommend:\n  - following the /Emacs tutorial/ (~Ctrl-h t~),\n  - then reading the /Emacs manual/ (~Ctrl-h r~).\n\n[[https://www.emacswiki.org/emacs/EmacsNewbie][EmacsWiki]] is one of the most helpful resource online for the beginners.\n\nExperiment while reading documentation. For example, in my case, it took two\nmonths to read the manual and switch to feeling comfortable with /Emacs/.\n\nThe result of that period was a basic [[https://github.com/yugaego/emacs-config/blob/bare-bones/init.el][configuration file]] and [[https://github.com/yugaego/cheat-sheets/blob/main/Emacs.org][this key bindings\ncheat sheet]].\n\n* Contributing\n\nI hope you find this repository helpful. If you see a way to improve it, feel\nfree to submit changes or ideas. This project attempts to follow [[https://en.wikipedia.org/wiki/KISS_principle][the KISS\nprinciple]], so reporting any unclarity is welcome too.\n\nHappy Emacsing!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyugaego%2Femacs-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyugaego%2Femacs-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyugaego%2Femacs-config/lists"}