File: usage.rst

package info (click to toggle)
todoman 4.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 588 kB
  • sloc: python: 4,682; makefile: 167; sh: 1
file content (115 lines) | stat: -rw-r--r-- 3,716 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Usage
=====

Todoman usage is `CLI`_ based (thought there are some TUI bits, and the
intentions is to also provide a fully `TUI`_-based interface).

The default action is ``list``, which outputs all tasks for all calendars, each
with a semi-permanent unique id::

    1 [ ] !!! 2015-04-30 Close bank account @work (0%)
    2 [ ] !              Send minipimer back for warranty replacement @home (0%)
    3 [X]     2015-03-29 Buy soy milk @home (100%)
    4 [ ] !!             Fix the iPad's screen @home (0%)
    5 [ ] !!             Fix the Touchpad battery @work (0%)

The columns, in order, are:

 * An id.
 * Whether the task has been completed or not.
 * An ``!!!`` indicating high priority, ``!!`` indicating medium priority,
   ``!`` indicating low priority tasks.
 * The due date.
 * The task summary.
 * The list the todo is from; it will be hidden when filtering by one list, or
   if the database only contains a single list.
 * The completed percentage.

The id is retained by ``todoman`` until the next time you run the ``flush``
command.

To operate on a todo, the id is what's used to reference it. For example, to
edit the `Buy soy milk` task from the example above, the proper command is
``todoman edit 3``, or ``todoman undo 3`` to un-mark the task as done.

Editing tasks can only be done via the TUI interface for now, and cannot be
done via the command line yet.

.. _cli: https://en.wikipedia.org/wiki/Command-line_interface
.. _tui: https://en.wikipedia.org/wiki/Text-based_user_interface


Synchronization
---------------

If you want to synchronize your tasks, you'll need something that syncs via
CalDAV. `vdirsyncer`_ is the recommended tool for this.

.. _vdirsyncer: https://vdirsyncer.readthedocs.org/en/stable/

Interactive shell
-----------------

If you install `click-repl <https://github.com/untitaker/click-repl>`_, todoman
gets a new command called ``repl``, which launches an interactive shell with
tab-completion.

Integrations
------------

When attempting to integrate ``todoman`` into other systems or parse its
output, you're advised to use the ``--porcelain`` flag, which will print all
output in a pre-defined format that will remain stable regardless of user
configuration or version.

The format is JSON, with a single array containing each todo as a single entry
(object). Fields will always be present; if a todo does not have a value for a
given field, it will be printed as ``null``.

Fields MAY be added in future, but will never be removed.

Conky
`````

Todoman can be used with `Conky`_  by using one of the shell execution
`variables`_.
Given the nature of pimutils utilities, there is no need to query new information
every time conky updates so ``execi`` will be the best option most of the time.

Adding ``${execi 30 todo}`` inside the text section will display the output of the
command and update it every 30 seconds.

A working configuration can be found `here`_.

.. _conky: https://conky.cc
.. _variables: https://conky.sourceforge.net/variables.html
.. _here: https://github.com/r4ulill0/todoman/blob/main/docs/examples/conky.conf

Sorting
-------

The tasks can be sorted with the ``--sort`` argument. Sorting may be done according to the following fields:

    - ``description``
    - ``location``
    - ``status``
    - ``summary``
    - ``uid``
    - ``rrule``
    - ``percent_complete``
    - ``priority``
    - ``sequence``
    - ``categories``
    - ``completed_at``
    - ``created_at``
    - ``dtstamp``
    - ``start``
    - ``due``
    - ``last_modified``

It is possible to prepend a ``-`` to a field to sort by that field in ascending
order (by default they are sorted in descending order).

Example::

    todo list --sort due,-priority