ajaxray / geek-life

The Todo List / Task Manager for Geeks in command line
MIT License
505 stars 26 forks source link
cli-app command-line command-line-tool geeks golang task-manager terminal-ui todoapp todolist tui

Geek-life Logo

The CLI To-Do List / Task Manager for Geeks

Geek-life - The To-do List / Task Manager for Geeks in command line! | Product Hunt Embed License: MIT Go Report Card

:technologist: Developer / DevOps / Sysadmin? A command line hero?
:computer: Live with the dark terminal?
:memo: Think in Markdown?

Finally! A full featured task manager for YOU!

Geek-life overview Click to see it moving (GIF)

:crystal_ball: Highlights

:dart: Roadmap

:rocket: Ready for action (installing and running)

It's just a single binary file, no external dependencies. Just download the appropriate version of executable from latest release for your OS. Then rename and give it permission to execute.
For example:

mv geek-life_linux-amd64 geek-life  
sudo chmod +x geek-life
./geek-life

I recommend installing it globally (to run from any directory of your system). It's easy, just put it in your systems $PATH directory.

sudo mv geek-life /usr/local/bin/geek-life
geek-life

Done! Manage your tasks your way!

:keyboard: Keyboard shortcuts

Shortcut key for a pane/element will be marked with underline.

Some shortcuts are global, some are contextual. Contextual shortcuts will be applied according to focused pane/element.
You'll see a currently focused pane bordered with double line.

In case writing in a text input (e,g, new project/task, due date), you have to Enter to submit/save.

Context Shortcut Action
Global p Go to Project list
Global t Go to Task list
Projects n New Project
Projects /k/Shift+Tab Go up in project list
Projects /j/Tab Go down in project list
Tasks n New Task
Tasks Esc/h Go back to Projects Pane
Tasks /k/Shift+Tab Go up in task list
Tasks /j/Tab Go down in task list
Tasks c Clear completed tasks
Tasks d Delete Project
Task Detail Esc/h Go back to Tasks Pane
Task Detail Space Toggle task as done/pending
Task Detail d Set Due date
Task Detail o Set Due date to today
Task Detail + Due date plus 1
Task Detail - Due date minus 1
Task Detail / Scroll Up/Down the note editor
Task Detail e Activate note editor for modification
Task Detail v Edit task details in external editor (default vim)
Task Detail r Rename Task Title
Task Detail x Export Task to clipboard
Active Note Editor Esc Deactivate note editor and save content

Tips about using shortcuts efficiently:

The interface has 3 primary panels

  1. [P]rojects/Task lists
  2. [T]asks of selected project or Tasklist
  3. [D]etails/actions of selected Project or Task

The following diagram shows navigation shortcuts between the panels.

+------+----------------------+-----------------------+
|  P   |         T            |         D             |
|      |                      |                       |
|    Entr=>    ↓   ↑        Entr=>                    |
|      |       /   /          |                       |
|   <=Esc      j   k        <=Esc                     |
|      |                      |                       |
+------+----------------------+-----------------------+

So, what it's trying to visualize is -

Some More hints:

:hammer_and_wrench: Building blocks

Contribute

If you fix a bug or want to add/improve a feature, and it's aligned with the focus (merging with ease) of this app, I will be glad to accept your PR. :)

:bulb: You may ask...

:question: Where is the data stored? Can I change the location?

By default, it will try to create a db file in you home directory.

But as a geek, you may try to put it different location (e,g, in your dropbox for syncing). In that case, just mention DB_FILE as an environment variable.

DB_FILE=~/dropbox/geek-life/default.db geek-life

UPDATE: For Windows users, setting ENV variable is not so straight forward. So, added a flag --db-file or -d to specify DB file path from command line easily.

geek-life --db-file=D:\a-writable-dir\tasks.db

:question: How can I suggest a feature?

Just post an issue describing your desired feature/enhancement and select feature label.

Also, incomplete features in the current roadmap will be found in issue list. You may :thumbsup: issues if you want to increase priority of a feature.


JetBrains Logo
Developed with GoLand.
Thanks to JetBrains for sponsoring Licenses for Open Source Development.


Footnotes

  1. In my Macbook Air, 1.6 GHz Dual-Core Intel Core i5, RAM: 8 GB 1600 MHz DDR3
  2. Using monakai color scheme for markdown syntax

    "This is the Book about which there is no doubt, a guidance for those conscious of Allah" - Al-Quran