Estou usando o org-hábito, e os gráficos de hábito aparecem bem na exibição normal da agenda. No entanto, eu gostaria de usar a lista de tarefas com filtragem de tags, e os hábitos parecem itens de tarefas normais, sem o gráfico de hábitos.
Como faço para que o gráfico de hábitos apareça ao usar a exibição da agenda da lista de tarefas?
org-mode
org-agenda
org-habit
legoscia
fonte
fonte
Respostas:
Isso parece fazer o truque:
Para explicar melhor, parece que todas as funções da agenda são chamadas
org-agenda-finalize
depois que o buffer da agenda é construído, e essa é a função que adiciona os gráficos de hábitos. Além disso, apenas adiciona o gráfico a cada item que possui aorg-habit-p
propriedade text (que codifica os detalhes que o gráfico exibirá). Então, tudo o que precisamos fazer é seguir e marcar os hábitos com essas informações em algum momento anterior a isso.Além disso, escolhi fazer com que esse comportamento dependesse de uma variável, pois isso permitirá que você defina a variável em comandos personalizados da agenda, se desejar que apenas algumas agendas exibam hábitos. Eu não testei isso, mas não há razão para que não funcione.
EDIT: Minha solução original teve problemas com as agendas de blocos. Acontece que
org-agenda-finalize
é chamado uma vez para cada bloco e depois uma vez para a agenda como um todo. Quando essa chamada final acontece, a agenda é somente leitura, portanto, um erro é gerado se a agenda contiver algum hábito. Como todo o trabalho já foi realizado nesse ponto, não faz sentido verificar a agenda novamente de qualquer maneira, e acabei de adicionar uma verificação para a propriedade 'org-series, que é adicionada a toda a agenda após as chamadas por bloco e antes da chamada final somente leitura.fonte
Você pode usar
org-agenda-prefix-format
com uma chamada paraorg-habit-build-graph
e funções relacionadas.fonte