Home

Awesome

<p align="center"> <img src="media/geek-life-logo.png" align="center" alt="Geek-life Logo"> </p> <h1 align="center"> The CLI To-Do List / Task Manager for Geeks </h1>

<a href="https://www.producthunt.com/posts/geek-life?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-geek-life" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=205655&theme=light" alt="Geek-life - The To-do List / Task Manager for Geeks in command line! | Product Hunt Embed" style="width: 125px; height: 27px;" width="125px" height="27px" /></a> 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 <a href="https://raw.githubusercontent.com/ajaxray/geek-life/master/media/geek-life_v1.gif" target="_blank">Click to see it moving (GIF)</a>

: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.

ContextShortcutAction
GlobalpGo to Project list
GlobaltGo to Task list
ProjectsnNew Project
Projects/k/Shift+TabGo up in project list
Projects/j/TabGo down in project list
TasksnNew Task
TasksEsc/hGo back to Projects Pane
Tasks/k/Shift+TabGo up in task list
Tasks/j/TabGo down in task list
TaskscClear completed tasks
TasksdDelete Project
Task DetailEsc/hGo back to Tasks Pane
Task DetailSpaceToggle task as done/pending
Task DetaildSet Due date
Task DetailoSet 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 DetaileActivate note editor for modification
Task DetailvEdit task details in external editor (default vim)
Task DetailrRename Task Title
Task DetailxExport Task to clipboard
Active Note EditorEscDeactivate 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