alphapapa / org-now

Conveniently show current Org tasks in a sidebar window
60 stars 3 forks source link

[Feature request] Use org-now-refile-to-now in org-agenda #3

Closed DynamicMetaFlow closed 4 years ago

DynamicMetaFlow commented 5 years ago

Greetings,

Thank you for creating this and the many other packages that I use in my day-to-day workflow, I appreciate and look forward to contributing in the future.

In regards to the feature request, I have given an example below of my typical day to day workflow and how I would like to incorporate org-now to it.

Workflow Before Org-Now:

I usually wake up in the morning pull up org-agenda and see all of the tasks my tasks in org-agenda. I then proceed to filter my tasks based on tags and I then end up with the tasks I want to work on for the day.

While this works it's somewhat tedious to filter, I at times have to shift my focus of what I'm working on to see the agenda, risk being distracted, the agenda filter options are reset/rebuild and it can be overwhelming/taxing to seeing all the tasks again.

Desired workflow using Org-Now

In how this relates to org-now, Org-now addresses the friction that I have in using org-agenda to get a list of tasks to work on for the day.

It would be great to choose tasks that I want to work on while in org-agenda and then use org-now-refile-to-now to refile the task to the now file. I imagine being able to refile one task/item in the agenda and or multiple tasks using org-agenda-bulk-mark and org-agenda-bulk-action to refile the task to the org-now file.

I then would have a persistent buffer on the side with my given tasks for today and I can work on them, maintaining my focus. At the end of my day, I can send them back to their original parent location and archive them and then choose my tasks for the next day.

Thank you for your time and support and I apologize for the lengthy description.

alphapapa commented 5 years ago

Hi,

Thanks for the kind words.

That's a very good idea, and it should be simple to implement. I probably won't have time to work on it for a while. I'll assign it to myself, but I'd be happy to consider a PR if someone else submits one.

Thanks.

DynamicMetaFlow commented 5 years ago

Hi,

Thank you for your response. I have some experience with Lisp based languages, Racket, in particular from my studies. At the moment I don't have the time to work on it, and I would also like to think about the solution and attempt to implement it.

Next Steps:

The blocks that I have are:

If you have any recommendations before starting this I would appreciate it. Thank you for your time.

alphapapa commented 5 years ago

Elisp is just a simple lisp-2. The specifics are covered in the built-in Emacs Lisp manual. You might look at https://github.com/bbatsov/emacs-lisp-style-guide/ and https://github.com/alphapapa/emacs-package-dev-handbook.

  • The specifics of how Emacs, and in particular Org-mode and org-agenda work and how a solution could be implemented with org-now.

Org and the Agenda are complicated. The best way I've found to build on them is to use Emacs's built-in C-h f and M-. cross-referencing and follow the code you need, while ignoring the parts that aren't relevant to what you're doing.

alphapapa commented 4 years ago

It would be great to choose tasks that I want to work on while in org-agenda and then use org-now-refile-to-now to refile the task to the now file. I imagine being able to refile one task/item in the agenda and or multiple tasks using org-agenda-bulk-mark and org-agenda-bulk-action to refile the task to the org-now file.

I then would have a persistent buffer on the side with my given tasks for today and I can work on them, maintaining my focus. At the end of my day, I can send them back to their original parent location and archive them and then choose my tasks for the next day.

Revisiting this idea, here are a few thoughts:

While this works it's somewhat tedious to filter, I at times have to shift my focus of what I'm working on to see the agenda, risk being distracted, the agenda filter options are reset/rebuild and it can be overwhelming/taxing to seeing all the tasks again.

  1. An alternative workflow could be to use org-ql-view to build your view of tasks. It allows multiple views, easy reconfiguration of views, and saving of views, so you would not have to deal with filters being reset. Using this workflow, you could assign a tag like now or today to tasks you want to work on today, then remove those tags when you're done with a task. You could even have multiple org-ql-view buffers displayed at the same time: one showing the now/today tasks, and another showing tasks that you're sorting through and adding the now/today tag to.

  2. org-sidebar can complement that workflow. For example, to show the now/today-tagged tasks in a sidebar, you could use the org-sidebar-ql command with a query like tags:now.

Doing it this way would mean not having to refile tasks back and forth, which may be preferable in some cases. And you can press RET on tasks in the sidebar to jump to their source buffers when you need to work on their entries.

I recently updated org-sidebar to use org-ql-view internally, so it's easier to use with org-ql now.

alphapapa commented 4 years ago

I added commands that work in Agenda buffers, including with bulk commands. Please see the new documentation for how to configure them. Thanks for suggesting this. Please let me know if these work for you.