Skip to content

Instantly share code, notes, and snippets.

@camillanapoles
Last active March 1, 2025 16:18
Show Gist options
  • Save camillanapoles/f6459060a3f57b58a9d47dc121dc627e to your computer and use it in GitHub Desktop.
Save camillanapoles/f6459060a3f57b58a9d47dc121dc627e to your computer and use it in GitHub Desktop.
🔖 CheatSheet Atualizado: Taskwarrior + TUI

Tags adiciionais

Tags Recomendadas com Emojis

+error    # ❌ Erros do sistema
+bug      # 🐛 Bugs encontrados
+sistema  # 🔧 Manutenção do sistema
+dev      # 👨‍💻 Desenvolvimento
+urgent   # 🚨 Urgente
+rotina   # 🔄 Tarefas recorrentes
+todo     # 📝 TODOs gerais

outras tags

Tags no Formato Sugerido com Emoji
Desenvolvimento

    +dev # 👨‍💻 Desenvolvimento
    +coding # 💻 Programação
    +feature # ✨ Novas funcionalidades
    +debug # 🐞 Depuração de erros
    +tests # 🧪 Testes de código
    +refactor # 🔄 Refatoração de código
    +docs # 📚 Documentação
    +pullrequest # 🔄 Revisão de PRs

Infraestrutura

    +docker # 🐋 Docker
    +k8s # 🧑‍💻 Kubernetes
    +vps # 🌐 VPS
    +cloud # ☁️ Nuvem (AWS, GCP, Azure)
    +ci_cd # 🚀 CI/CD
    +terraform # 🔧 Terraform
    +ansible # 📜 Ansible
    +monitoring # 👁️ Monitoramento

Sistema

    +error # ❌ Erros do sistema
    +sistema # 🔧 Manutenção do sistema
    +upgrade # ⬆️ Atualização de pacotes/sistema
    +backup # 💾 Backup de dados
    +performance # ⚡ Performance
    +network # 🌐 Rede
    +security # 🔒 Segurança
    +firewall # 🛡️ Firewall
    +ssl # 🔑 Certificados SSL/TLS
    +vpn # 🔐 VPN

Hardware

    +gpu # 🖥️ GPU
    +hardware # 🛠️ Hardware (upgrade, manutenção)
    +benchmark # 📊 Benchmarks

DevOps e Automação

    +automation # 🤖 Automação de tarefas
    +shell # 💡 Comandos Shell
    +bash # 🖧 Bash Scripts
    +zsh # 🔮 Zsh
    +git # 🧩 Git

Rede e Conectividade

    +network # 🌐 Rede
    +proxy # 🔄 Proxy
    +vps # 🌍 VPS (servidores virtuais)
    +dns # 🌍 DNS
    +monitoring # 👀 Monitoramento de rede

Gestão de Projetos

    +agile # 🏃‍♂️ Metodologia ágil
    +jira # 📋 Jira (ou ferramentas similares)
    +kanban # 📊 Kanban

Inteligência Artificial e Aprendizado de Máquina

    +ml # 🤖 Aprendizado de máquina
    +dl # 🔬 Aprendizado profundo
    +tensorflow # 🧠 TensorFlow
    +pytorch # 🔥 PyTorch
    +data # 📈 Processamento de dados
    +notebooks # 📓 Jupyter Notebooks

Gerenciamento Pessoal

    +urgent # 🚨 Urgente
    +todo # 📝 TODOs gerais
    +rotina # 🔄 Tarefas recorrentes
    +prioridade # 📌 Tarefas de alta prioridade
    +longterm # ⏳ Tarefas de longo prazo
    +followup # 🔄 Acompanhamento

Outros

    +dotfiles # ⚙️ Configuração de sistema (dotfiles)
    +ssl # 🔐 SSL
    +logs # 📑 Logs do sistema
    +gitconfig # 🧩 Configuração do Git


1. Criando os Contextos

Os contextos no Taskwarrior podem ser criados com o comando task context define, e você pode associar as tags às suas respectivas áreas ou categorias de tarefas. Vou criar os contextos com base nas tags que discutimos. Exemplo de criação de contextos:

# Contexto de Desenvolvimento
task context define dev +dev or +coding or +feature or +debug or +tests or +refactor or +docs or +pullrequest

