Настройка и работа с Taskwarrior

Опубликовано 28 авг. 2025 г.

Как бы я не шлялся по разным таск-трекерам, так и вернулся к истокам Taskwarrior (далее TW).

Taskwarrior — это консольный менеджер задач с гибкой настройкой, тегами, проектами и мощными фильтрами, работающий в терминале + синхронизация между устройствами.

Почему? Потому что в других таск-трекерах у меня спустя пару недель начинает образовываться какая-то лапша ебаная, прям как с ансиблом. Ну и по итогу на все это кладется болт.

Последним трекером у меня был Obsidian (чеклисты), по началу радовался, потом плакал. По итогу оставил обсидиан как инструмент для написания постов и статей.

А вот в TW такого не было, никакой лапши ебаной, всё по делу, все строго. ХЗ почему, возможно детские травмы и любовь к TUI. Но не суть.

ЧИТАТЬ ПЕРВЫМ В ТЕЛЕГРАМ

Из коробки TW выглядит достаточно хуёва, как и все остальное в Linux. Но я его допилил с помощью конфигов, избавился от лишнего и оставил только, то что действительно нужно мне.

В интернетах никто так не упарывается, поэтому всё настраивал методом тыка и с помощью каких-то огрызков из доков и домыслов любителей подводной ёбли.

Ща покажу, глядишь вдохновишься и соберешь свой конфиг.

Версия TW = 3.4.1

Вот так выглядит коробочный вариант (было):

Какие-то блядь Урги, Эйджи — мусор!

По итогу получим такое + удобные алиасы (стало):

Начнем с того, что мне похуй на статусы, приоритеты и дедлайны. Мне главное выгрузить таску из головы, привязать её к проекту и забыть.

А когда возникло желание, открыть, посмотреть, ужаснуться и снова закрыть. Суть — просто выбросить задачу из головы.

Всю свою деятельность я поделил на три проекта:

home — домашние дела и бытовуха

ip — бизнес таски в рамках ИП и проектов

work — таски от клиентов

Чем меньше сущностей, тем меньше путаницы. Это классика, никогда не усложняй!

Пишем конфиг

Открываем файл ~/.taskrc и видим в нем минимальный конфиг:

# Color theme (uncomment one to use)
#include light-16.theme
#include light-256.theme
#include dark-16.theme
#include dark-256.theme
#include dark-red-256.theme
#include dark-green-256.theme
#include dark-blue-256.theme
#include dark-violets-256.theme
#include dark-yellow-green.theme
#include dark-gray-256.theme
#include dark-gray-blue-256.theme
#include solarized-dark-256.theme
#include solarized-light-256.theme
#include no-color.theme

news.version=3.4.1

В конфиге вообще нихуя нет. Можно только тему заинклудить. НО даже после инклуда ты никакой разницы визуально не увидишь. Хуй знает в каких она местах применяется, не копался. Короче я просто включил строчку:

include solarized-dark-256.theme

Ошибок оно не выплюнуло, но и тему не применило (а мож и применило). Ладно, пусть будет. Мы щас сами все накрутим под наши хотелки.

Если на вопрос «чтобы что?» ответа нет, значит не стоит оно того.

Кстати если решишь доковырять тему с темами, накидай в комменты, будет полезно.

Терминал у тебя должен понимать 256 цветов. Выполни echo $TERM и посмотри что выводится, мне выплюнуло — xterm-256color. Пойдет!

Если ничего не выплюнуло, попробуй запустить в терминале export TERM=xterm-256color глядишь поможет. Если не помогло, открывай настройки терминала и включай «Профиль - Совместимость xterm-256color»

Добавляем в конфиг блок:

report.list.columns=id,project,description
report.list.labels=🆔,ПРОЕКТ,ОПИСАНИЕ ЗАДАЧИ
report.list.sort=project+,entry-

Здесь мы избавляемся от мусора, выводим только нужные колонки и реврайтим их название на свои, можно даж эмодзи вставить по желанию. Ну и сортировка по проектам и по таскам в порядке убывания.

Добавляем краски

color.project.ip=bright cyan
color.project.home=bright white
color.project.work=bright green
color.tag.default=bright white
color.tag.prioH=bold red

Для каждого проекта я делаю отдельный цвет, чтобы было визуальное разделение. А то хуй пойми кому замок вставить, а кому пиздов прописать.

В последней строке я выставляю цвет для приоритета (на всякий случай).

Среврайтить нативный приоритет не получится (у меня не получилось, даже через управляющие символы), поэтому привязываемся к тегам. По желанию навешиваем на таску такой тег, и таска станет красной.

Привязка приоритета к таске:

task <ID> modify +prioH

Если знак «+» заменить на «-», то тег снимется с таски. В ID само собой подставляем айдишник таски, который выводится в первой колонке.

На этом этапе наш конфиг настроен, можно пользоваться.

Делаем алиасы

Чтобы каждый раз не вводить длинные команды и не вспоминать синтаксис, разумно всё это закинуть в алиасы.

Показываю для ZSH, для баша сам разрулишь, там не сложно.

alias th='task add project:home'
alias ti='task add project:ip'
alias tw='task add project:work'

t() {
    if [ -z "$1" ]; then
	    task list                                                        
	else
        task list project:"$1"                                           
	fi
}

Первые три строчки это сокращения для добавления новой таски в проект. Допустим я хочу добавить новую таску в проект work, в терминале я пишу:

tw Провести инвентаризацию и удалить лишнее

Всё! Таска создана в проекте work. Аналогично работает для других проектов.

Дальше у меня идет функция «t», которая выводит список всех тасок либо тасок в конкретном проекте.

Выведет список всех тасок:

t

Выведет список тасок только для проекта home:

t home

В алиасах уже сам накидываешь под свои реалии и под свои потребности, главное чтобы тебе было удобно и не мозгоёбно.

Как накинуть приоритет на таску, выше уже показал. Таска выкрасится в красный. Но по опыту скажу, что критичные задачи лучше делай сразу, зачем их выделять чем-то если можно просто взять и сделать.

Красная тряпка может сработать как демотиватор и ты отправишься покорять просторы прокрастинации на пару недель, а то и больше.

Вспомогательные команды

Пометить таску в done:

task <ID> done

Модифицировать таску:

task <ID> modify "Новое описание задачи" project:home +prioH 
  1. Делаем новое описание задачи.
  2. Заменяем проект на home либо привязывает к проекту home.
  3. Навешиваем тег prioH, а конфиге такой тег будет красным.

Это основное чем пользуюсь я, но можно еще добавить due:tomorrow или due:2025-09-01, то поменяем срок выполнения задачи. Есть еще modify priority:H это нативный приоритет TW, вкусовщина.

НО. Если ебаться с modify не хочется, можно пиздануть:

task <ID> edit

Откроется редактор по умолчанию, а в нем файл, в котором ты сможешь поправить руками нужные свойства и сохранить.

Удалить таску:

task <ID> delete

Да, существует некий taskwarrior-tui, но я его покрутил, АЩЕ не зашло, перегружен, тот же мусор только сбоку, еще и походу работает на старых форматах TW (2й версии).

Рекомендую всю эту хуйню не ставить, а пользоваться нативом со своими обвесами.

Сервер синхронизации

НЕ сегодня. И так дохуя получилось. Эту штуку рассмотрим отдельно в следующих постах, там есть свои подводные камни и грабли. Для телефонов кстати тоже есть приложухи и они даже вменяемо работают.

Про TW как-то уже упоминал тут, но поверхностно, можешь глянуть на досуге.

Комментарии