Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/colonelpanic8/org-project-capture

Manage org-mode TODOs for your projectile projects
https://github.com/colonelpanic8/org-project-capture

emacs emacs-lisp org-mode projectile

Last synced: 21 days ago
JSON representation

Manage org-mode TODOs for your projectile projects

Awesome Lists containing this project

README

        

#+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