Go to file
Daniel Borchmann ce806bcc2e
Add list of project notes to project overview
Actually, the name “project” is too ambigious here, which is why I have replaced
it at some points with the more concrete word “task”.  This is to mean that
tasks are items that work towards a particular, tangible goal but consist of
multiple steps to reach it.  Project notes, then, capture the state of more
complex tasks with varying or multiple goals all interconnected in a specify
realm.  Project notes are used for planning tasks and for capturing the current
state of affairs.

Topics, on the most abstract level, comprise areas of responsibility or activity
where not at every point in time there's something conrete to be done, but
periodic review is in order.

Related to PARA parlance (https://fortelabs.co/blog/para/), the mapping may not
be completely clear, as projects (in the sense of PARA) relate to both tasks and
project notes.  Indeed, it could be the case that a project is small enough to
only have a associated task and no project notes (e.g., if everything is clear
and it's just „doing“), or a project (again in the sense of PARA) relate only to
some project notes (in my sense), e.g., when it's not yet clear or not yet
planned what needs to be done concretely or when even the goal(s) are not set
yet.

However, as far as I currently understand, the other items in the PARA
methodology map quite nicely to my terminology:

- Area of Responsibility ↔ Topics

- Resources ↔ Project Notes (or any other notes like my zettelkasten)

- Archive ↔ Archive (surprise!)

Maybe I should split my notes into two categories: project notes proper and
general notes containing information about not-necessarily-project-related
topics?
2022-06-04 09:41:53 +02:00
bin [Scripts] Renaming suffix of awk script 2018-12-16 18:39:13 +01:00
elpa Update dash 2022-04-29 08:48:39 +02:00
eshell [EShell] Update aliases 2018-07-19 14:14:09 +02:00
site-lisp Refactor org link formatting functions to avoid duplicate code 2022-05-20 19:34:56 +02:00
snippets/text-mode Add another shortcut for standard git commit message 2020-01-19 17:22:09 +01:00
themes Increase font size in custom themes 2021-06-27 11:59:53 +02:00
.gitignore Save undo-tree history to disk 2022-04-30 15:13:18 +02:00
early-init.el Reduce configuration done in early-init.el 2021-03-28 19:55:59 +02:00
init.el Add list of project notes to project overview 2022-06-04 09:41:53 +02:00
LICENSE [Misc] Add License 2017-07-16 18:17:03 +02:00
Makefile Ensure sandbox link to local .emacs.d directory is created properly 2020-11-21 12:14:00 +01:00
README.org Bump date in copyright notice 2021-01-30 09:33:07 +01:00

Daniels Emacs Configuration

My personal Emacs Configuration, containing bits of code collected from around the web. Have fun with it!

This configuration is known to work with Emacs 25.2 (and later) on Debian GNU/Linux and Windows 10 (sigh).

Features

  • Tight integration of Org Mode, via customizable variables for different types of Org Mode files, predefined capture templates, hydras, continuous clocking, and more.
  • Gnus integration, including a general setup to easily add SMTP configuration for multiple email accounts.
  • Extended completion support via helm, ivy, and company.
  • Magit and Projectile.
  • A custom “start menu” based on helm (via C-x g), allowing to access bookmarks, default applications, and files; see the documentation of db/helm-shortcuts for more details.
  • More or less usable integration into Windows (necessary for work, sorry for that).
  • A usable Eshell configuration.
  • Support for various programming languages (Emacs Lisp, Clojure, Python, LaTeX, Perl, Haskell, …)

Initial Setup

To use this configuration, either clone or download a copy of this repository and place it in your ~/.emacs.d directory (beware that under Windows, your home directory may be anywhere, check the variable %HOME% for this).

If you use a proxy to access the Wild Internet™, make sure that the environment variables http_proxy and https_proxy are set with the correct values. Upon first start, Emacs will download all some packages it deems essential, so please be patient. All subsequent starts should be much faster.

To make most of this configuration (and Emacs in general), a standard GNU (POSIX?) user space is required. Under GNU/Linux system, this is standard, but for Windows this may be a problem. The easiest way to get a minimal GNU user space is to install Git for Windows and augment your %PATH% to include C:\Program Files\Git\usr\bin\ (or some-such). This way, executables like bash, find, grep, and gpg are available to Emacs, but please be aware that the naming convention for directories is different for these tools from the Windows standard, i.e., /c/Windows/System32/ instead of C:\Windows\System32\. In general, this should not be a problem, though.

Customization

This configuration allows to make some customization without touching the code to adapt it to the need of the respective user. This is done using the Customize interface of Emacs. Some of the variables are set to some default values different from the default default values. However, those settings are done before loading user customization, and thus can be overwritten by the latter.

Additionally, some variables are provided that allow for additional configuration. Those are located in the personal-settings Customization group, which see, and come with some (and hopefully sufficient) documentation.

Adding custom code

If customizing variables is not enough, you can of course always add you custom code directly in the configuration. However, this may make future merges difficult (in case you want to stay up-to-date with this configuration, that is). To this end, a special variables called db/after-init-load-files can be customized to contain a list of files that will be loaded as the last step during startup of Emacs. This way, custom code stays outside of the main configuration and future merges should pass without conflicts.

Structure

The main configuration is available in the usual /exot/.emacs.d/src/commit/ce806bcc2ebd6a7a0d536ddf2cf25fca1ab08037/init.el file, with additional functionality distributed over files in the /exot/.emacs.d/src/commit/ce806bcc2ebd6a7a0d536ddf2cf25fca1ab08037/site-lisp directory. Some private data (like customization) is outsourced into a separate directory named private, and is not included in this repository. The configuration should work nevertheless, even without these private files.

The main init.el file consists mostly of variable assignments, use-package declarations, initializing the package subsystem, and loading customizations. The main lifting is done by the db/run-init function, which is attached to after-init-hook in init.el. This way, all necessary local hooks and autoloads are set up by init.el, and the db/run-init functions only activates modes needed for every session, sets default keybindings, hydras, and global hooks. It also imports some environment variables and starts the server. Any additional packages are only loaded when required. Additionally, after all this, db/run-init loads all files contained in db/after-init-load-files, in the order given in that list.

Known Limitations

Under Windows, using Tramp with ssh from git does not seem to work because no ssh-askpass is included. Use plink instead, TRAMP has builtin support for it.

License

ⓒ 20172021 Daniel Borchmann

This configuration is available under the MIT license, see /exot/.emacs.d/src/commit/ce806bcc2ebd6a7a0d536ddf2cf25fca1ab08037/LICENSE for details.