# Contexto de Infraestrutura
task context define infra +docker or +k8s or +vps or +cloud or +ci_cd or +terraform or +ansible or +monitoring

# Contexto de Sistema
task context define sistema +error or +bug or +upgrade or +performance or +network or +security or +firewall or +ssl or +vpn

# Contexto de Hardware
task context define hardware +gpu or +hardware or +benchmark

# Contexto de DevOps e Automação
task context define devops +automation or +shell or +bash or +zsh or +git

# Contexto de Rede e Conectividade
task context define network +network or +proxy or +vps or +dns or +monitoring

# Contexto de Projetos e Gestão
task context define projeto +agile or +jira or +kanban

# Contexto de IA e Machine Learning
task context define ai_ml +ml or +dl or +tensorflow or +pytorch or +data or +notebooks

# Contexto Pessoal e Gestão de Tarefas
task context define pessoal +urgent or +todo or +rotina or +prioridade or +longterm or +followup

2. Criando as Tags

As tags são simples de criar, basta usar o comando task add para adicioná-las a tarefas, e elas são automaticamente registradas no seu sistema. No entanto, se você preferir criar tags sem adicionar tarefas, o próprio Taskwarrior já reconhecerá essas tags quando forem usadas em tarefas futuras. Não há um comando específico para "criar tags", já que elas são criadas automaticamente quando associadas a tarefas.

3. Autocompletar Tags ao Criar uma Nova Tarefa

Ao adicionar uma nova tarefa, você pode usar a funcionalidade de completar automaticamente as tags ou contextos, que ajuda a garantir que as tags corretas sejam aplicadas e que você utilize as já definidas.

Exemplo de criação de tarefa com autocomplete:

Quando você começa a digitar uma tag, o Taskwarrior sugerirá as opções existentes com base no que você já definiu. Por exemplo:

task add "Desenvolver nova funcionalidade X" +dev +feature

No momento de digitar o +, o Taskwarrior vai sugerir todas as tags definidas (como +dev, +feature, +bug, etc.), para que você não precise digitar a tag completa, e o sistema ajudará a evitar erros.

Como o completamento funciona:

# Digite o comando de adição de tarefa:

    task add "Descrição da tarefa" +

# Pressione Tab para autocompletar.

O Taskwarrior vai listar as tags disponíveis com base no que você já tem definido.

4. Listar Contextos e Tags Disponíveis

Você pode listar todos os contextos ou tags definidas usando os seguintes comandos:

# Listar contextos:
task context list
# Listar todas as tags:
task show tags

Esses comandos ajudarão a visualizar todos os contextos ou tags que você criou e facilitarão o processo de escolha ao criar novas tarefas.

5. Verificação de Conclusão (Completion) nas Tarefas

Além do autocompletar ao adicionar tags e contextos, o Taskwarrior também tem comandos de conclusão que permitem você monitorar ou atualizar o progresso das tarefas. Por exemplo:

# Concluir uma tarefa:
task <ID_da_tarefa> done
# Listar tarefas não concluídas:
task +dev status:pending list

O completamento e filtragem de tarefas podem ser realizados de forma muito eficiente com o uso de contextos e tags. Assim, você pode rapidamente acessar as tarefas pendentes e filtrar por tipo (por exemplo, urgente, em desenvolvimento, sistema, etc.). Resumo:

Criamos os contextos no Taskwarrior com base nas categorias e tags que definimos.
Não é necessário criar tags manualmente, pois elas são geradas automaticamente quando você as usa nas tarefas.
O autocompletamento facilita o uso das tags e contextos, tornando o processo de criação de tarefas mais ágil.
Você pode listar e revisar todos os contextos e tags a qualquer momento, garantindo que suas tarefas sejam organizadas corretamente.

Sim, entendi perfeitamente! O Taskwarrior + TUI é capaz de atender todos esses requisitos. Vou atualizar a documentação incluindo esses aspectos específicos e adicionar mais exemplos práticos com emojis, tags e datas.

CheatSheet Atualizado: Taskwarrior + TUI

1. Configuração para Exibição Automática

Configurar exibição automática no terminal (~/.bashrc ou ~/.zshrc)

# Mostrar tarefas pendentes ao abrir terminal
if [ -n "$PS1" ]; then
    tt  # Abre taskwarrior-tui automaticamente
fi

