Taskwarrior: управление задачами из терминала как искусство
Что и зачем нужен Taskwarrior
Taskwarrior — это мощный инструмент для управления задачами прямо из терминала. В отличие от громоздких GUI-органайзеров, он легковесен, гибок и идеально подходит для тех, кто проводит много времени в консоли.
Почему это удобно?
- Работает без графического интерфейса — быстро и везде, где есть терминал.
- Хранит данные локально (никаких лишних синхронизаций).
- Поддерживает теги, проекты, пользовательские поля, фильтры, кастомные отчеты.
- Гибко настраивается под ваши потребности.
Установка Taskwarrior
На Linux всё просто:
sudo apt update
sudo apt install taskwarrior
Чтобы была актуаьная версия идем на официальный сайт.
Первый запуск и впечатления
После установки выполним:
task list
task add
По умолчанию интерфейс выглядит сухо и непонятно. Минимум полезной информации, неудобно ориентироваться.
Кастомизация Taskwarrior
Вот тут начинается магия. Taskwarrior позволяет настраивать всё: цвета, колонки, пользовательские поля, отчёты. Для кастомизации откроем конфиг:
nano ~/.taskrc
Внутри увидим закомментированные строки, вот эти, к примеру, отвечают за цветовую палитру:
#include solarized-dark-256.theme
#include solarized-light-256.theme
#include no-color.theme
Можно подключить готовые темы или создать свою, но прекола в этом не особо
Изменим под себя
По умолчанию вывод малоинформативный. Сделаем свой кастомный отчёт:
# Кастомный отчет
report.list.columns=id,project,description,check
report.list.labels=ИД,ПРОЕКТ,ОПИСАНИЕ,СТАТУС
report.list.sort=id+
Теперь в выводе будет: ID - просто порядковый номер ПРОЕКТ - указываем к чему относится задача ОПИСАНИЕ - тут все понятно СТАТУС - ожидание, в процессе, выполнено
Добавляем пользовательское поле
Создадим поле check
, чтобы отслеживать статус задачи:
uda.check.type=string
uda.check.label=Статус
uda.check.values=wait,in_progress,done
uda.check.default=wait
Теперь у каждой задачи есть поле check
с тремя состояниями:
wait — ждет своего часа
in_progress — в процессе
done — выполнена
Настраиваем цвета
Добавим цвета для статусов:
color.uda.check.wait=white
color.uda.check.in_progress=blue
color.uda.check.done=green
Итоговый пример
Вот так выглядят ласт строки .taskrc
:
# Кастомный отчет
report.list.columns=id,project,description,check
report.list.labels=ИД,ПРОЕКТ,ОПИСАНИЕ,СТАТУС
report.list.sort=id+
# Пользовательское поле
uda.check.type=string
uda.check.label=Статус
uda.check.values=wait,in_progress,done
uda.check.default=wait
# Цвета для статусов
color.uda.check.wait=white
color.uda.check.in_progress=blue
color.uda.check.done=green
Как это выглядит теперь
Выполняем:
task list
И видим аккуратную таблицу с понятными колонками и цветами.
Работа с задачами
Добавляем задачу:
task add "Написать статью про Taskwarrior" project:Blog
Меняем статус:
task <ID> modify check:in_progress
Завершаем задачу:
Такой код завершит и удалит задачу из списка
task <ID> done
Удаляем задачу:
task <ID> delete
Удаляем все задачи (ОСТОРОЖНО!):
task list delete
Фильтры и быстрый поиск задач
Taskwarrior позволяет фильтроватать задачи по полям
Показать все задачи в статусе in_progress
:
task check:in_progress
Показать все задачи по проекту:
task project:Blog
Показать все задачи, где описание содержит слово “статья”:
task description~статья
Можно комбинировать фильтры, например:
task project:Blog check:in_progress