Estoy usando org-habit, y los gráficos de hábitos se muestran muy bien en la vista de agenda normal. Sin embargo, me gustaría usar la lista de tareas pendientes con el filtrado de etiquetas, y allí los hábitos se ven como elementos normales de tareas pendientes, sin el gráfico de hábitos.
¿Cómo puedo hacer que aparezca el gráfico de hábitos al usar la vista de agenda de la lista de tareas?
org-mode
org-agenda
org-habit
legoscia
fuente
fuente
Respuestas:
Esto parece hacer el truco:
Para explicar más, parece que cada función de agenda llama
org-agenda-finalize
una vez que el búfer de agenda se ha construido principalmente, y esta es la función que agrega los gráficos de hábitos. Además, solo agrega el gráfico a cada elemento que tiene laorg-habit-p
propiedad de texto (que codifica los detalles que mostrará el gráfico). Entonces, todo lo que necesitamos hacer es revisar y etiquetar los hábitos con esta información en algún momento antes de eso.Además, elegí hacer que este comportamiento dependa de una variable porque esto debería permitirle establecer la variable en comandos de agenda personalizados, si desea que solo algunas agendas muestren hábitos. No lo he probado, pero no hay razón para que no funcione.
EDITAR: Mi solución original tenía problemas con las agendas de bloque. Resulta que
org-agenda-finalize
se llama una vez para cada bloque, y luego una vez para la agenda en su conjunto. Cuando ocurre esa última llamada, la agenda es de solo lectura, por lo que se genera un error si la agenda contiene algún hábito. Dado que todo el trabajo ya se ha realizado para ese punto, no tiene sentido escanear la agenda de nuevo de todos modos, y acabo de agregar un cheque para la propiedad 'org-series, que se agrega a toda la agenda después de las llamadas por bloque y antes de la última llamada de solo lectura.fuente
Se puede usar
org-agenda-prefix-format
con una llamadaorg-habit-build-graph
y funciones relacionadas.fuente