# Atalhos melhorados
alias tt='taskwarrior-tui'
alias ta='task add'
alias t='task'

# Função para adicionar TODO com emoji
todo() {
    task add "🎯 $*" +todo
    tt
}

# Função para adicionar erro com emoji
error() {
    task add "$*" +error due:today
    tt
}

2. Exemplos Práticos com Emojis e Tags

Adicionar Tarefas com Contexto

# Erro de sistema
task add "❌ Falha ao atualizar pacotes" +error +sistema due:today priority:H

# TODO de desenvolvimento
task add "👨‍💻 Implementar nova feature" +dev due:tomorrow

# Manutenção de sistema
task add "🔧 Atualizar /etc/hosts" +sistema due:2d

# Lembrete
task add "📅 Fazer backup semanal" +rotina due:friday recur:weekly

# Bug encontrado
task add "🐛 Corrigir permissões em /var" +bug +urgent due:today

3. Interação com Mouse na TUI

Ações com Mouse

  • Clique Simples: Seleciona tarefa
  • Clique Duplo: Abre detalhes da tarefa
  • Clique Direito: Menu de contexto
  • Scroll: Navega pela lista

Atalhos Visuais na TUI

Mouse + Teclas:
- Clique + D        : Marca como concluído
- Clique + Delete   : Remove tarefa
- Clique + E        : Edita tarefa
- Clique + A        : Adiciona anotação

4. Script Melhorado para Captura de TODOs

#!/bin/bash
# ~/bin/todo-capture.sh

watch_todos() {
    inotifywait -m "$1" -e modify |
    while read -r directory events filename; do
        grep -n "# todo" "$1" | while IFS=: read -r line_num line; do
            # Extrai contexto do comentário
            context=$(echo "$line" | grep -o '#[a-zA-Z]\+' | tr '\n' ' ')
            
            # Adiciona emoji baseado no contexto
            emoji="📝"
            [[ $context == *"#bug"* ]] && emoji="🐛"
            [[ $context == *"#urgent"* ]] && emoji="🚨"
            [[ $context == *"#sistema"* ]] && emoji="🔧"
            
            # Adiciona a tarefa com emoji e tags
            task add "$emoji $line" $context due:today
        done
    done
}

5. Exemplos de Uso no Dia a Dia

Cenário 1: Erro durante atualização

$ sudo apt update
E: Could not get lock /var/lib/dpkg/lock
# Automaticamente adiciona:
❌ Erro: Could not get lock /var/lib/dpkg/lock +error due:today

Cenário 2: TODO em arquivo de configuração

# Em /etc/hosts
# todo #sistema Atualizar IP do servidor de backup
# Automaticamente adiciona:
🔧 Atualizar IP do servidor de backup +sistema due:today

Cenário 3: Tarefa com prazo e recorrência

# Backup semanal
task add "💾 Backup do sistema" +sistema due:friday recur:weekly

6. Visualização e Relatórios

Relatórios Personalizados

# Visão geral com emojis
task '(status:pending or status:waiting)' list

# Tarefas urgentes para hoje
task +urgent due:today list

# Burndown com emojis
task burndown.daily

Configuração de Cores e Estilos

# ~/.taskrc
color.tag.error=red
color.tag.urgent=bold red
color.tag.sistema=yellow
color.due=green
color.overdue=bold red

Tudo isso é possível com Taskwarrior + TUI! A combinação oferece:

  1. ✅ Captura em tempo real
  2. ✅ Interface interativa com mouse
  3. ✅ Suporte a emojis e tags
  4. ✅ Datas e recorrência
  5. ✅ Categorização automática
  6. ✅ Exibição automática em nova sessão
  7. ✅ Persistência a nível de sistema

A única limitação potencial seria se você precisasse de sincronização em tempo real entre múltiplos usuários - nesse caso, você precisaria configurar um servidor Taskserver ou considerar alternativas como Jira CLI ou GitHub Issues CLI.

@camillanapoles
Copy link
Author

task add "Desenvolver nova funcionalidade X" +dev +feature
task add "Corrigir erro na interface de usuário" +bug +urgent
task add "Manutenção do servidor de produção" +sistema +upgrade +vps
task add "Revisar código no PR" +dev +pullrequest
task add "Configurar Kubernetes no servidor" +k8s +infraestrutura
task add "Testar modelo de machine learning" +ml +tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment