Настройка и работа с Taskwarrior
Как бы я не шлялся по разным таск-трекерам, так и вернулся к истокам 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
- Делаем новое описание задачи.
- Заменяем проект на
home
либо привязывает к проектуhome
. - Навешиваем тег
prioH
, а конфиге такой тег будет красным.
Это основное чем пользуюсь я, но можно еще добавить due:tomorrow
или due:2025-09-01
, то поменяем срок выполнения задачи. Есть еще modify priority:H
это нативный приоритет TW, вкусовщина.
НО. Если ебаться с modify
не хочется, можно пиздануть:
task <ID> edit
Откроется редактор по умолчанию, а в нем файл, в котором ты сможешь поправить руками нужные свойства и сохранить.
Удалить таску:
task <ID> delete
Да, существует некий taskwarrior-tui, но я его покрутил, АЩЕ не зашло, перегружен, тот же мусор только сбоку, еще и походу работает на старых форматах TW (2й версии).
Рекомендую всю эту хуйню не ставить, а пользоваться нативом со своими обвесами.
Сервер синхронизации
НЕ сегодня. И так дохуя получилось. Эту штуку рассмотрим отдельно в следующих постах, там есть свои подводные камни и грабли. Для телефонов кстати тоже есть приложухи и они даже вменяемо работают.
Про TW как-то уже упоминал тут, но поверхностно, можешь глянуть на досуге.