Si te gusta el todo.txt y utilizas la terminal, topydo es tu aplicación. Topydo, como su nombre indica, es una aplicación desarrollada en python para gestionar o añadir tareas utilizando el método todo.txt, que mejora la experiencia respecto al script original todotxt-cli de Gina Trapani.
Las opciones de uso son muy parecidas y en algunos casos, más simples. Una de las mejoras, es la visualización de los listados de proyectos, contextos, prioridades,… son más visibles, ya cada uno se muestran con colores diferentes.
Lo más espectacular, son dos modos que podemos utilizar de topydo.
Prompt, te permite gestionar tus tareas, estando dentro de la aplicación, sin necesidad de estar todo el rato introduciendo el comando topydo
.
Column
, es otro modo que permite mostrarnos todas nuestras tareas en columnas, fusionando si lo deseas el método kanban con el todo.txt, o mostrar columnas con tus contextos, proyectos, prioridades,….
La verdad es que he profundizado muchísimo con esta aplicación y he disfrutado mucho. Voy a explicaros un poco de los tres modos.
Si buscas algo más concreto, he clonado el Tiki Wiki de su documentación, para que puedas consultarla cuando lo desees. Actualmente, su página principal que contenía esta documentación, ya no esta disponible.
Crearé en breve una nueva sección dentro del Blog de uGeek para cosas como estas. Documentaciones, atajos de teclado,…
Si tienes instalado python3 y pip3, el sistema de gestión de paquetes de python, es tan simple como:
sudo pip3 install topydo
Podemos configurar topydo con uno o más archivos de configuración de estilo ini. topydo busca los siguientes archivos de configuración en este orden:
/etc/topydo.conf
$HOME/.config/topydo/config
$HOME/.topydo
.topydo (en el directorio de trabajo actual)
topydo.conf (en el directorio de trabajo actual)
topydo.ini (en el directorio de trabajo actual) (para soporte mejorado en Windows)
Para especificar un archivo de configuración alternativo, utilizaremos la opción -c.
Los valores en archivos de configuración posteriores, anulan los valores anteriores.
Mediante el archivo de configuración, podremos crear nuestros propios alias para invocar a topydo con comandos personalizados. Esta funcionalidad es similar a los alias en un shell de Unix (bash, zsh, etc.).
Vamos a crear el archivo de configuración $HOME/.config/topydo/config
y añadir unos alias de ejemplo:
[aliases]
# Muestra la primera linea de la lista
next = ls -n 1
# Muestra mi lista de trabajo, con la opción lst
lst = ls @trabajo
# abreviando comando. Pulsando l, en lugar de ls o q para salir
e = edit {}
l = ls {}
q = exit
# Poner una estrella a una tarea. Opción no standar de todo.txt
star = tag {} star 1
unstar = tag {} star
Ahora para listar mis tareas, podría hacerlo con este comnado
topydo l
Recuerda que para no tener que estar utilizando todo el rato el comando topydo, podemos crea un alias para sustituirlo, por ejemplo, por la letra t.
Así, tal como explicaba antes, listar nuestras tareas sería tan simple como:
t l
topydo es mucho más simple que todotxt-cli, ya que no necesitamos crear previamente un archivo de configuración.
Simplemente entramos en el directorio donde está el archivo todo.txt y ejecutando el comando topydo
, ya podemos gestionar nuestra lista de tareas de nuestro archivo todo.txt.
Si no accedemos al directorio, tenemos que indicar la ruta del archivo todo.txt o done.txt.
topydo -t ~/todo/todo.txt -d ~/todo/done.txt
Si utilizamos la versión prompt, podríamos lanzarlo con:
topydo -t ~/todo/todo.txt prompt
topydo add "grabar podcast de topydo +podcast"
Para que sea más simple y rápido, a diferencia de todotxt-cli, topydo nos permite añadir la tarea sin necesidad de utilizar comillas
topydo add grabar podcast de topydo +podcast
todopy ls
Tan sencillo como escribir el comando seguido de la palabra a filtrar:
topydo palabra
El modo de solicitud es bastante similar a la interfaz de línea de comandos, excepto que los subcomandos se reconocen inmediatamente, no es necesario escribir topydo cada vez.
Los cambios en la lista de tareas pendientes, se guardan inmediatamente después de cada comando.
Este modo es adecuado si invocamos la CLI de topydo con bastante frecuencia.
El modo de prompt requiere una dependencia adicional prompt_toolkitque así que vamos a instalarla primero.
sudo pip3 install "topydo[prompt]"
Iniciamos con:
topydo prompt
Y aparecerá en la terminal:
topydo>
Ahora puedes introducir comandos sin necesidad de escribir todo el rato topydo.
Para salir, escribe el comando exit.
Listar todas las tareas
ls
Listar Proyectos
Escribiendo ls + TAB, nos mostrará todas las opciones de ls.
lsproj
lspr
Listar contextos
lscon
Simplemente escribimos la palabra a filtrar y pulsamos enter. Topydo nos mostrará las tareas que coincidan con esa palabra.
Igual que hacemos habitualmente en nuestra terminal, utilizaremos el atajo Ctrl+l.
Escribimos add seguido de la tarea
add tarea
Los siguientes elementos se autocompletan automáticamente al presionar TAB:
Con las flechas arriba y abajo, podemos seleccionar el histórico de comandos previamente introducidos.
Con TAB autocompleta lo que estamos escribiendo. Ejemplo.
add tarea @c
Si pulsamos ahora TAB, en mi caso autoescribirá el contexto @casa
El proceso para crear una tarea utilizando el autocompletado, sería:
add @podcast hablar en el podcast de topydo
Añadir prioridad A a la tarea 56.
pri 56 A
También podemos utilizar a minúscula, no es obligatorio escribir A.
Escribe due: o t: y pulsa TAB. Te mostrará unas fechas por defecto.
Posponer un dia la tarea 16
postpone 16 1d
También podemos posponer semanas, meses, años…
Si escribimos edit, nos abrirá todo el archivo todo.txt para editarlo. Si escribimos edit 20, editaremos solo la tarea 20.
Para borrar una tarea, es tan simple como:
del 45
Borrando la tarea 45
Es posible que hayas guardado una tarea y te hayas equevocado. Para revertir, utilizaremos el comando revert
revert
Te preguntaras, ¿como hace esto?. Topydo guarda un bakup de tu todo.txt en el mismo directorio que tienes el archivo llamado .todo.bak.
Esto es algo que no está en la sintaxis oficial de todo.txt.
Podemos destacar tareas con un número de estrellas según la importancia.
La sintaxis sería:
(B) 2020-04-27 esta tarea tiene una estrella star:1
Tenemos que añadir un alias
Alias
# starring and unstarring
# `star 42` substitutes to `tag 42 star 1`
star = tag {} star 1
unstar = tag {} star
Para visualizar el autocompletado, escribimos s + TAB
, start 1. start 2
Añadiendo estrellas
A la tarea 42, le pongo una estralla
star 42 1
Para añadir más texto utilizando appen:
appen 47 texto a añadir
Para marcar una tarea como realizada, utilizamos do seguido del número de tarea. Automáticamente esta tarea, irá al archivo done.txt.
Para finalizar varias tareas, utilizamos do seguido de todos los números de tareas
do 5 10 30
Finalizando las tareas 5, 10, 30
Escribiendo help, nos mostrará la ayuda con todos los comandos disponibles.
add
append (app)
del (rm)
dep
depri
do
edit
ls
listcon (lscon)
listprojects (lsprj)
postpone
pri
revert
sort
tag
Run `topydo help <subcommand>` for command-specific help.
sudo pip3 install 'topydo[columns]'
Situándonos en el directorio donde tenemos nuestro archivo todo.txt.
topydo columns
Si no es así, tendremos que especificar la ruta, tal como explicaba al principio del artículo.
Para introducir un comando, utilizaremos :, como en vim. Con :help, tendremos la ayuda.
Para añadir una nueva columna , pulsa la tecla A.
Atajo | Acción | Descripción |
---|---|---|
A | append_column | Agregar / agregar columna (a la derecha) |
I | insert_column | Insertar nueva columna antes de la columna actual |
E | edit_column | Editar la definición de columna actual |
D | delete_column | Eliminar la columna actual |
Y | copy_column | Copie ( y ank) la columna actual |
L | swap_left | Cambiar la columna actual con la columna vecina izquierda |
R | swap_right | Cambiar la columna actual con la columna vecina derecha |
Ctrl-a | mark_all | Marca todos los elementos en la columna actual |
Atajo | Acción | Descripción |
---|---|---|
j o ↓ | up | Mueve un elemento hacia abajo |
k o ↑ | down | Mueve un elemento hacia arriba |
l o → | next_column | Ir a la siguiente columna |
h o ← | prev_column | Ir a la columna anterior |
gg o Home | home | Mover hacia arriba |
G o End | end | Mover al fondo |
0 | first_column | Moverse a la primera columna |
$ | last_column | Moverse a la última columna |
: | Enfoca la línea de comandos para ejecutar comandos personalizados. |
Atajo | Acción | Descripción |
---|---|---|
d | cmd del {} | Se ejecuta delen elementos resaltados |
e | cmd edit {} | Se ejecuta editen elementos resaltados |
m | mark | Marcar elemento actual (para realizar acciones en varios elementos simultáneamente) |
pp< período > | postpone | Se ejecuta postponeen los elementos resaltados con el período dado . |
pr< prioridad > | pri | Se ejecuta prien los elementos resaltados con la prioridad dada. |
ps< período > | postpone_s | Se ejecuta postponeen modo estricto en los elementos resaltados con el período dado . |
u | cmd revert | Ejecuta revert |
x | cmd do {} | Se ejecuta doen elementos resaltados |
Vamos a crear el archivo de configuración para poder ver diferentes columnas preestablecidas por mi.
nano $HOME/.config/topydo/config
Añadimos, por ejemplo
[Current]
title = Current
sortexpr = desc:importance
groupexpr = project
show_all = 0
[Overdue]
title = Overdue
filterexpr = due:<today
sortexpr = desc:due
show_all = 1
[Starred]
title = Starred
filterexpr = star:1
show_all = 1
Iniciaremos con mi configuración, ejecutando el siguiente comando
topydo columns -l $HOME/.config/topydo/config
La línea de comandos, activada al presionar :, admite las siguientes teclas:
Gracias a Termux, también podremos utilizar topydo en Android.
Voy a explicar un poco el proceso
apt-get install python
pip3 install topydo
vi $HOME/.bashrc
Añadiremos el siguiente contenido
alias topydo=$HOME/.local/bin/topydo
alias do="topydo do"
alias add="topydo add"
# -N and %S make sure that the list fits on the screen properly
alias t="topydo ls -N -F '%I %S' "
Asegurate tener source $HOME/.bashrc
en tu $HOME/.bash_profile
.
Publicado por Angel el Friday 22 May del 2020
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.