Blog del Podcast
podcast      GitHub      Twitter   Telegram

Gestionando mis tareas en la terminal con topydo

Tiempo estimado de lectura: 17 minutos. 1925 palabras. todo.txt

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,…

Instalación de topydo

Si tienes instalado python3 y pip3, el sistema de gestión de paquetes de python, es tan simple como:

sudo pip3 install topydo

Configuración

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.

Alias

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

Crea el alias en tu sistema operativo

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. Uso Básico

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.

Indicando la ruta del archivo todo.txt y done.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

Añadir tarea

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

Listar tareas

todopy ls

Filtrar

Tan sencillo como escribir el comando seguido de la palabra a filtrar:

topydo palabra

Modo prompt

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.

Instalación modo prompt

El modo de prompt requiere una dependencia adicional prompt_toolkitque así que vamos a instalarla primero.

sudo pip3 install "topydo[prompt]"

Uso modo prompt

Iniciamos con:

topydo prompt

Y aparecerá en la terminal:

topydo>

Ahora puedes introducir comandos sin necesidad de escribir todo el rato topydo.

Salir del modo prompt

Para salir, escribe el comando exit.

Listar

  1. Listar todas las tareas

    ls
    
  2. Listar Proyectos

    Escribiendo ls + TAB, nos mostrará todas las opciones de ls.

    lsproj
    
    lspr
    
  3. Listar contextos

    lscon
    

Filtrar

Simplemente escribimos la palabra a filtrar y pulsamos enter. Topydo nos mostrará las tareas que coincidan con esa palabra.

Limpiar terminal

Igual que hacemos habitualmente en nuestra terminal, utilizaremos el atajo Ctrl+l.

Añadir una tarea

Escribimos add seguido de la tarea

add tarea

Autocompletar

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:

  1. add
  2. Escribimos de un modo natural la tarea
  3. @ y pulsamos TAB o + y pulsamos TAB
add @podcast hablar en el podcast de topydo

Añadir una prioridad a una tarea

Añadir prioridad A a la tarea 56.

pri 56 A

También podemos utilizar a minúscula, no es obligatorio escribir A.

Añadir fecha

Escribe due: o t: y pulsa TAB. Te mostrará unas fechas por defecto.

Posponer fecha

Posponer un dia la tarea 16

postpone 16 1d

También podemos posponer semanas, meses, años…

Editar

Si escribimos edit, nos abrirá todo el archivo todo.txt para editarlo. Si escribimos edit 20, editaremos solo la tarea 20.

Borrar una tarea

Para borrar una tarea, es tan simple como:

del 45

Borrando la tarea 45

Revertir cambios

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.

Destacar tareas con estrellas

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

  1. Añadiendo estrellas

    A la tarea 42, le pongo una estralla

    star 42 1
    

Añadir más texto a una tarea con appen

Para añadir más texto utilizando appen:

appen 47 texto a añadir

Tarea realizada

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

Resumen de Comandos disponibles

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.

Columnas

Instalación con columnas

sudo pip3 install 'topydo[columns]'

Iniciar

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.

Uso

Para introducir un comando, utilizaremos :, como en vim. Con :help, tendremos la ayuda.

Acciones de Columnas. Añadir, borrar,… Columnas

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.

Acciones de elementos de todo

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

Configuración Columnas

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

Otros atajos de línea de comando

La línea de comandos, activada al presionar :, admite las siguientes teclas:

Android

Gracias a Termux, también podremos utilizar topydo en Android.

Voy a explicar un poco el proceso

  1. Instalaremos Termux desde Google Play o F-Droid
  2. Instalamos Python3 apt-get install python
  3. Instalamos topydo pip3 install topydo
  4. Crearemos unos alias para que nos se más sencillo:
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.

Fuentes


Publicado por Angel el viernes 22 mayo del 2020



También te puede interesar:




Powered by org-bash-blog

Writing in orgmode whith emacs

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.