I am using:
As of 2020-10-15, I am using following hosts with Emacs:
Operating System Emacs version Debian GNU/Linux 10 (buster) GNU Emacs 27.0.50 Xubuntu GNU/Linux 20.04 LTS GNU Emacs 26.3 Xubuntu GNU/Linux 20.04 LTS GNU Emacs 28.0.50All are running the same configuration. Some settings are only used on specific platforms though.
I once was using OS X on my personal computer but this is history. Thankfully. Corresponding OS X specific settings are for archiving purposes.
With my current employer, I’m able to use GNU/Linux also for business. Therefore, I don’t have to use Windows at the moment. Thankfully. Corresponding OS X specific settings are for archiving purposes.
Best Navigation ExperienceFor navigating through my config.org
file, please do open it in Emacs so that you are able to collapse and expand its Org mode headings.
As of 2017-05, I moved my Emacs configuration format from OrgStruct mode to Org-mode babel + tangle. Originally, I found this process on http://www.holgerschurig.de/en/emacs-init-tangle/ However, I adapted its code and write additional features. I also simplified the file structure, threw away old stuff and added tons of comments for my configuration.
Now, my Emacs configuration is in a file named config.org
. My init.el
got some nifty Elisp code that converts/tangles (only) the Elisp blocks into the config.el
. This generated file is interpreted by my GNU/Emacs on startup.
Please do read my blog article on how tangling of this Emacs configuration works.
Despite the size of my configuration, tangling takes only a fraction of a second and automatically happens on two occasions:
config.org
file.config.org
is newer than config.el
.This way, there is no unnecessary tangling process.
This method is great in terms of speed and effort. However, I can’t follow any advanced literate programming aspect such as re-using a snippet multiple times or changing the order of the snippets.
I also added some output functionality to the tangling method. This results in helpful lines in *Messages*
like:
[...] config • my-frame-is-landscape() my-frame-is-portrait() … The frame is in landscape mode config • Default split direction according to frame aspect ratio … config • no-littering … config • Logging of mode versions … Wrote /home/vk/.emacs.d/var/log/floyd.txt Added to /home/vk/.emacs.d/var/log/floyd.txt config • my-load-local-el() … config • Server mode … config • my-system-is-FOOBAR … config • System-specific paths … config • Cygwin Paths (Windows) … config • my-binary-found(binaryname) … config • my-binary-not-found-list and my-eval-if-binary-or-warn() … config • Test queries … »»» I could not locate the PATH-binary for: chrome config • System-specific browse-url-browser … »»» I could not locate the PATH-binary for: google-chrome config • Styling … config • Themes … [...]
Update 2022-06-14: If I would follow a more standard way of tangling the el file from the org file, I’d probably take a look at https://github.com/yilkalargaw/org-auto-tangle which is also features on this short video demo: https://www.youtube.com/watch?v=D3FzMPZm7vY (13min).
In Case You Want to Use My ConfigurationIn short: don’t.
Not because I don’t like you to have my configuration. The reason is furthermore that it is not easy to accomplish the setup process. This is because I left out some parts like the contrib
directory as explained above. Some of my settings are host-specific and/or depend on path variables or external tools.
You should only adopt Elisp code you need and understand to avoid Emacs Bankruptcy.
Therefore: please feel free to look up certain tricks and functions and add it to your configuration. But don’t use my repository as is and expect it to run on your host.
Stuff Which Is Not Contained in the Git RepositoryPlease take a look at my .gitignore
file that contains some things I did not add to this git repository for a variety of reasons but are necessary for my configuration. Most important here are the directories elpa
and contrib
. The latter one holds a number of external packages:
echo "Last update of this list: $(date)" echo "------------------------------------------------------" ls -1 contrib | grep -v 2del | grep -v tar
Last update of this list: Do 15 Okt 2020 13:07:24 CEST ------------------------------------------------------ auto-dictionary-mode browse-kill-ring.el command-log-mode cygwin-mount.el date2name.el define-word dired-details.el dired-hacks dired-plus dired-recent.el dired-show-readme edit-server.el elpygen emacs-emojify emacs-git-gutter emacs-which-key ews-orgmode explain-pause-mode eyebrowse filetags.el goto-chg.el helm-org-contacts hideshow-orgmode macrostep message-outlook.el move-text no-littering ob-restclient.el orgaggregate org.el org-fancy-priorities org-import-calendar.el org-linker org-linker-edna org-mind-map org-mind-map_OLD org-mode org-notmuch.el org-protocol-capture-html org-super-agenda org-wunderlist orly outlookedit.el outshine ov ox-clip ox-pandoc ox-rst ox-slack pdf-mode pdf-view-restore plantuml-mode pylookup raml-mode s.el setup-cygwin.el slime-volleyball sphinx-doc.el sunrise-commander synonyms vcard-mode wc.el
Some of those packages were added only for testing purpose. Most of them are added to my configuration permanently.
Comments on ELPA, prelude, org-30000101After migrating most of the package management to use-package
, there are much less entries in the folder contrib
and there is a new folder called elpa
. Of course, I did not include elpa-packages in this git repository.
I also tested Emacs prelude for a couple of days. However, I was not very happy about it due to performance issues, unwanted behavior, and the feeling of losing control.
Please note that org-30000101
is a manually created and installed pseudo-package to prevent the installation of Org-mode via package manager. I am using the Org Maint version from git directly (within my contrib
directory).
$HOME/.emacs.d/lisp/
seems to be quite common as directory path for installing external packages$HOME/.emacs.d/lisp/
) is LISP as wellThe code provided here is licensed under a GPL v3 license: see license.txt
for details. Some smaller parts from other authors but included in my configuration might have a different license. Please check the source - it’s included in the comments.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4