org-project-capture

Manage org-mode TODOs for your projectile projects

Stars
325

#+ATTR_HTML: title="Join the chat at https://gitter.im/IvanMalison/org-projectile" [[https://github.com/colonelpanic8/org-project-capture/actions/workflows/build.yml][file:https://github.com/colonelpanic8/org-project-capture/actions/workflows/build.yml/badge.svg]] [[https://gitter.im/IvanMalison/org-project-capture?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge][file:https://badges.gitter.im/Join%20Chat.svg]] [[http://melpa.org/#/org-project-capture][file:http://melpa.org/packages/org-project-capture-badge.svg]] [[http://stable.melpa.org/#/org-project-capture][file:http://stable.melpa.org/packages/org-project-capture-badge.svg]]

  • org-project-capture

org-project-capture integrates org-mode TODOs with both projectile and project.el. This permits the maintenance of TODO lists for specific projects.

** Installation

  • Install using the package instructions for your Emacs setup. If you're using MELPA:

    #+BEGIN_SRC emacs-lisp M-x package-install org-project-capture #+END_SRC

  • For those intending to use the projectile backend, also install org-projectile:

    #+BEGIN_SRC emacs-lisp M-x package-install org-projectile #+END_SRC

** Setup

*** Backend Selection

You need to set the backend for org-project-capture using its class-based structure.

  • For project.el:

    #+BEGIN_SRC emacs-lisp (setq org-project-capture-default-backend (make-instance 'org-project-capture-project-backend)) #+END_SRC

  • If using projectile via org-projectile:

    #+BEGIN_SRC emacs-lisp (setq org-project-capture-default-backend (make-instance 'org-project-capture-projectile-backend)) #+END_SRC

*** File Configuration

Specify the location for storing project-specific TODOs:

#+BEGIN_SRC emacs-lisp (setq org-project-capture-projects-file "~/org/projects.org") #+END_SRC

*** Keybindings

Establish a keybinding for easy capturing:

#+BEGIN_SRC emacs-lisp (global-set-key (kbd "C-c n p") 'org-project-capture-project-todo-completing-read) #+END_SRC

*** Capture Strategy

Determine if TODOs should be in a single file or across individual projects:

#+BEGIN_SRC emacs-lisp (org-project-capture-single-file) ;; OR (org-project-capture-per-project) #+END_SRC

**** Combine both strategies, but prefer single file (projects will only use their own file if they already have one) #+BEGIN_SRC emacs-lisp (setq org-project-capture-strategy (make-instance 'org-project-capture-combine-strategies :strategies (list (make-instance 'org-project-capture-single-file-strategy) (make-instance 'org-project-capture-per-project-strategy)))) #+END_SRC

** use-package Configuration

For those utilizing use-package, here's a streamlined setup:

#+BEGIN_SRC emacs-lisp (use-package org-project-capture :bind (("C-c n p" . org-project-capture-project-todo-completing-read)) :ensure t :config (progn (setq org-project-capture-backend (make-instance 'YOUR-CHOSEN-BACKEND)) ; Replace with your backend of choice (setq org-project-capture-projects-file "~/org/projects.org") (org-project-capture-single-file)) #+END_SRC

** Customization

There are numerous customization options for org-project-capture:

#+BEGIN_SRC emacs-lisp M-x customize-group RET org-project-capture RET #+END_SRC