Skip to content

Latest commit

 

History

History
148 lines (107 loc) · 6.63 KB

agenda.org

File metadata and controls

148 lines (107 loc) · 6.63 KB

Agenda

One of the more popular self organization systems is the GTD system. It and many other systems like it have found a home in org mode. In GTD there are some essential tools:

  • Various lists
  • Your Agenda.

The Agenda in org allows you to use meta data on a task to help visualize your goals for the day, the week or various projects you may have on the go.

The agenda is really a collection of aggregate filtered views on a subset of your todo’s.

images/agenda.gif

Like most things in orgextended the agenda is continually a work in progress. The system is already quite powerful and I hope it will continue to be expanded and extended to support the full gamut of org agenda functionality with a unique sublime text flair.

There are a number of essential keybindings you will want to learn out of the box:

  • Space on any item in the agenda will open that item in a seperate group.
  • Enter on any item in the agenda will open that item in the current group.
  • Ctrl+w will close the agenda view.

A couple of quick notes about the agenda before we continue:

  • The habit visualizer leaves something to be desired, it does not yet support the restart options that most habits do in org, BUT, it is still present and gives you the basics on how well you are tracking with your habits.
  • The main agenda view is a custom list of visualizers you would like to see and can be configured through your settings file.

Custom Agenda views can be defined in the AgendaCustomViews dictionary in your orgextended.sublime-settings file. The Default view is the view that will show when you call Org Agenda Custom View. To choose one of the other views use Org Agenda Choose View this will pop up a quick select panel allowing you to select a view. Here is an example of a settings file.

Here is an example settings file. The Default view is just list of vanilla views. We are also defining a custom todos and notes view without any filters. Careful with these, they can be overwhelming if your task lists are large. (See filtering sections below)

The flags view has 2 Todos views. The first has a tagfilter that requires tasks to have one of TAG1 or OTHERTAGS tags on the todos. The second view requires TAG2. You can also require a tag to be absent with -TAG3. The negative prefix tells the system to exclude tasks with that tag.

There are other filter types that can be applied. (See filtering sections below)

"AgendaCustomViews": 
{
    "Default": ["Calendar", "Week", "Day", "Blocked Projects", "Next Tasks", "Loose Tasks"],
    "Todos":   ["Todos"],
    "Notes":   ["Notes"],
    "Flags":   ["Todos : tagfilter |TAG1 |OTHERTAGS", "Todos : tagfilter +TAG2"],
},

There are quite a few defined views:

Calendar
This is a 3 month view that will highlight the currently selected day and days with scheduled TODOs
Day
The day view is a single days schedule that will show tasks scheduled for that day
Blocked Projects
This is a list of projects without a NEXT tag. This is to help with a GTD style flow.
Next Tasks
This is a list of tasks marked as NEXT to help decide what needs to be done next.
Todos
This is a generic list of Todos that can be filtered by tags, priorities etc.
Notes
This is a list of your notes, again this can be filtered by tags etc.
Meetings
This is a list of meetings
Phone
This is a list of meetings marked as PHONE calls.
Week
This is a week view helping with a quick open slot / week at a glance view.
Done
This is a list of completed tasks. You will almost certainly need to use a filter with this view to avoid it being massive.

images/agenda_day.gif

Tags

You can filter one of these views to a set of tags as follows

"NAMEOFVIEW : tagfilter [MODIFIER]TAGNAME [MODIFIER]TAGNAME"

The modifiers determine how those tags are matched:

  • - a minus sign ensures that tag IS NOT assigned to this heading.
  • + a plus sign ensures that ALL tags with a plus are assigned to this heading.
  • | an or or vertical bar ensures that ONE OF the tags listed this way are assigned to this heading.

Priorities

You can use the same kind of filter with priorities from your task property drawers:

"NAMEOFVIEW : priorityfilter [MODIFIER]Priority [MODIFIER]Priority"

Has Modifiers

hasschedule
Requries the task be scheduled
hasdeadline
Requires the task have a deadline
hasclock
Requires the task have clocking values
hasclose
Requires the task be a closed task (only for views that allow closed tasks)
noschedule
Requires the task is not scheduled
nodeadline
Requires the task not have a deadline
noclock
Requires the task not have any clocking values
noclose
Requires the task not have a close entry
"NAMEOFVIEW : hasclock : noschedule"

Start Day

Sometimes it is nicer to have the week view start on monday or restricted to only working days. This can be done using some settings:

// By default our first day of the week is Sunday
// But some people prefer the first day to be monday
"agendaFirstDay":        1,
"agendaWeekViewNumDays": 5

This sets the first day of the week and month view to monday (Sunday + 1) AND it restricts the number of days in the week view render to 5 (Monday - Friday) agendaFirstDay can be a number OR it can be a string with a day of the week.

images/limit_week_view.gif

Movement

You can change the active day in your agenda using the right and left angle brackets (usually shift comma and shift period).

images/agenda_movement.gif

Notifications

OrgExtended has the start of a notification system. It is not yet super stable. However, the notification thread is a background system that starts up when OrgExtended starts. It will do the following:

  • Start when sublime starts.
  • Scan all files in your agenda list and build a model of scheduled tasks for today.
  • Periodically rebuild that task list.
  • Periodically detect approaching tasks and attempt to notify you.

The system as it currently stands is not very configurable, but that will change. The system currently is hard coded to do 2 things:

  • Show a full screen view with your current notifications for today.
  • On Windows: Run showballoontip.ps1 to pop up a windows notification about your impending event.

Eventually I hope that this system can be made much more flexible and work on various platforms. For now, this is what we have.