Terminal pogryzł człowieka: taskwarrior

Gwarantem sumiennego wykonywania swoich obowiązków często jest… Pamiętanie o nich. Stąd też nasze biurko zaścielają żółte karteczki, po kieszeniach plątają się skrawki zapisanych serwetek, a dyktafon w smartfonie uparcie odmawia współpracy z racji braku wolnego miejsca na nasze tyrady. I nikt zapewne nie podejrzewa jak w terminalu można przyjemnie i sprawnie zorganizować sobie plan życia. Wystarczy zainstalować do tego celu programik taskwarrior i pogrążyć się w jego opcjach.

task calendar i proszę, wszystko jasne
Taskwarrior to ambitny projekt pozwalający zaplanować nam nasze zadania. Jednak za pojęciem „zaplanować” kryje się całe zaplecze funkcji o które nie podejrzewalibyśmy niepozorny program tekstowy. Dodawanie i usuwanie zadań to taka trywialna czynność – co powiecie na tagowanie, tworzenie projektów, grupowanie zadań, precyzyjne określanie ram czasowych, synchronizację zadań na serwerze centralnym i wiele wiele innych? Z taskwarrior nie zapomnimy o niczym – o ile nie zapomnimy dopisać czynności do listy zadań.

Składnia polecenia task (z paczki task lub taskwarrior) stanowi doskonałą lekturę dla koneserów. Początki są banalne – dodawanie zadań to nic trudnego:

task add Eat something due:due-today
task add Cut hair due:2016-09-22
task add Write something +blog scheduled:tomorrow

Jak można przypuszczać task list wyświetli nam listę zaplanowanych zadań. Znaczek + oznacza tag dla danej czynności. Słusznie zauważymy, że typowa składnia to task [filter] command [mods]. Filter może oznaczać konkretny tag, projekt, wybór zadania po dacie lub jego numer (wg task list):

task 28 command mods
task +weekend command mods
task project:Home due.before:today command mods
task 1,2,3 delete
task 1-3 info
task 1,2-5,19 modify pri:H

Mods to modyfikacje dla naszego zadania. Czas trwania, daty, dodatkowe opisy, tagi i tak dalej. Może to być jedno polecenie lub kilka. Np. jak sprecyzować terminy dla naszych poczynań? Oto jak:

Built-in attributes are:
description: Task description text
status: Status of task – pending, completed, deleted, waiting
project: Project name
priority: Priority
due: Due date
recur: Recurrence frequency
until: Expiration date of a task
limit: Desired number of rows in report, or ‘page’
wait: Date until task becomes pending
entry: Date task was created
end: Date task was completed/deleted
start: Date task was started
scheduled: Date task is scheduled to start
modified: Date task was last modified
depends: Other tasks that this task depends upon

Jak widać do dyspozycji mamy nie tylko proste określenie daty, ale i częstotliwości występowania zadania, jego początek, koniec, chwilowe „zawieszenie”, priorytet, przypisanie do konkretnego projektu i tak dalej. Stwarza to kompleksowe możliwości projektowania rozbudowanego kalendarza. Dla początkujących najpraktyczniejsze na początku będzie określanie zadań „due” – czyli które muszą być wykonane przed podanym terminem lub „scheduled” – możliwe do wykonania od podanej daty (czyli due:2016-09-25 scheduled:2016-09-22 oznacza zadanie które możemy zacząć robić dopiero od 09-22 – ale terminem granicznym jest 09-25).

Na tym jednak nie koniec. A co, gdybyśmy chcieli zsynchronizować tak stworzony kalendarz? To łatwe – należy zainstalować taskd, skonfigurować usługę i następnie na każdej maszynie gdzie mamy task skonfigurować ten centralny serwer. Klepanie poleceń w linii tekstowej jest staroświeckie? Możemy zainstalować sobie jeden z wielu graficzno – tekstowych nakładek dla task, np. vit.

Powyższe to jedynie naszkicowanie możliwości jakie oferuje taskwarrior. Więcej i dokładniej przeczytamy w solidnie prowadzonej dokumentacji online.