Files
geek-life/README.md
Anis Ahmad 1cb95b3ce2 Prepared for first release
- Creating db file in home dir or DB_FILE env variable
- Updated README with usages details
- Added GIF screencast
2020-06-06 02:13:04 +06:00

5.5 KiB

geek-life - The CLI Task Manager for Geeks 🧑‍💻

License: MIT Go Report Card

🦸 Command Line hero?
💻 Live with the dark terminal?
📝 Think in Markdown?

Finally! A full featured task manager for YOU!

Geek-life overview

Highlights

  • For ninjas - do things faster with keyboard shortcuts
  • Markdown lovers, feel at 🏠! You'll see markdown everywhere.
  • Full featured (almost) - Projects, Tasks, due-dates, task notes...
  • A <4MB app that takes <1% CPU and ~7MB memory 1 - how much lighter you can think?
  • Task note editor with markdown syntax highlighting2
  • Full mouse support

Roadmap

  • Create Project
  • Delete Project
  • Edit Project
  • Create Task (under project)
  • Set Task due date (as dd-mm-yyyy) with shortcut
  • Set Task due date with quick input buttons (today, +1 day, -1 day)
  • Tasklist items should indicate status (done, pending, overdue) using colors
  • Shortcut for Adding new Project and Task
  • Global shortcuts for jumping to Projects or Tasks panel anytime
  • Cleanup all completed tasks of project
  • Task note editor should syntax highlight (markdown) and line numbers
  • Status bar for common shortcuts
  • Status bar should display success/error message of actions
  • Status bar may display quick tips based on focused element
  • Dynamic lists
    • Today - Due Today and overdue
    • Upcoming - Due in one week
    • Someday - No due date
  • Havitica3 integration - Use it as Habitica client or use Habitica for cloud backup
  • Time tracking

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

If you want to install it globally (run from any directory of your system), put it in your systems $PATH directory.

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

Done!

Keyboard shortcuts

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
Tasks n New Task
Tasks Esc Go back to Projects Pane
Task Detail Esc Go back to Tasks Pane
Task Detail Space Toggle task as done/pending
Task Detail d Set Due date
Task Detail / Scroll Up/Down the note editor
Task Detail e Activate note editor for modification
Active Note Editor Esc Deactivate note editor and save content

Tips about using shortcuts efficiently:

  • Esc will bring you a step back - to previous pane in most cases.
  • When you're in Project or Task list, use / to navigate the list.
  • When you're in Project or Task list Enter will load currently selected Project/Task.
  • After creating new Project, focus will automatically move to Tasks. Start adding tasks immediately by pressing n.
  • After creating new Task, focus will stay in "new task" input. So that you can add tasks quickly one after another.
  • After creating new Task, Press Esc when you're done creating tasks.

Building blocks

  • Made with :love: and golang 1.14 (you don't need golang to run it)
  • Designed with tview - interactive widgets for terminal-based UI
  • Task Note editor made with femto
  • Datastore is storm - a powerful toolkit for BoltDB

Contribute

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

You may ask...

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 you dropbox for syncing). In that case, just mention DB_FILE as an environment variable.

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

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 👍 issues if you want to increase priority of a feature.


Footnotes

  1. In my Macbook Air, 1.6 GHz Dual-Core Intel Core i5, RAM: 8 GB 1600 MHz DDR3
  2. Use monakai color scheme for markdown syntax
  3. Habitica is a free habit and productivity app that treats your real life like a game

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