miércoles, 5 de febrero de 2014

TODO.TXT: Gestionar tareas en bash

Si sos de los nuestros, esos que se proponen hacer mil cosas y terminan haciendo nada... esto te puede ayudar.

Existen N aplicaciones para llevar una lista de tus tareas y prioridades mediante interfaces graficas muy guapas, pero te toma mas tiempo revisarlas, marcarlas y priorizarlas que llevarlas a cabo. Algunos super-users suelen crear archivos de textos que se muestran en la consola al iniciarlas, llevar manualmente el control de tareas en un archivo de texto y otras muchas opciones ya que este procedimiento suele ser mas eficiente que cualquier aplicaciones grafica. Y ese archivo de texto plano... muchas veces es llamado todo.txt

Esta joya se define a sí misma como
If you’ve got a file called todo.txt on your computer right now, you’re in the right place. Countless software applications and web sites can manage your to-do list with all sorts of bells and whistles. But if you don’t want to depend on someone else’s data format or someone else’s server, a plain text file is the way to go.

TODO.TXT es un poderoso y simple script en bash que permite gestionar tareas, priorizar y marcar como terminadas mediante la consola (CLI). Todo esto es manejado mediante archivos de textos planos que tambien nos permitiran manipularlos a nuestro antojo. Manos a la obra:

Decargamos el paquete comprimido que contiene tres archivos que conforman la aplicacion. Una vez descargado ubicamos los archivos en sus respectivos directorios:
$ tar -xzf todo.txt_cli* && cd todo.txt_cli*
$ mkdir ~/.todo
$ mv -v todo.sh ~/.todo && chmod +x ~/.todo/todo.sh
$ mv -v todo.cfg ~/.todo/config # lo renombramos porque es necesario
$ sudo mv -v todo_completion /etc/bash_completion.d/

Y listo, ahora solo resta agregar dos lineas al .bashrc para que podamos encontrar todo.sh al momento de ejecutarlo en la consola:
$ echo -e "alias t=\"~/.todo/todo.sh\"\ncomplete -F _todo t" >> .bashrc
$ source .bashrc

Ahora simplemente con hacer $ t add "Mi primer tarea" vamos a poder empezar a crear y gestionar nuestras tareas ^_^. Si quieren saber como usar la aplicacion pues los invito a que vean el screencast de la pagina oficial, tambien pueden hacer $ t help y van a tener una muy clara explicacion de como sacarle el jugo a esta app.

Personalmente no quiero que esta herramiente sea otro de los muchos metodos que he intentado para poder llevar un control de mis tareas pendientes y que al final termino en lo mismo, asi que ademas de mi fuerza de voluntad agregue una pequeña linea a mi script de inicio para que me muestre la cantidad de tareas y cuantas tengo que son urgentes de seguir. La linea en sí es esta:
notify-send -i "cab_view" "TODO" "Rocordá que tenes $(cat ~/.todo/todo.txt | wc -l) tareas pendientes\
\nde las cuales $(cat ~/.todo/todo.txt | grep "^(A)" | wc -l) son urgentes"

Con este resultado:

Tambien me gustaria agregarlo a mi barra de estado, pero debo integrarlo en conky para poder extraer esa informacion.. por ahorita no estoy muy interesado en ello.

En fin, eso es todo. Espero les sea de utilidad ;)

4 comentarios:

  1. Hola! Muy buena la aplicación, pero resulta que no la puedo hacer funcionar con los pasos que das aquí (xD). Todo funciona perfecto hasta hacer el alias, lo hago pero no funciona nada D: Al intentar hacer $ t me dice que no se encontró la orden (bash: t: no se encontró la orden) y nada. Probé poniendo un link simbólico en /bin/ y funciona, pero intenta crear los archivos en /bin/ y no tiene los permisos xd Sé que lo último no es una solución elegante, pero hice lo que pude jajajaja Bueno, no sé qué más intentar u.u Uso Debian stable. Si se te ocurre cuál podría ser el problema te estaría aún más agradecido :)

    ResponderEliminar
    Respuestas
    1. Le he agregado el comando "$ source .bashrc" para que recargue la configuracion de la shell despues de modificar el .bashrc. Me gustaria que verificaras en el contenido de tu .bashrc que esten agregadas las lineas
      alias t="~/.todo/todo.sh"
      complete -F _todo t

      Eliminar
    2. Lo verifiqué y nada, están las lineas pero no funciona :/

      Eliminar
    3. Ahora funciona, muuuuuuuuuuuuuchísimas gracias :)

      Eliminar