All Projects → ajaxray → Geek Life

ajaxray / Geek Life

Licence: mit
The Todo List / Task Manager for Geeks in command line

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Geek Life

Topydo
A powerful todo list application for the console, using the todo.txt format.
Stars: ✭ 511 (+141.04%)
Mutual labels:  task-manager, todoapp, tui
ttdl
TTDL - Terminal Todo List Manager
Stars: ✭ 91 (-57.08%)
Mutual labels:  todolist, command-line-tool, todoapp
jira-cli
🔥 [WIP] Feature-rich interactive Jira command line.
Stars: ✭ 809 (+281.6%)
Mutual labels:  tui, cli-app, command-line-tool
Przm
🎨 A simple, yet feature rich color picker and manipulator
Stars: ✭ 17 (-91.98%)
Mutual labels:  command-line-tool, command-line, tui
Pyinquirer
A Python module for common interactive command line user interfaces
Stars: ✭ 1,151 (+442.92%)
Mutual labels:  command-line-tool, cli-app, command-line
Terminal layout
The project help you to quickly build layouts in terminal,cross-platform(一个跨平台的命令行ui布局工具)
Stars: ✭ 98 (-53.77%)
Mutual labels:  command-line-tool, cli-app, command-line
Forge Node App
🛠📦🎉 Generate Node.js boilerplate with optional libraries & tools
Stars: ✭ 90 (-57.55%)
Mutual labels:  command-line-tool, cli-app, command-line
Git Tidy
Tidy up stale git branches.
Stars: ✭ 137 (-35.38%)
Mutual labels:  command-line-tool, cli-app, command-line
Xioc
Extract indicators of compromise from text, including "escaped" ones.
Stars: ✭ 148 (-30.19%)
Mutual labels:  command-line-tool, command-line
Json 2 Kotlin
Convert JSON to Kotlin Data Classes
Stars: ✭ 148 (-30.19%)
Mutual labels:  command-line-tool, command-line
Dry Cli
General purpose Command Line Interface (CLI) framework for Ruby
Stars: ✭ 210 (-0.94%)
Mutual labels:  command-line-tool, command-line
Onhold
🔊 Play sounds while and after shell jobs complete
Stars: ✭ 146 (-31.13%)
Mutual labels:  command-line-tool, command-line
Artisan Menu
📝 Artisan Menu - Use Artisan via an elegant console GUI
Stars: ✭ 141 (-33.49%)
Mutual labels:  command-line-tool, command-line
Dejavu
Quickly detect already witnessed data.
Stars: ✭ 151 (-28.77%)
Mutual labels:  command-line-tool, command-line
Pueue
🌠 Manage your shell commands.
Stars: ✭ 2,471 (+1065.57%)
Mutual labels:  command-line-tool, command-line
Receivemidi
Multi-platform command-line tool to monitor and receive MIDI messages
Stars: ✭ 164 (-22.64%)
Mutual labels:  command-line-tool, command-line
Fast Cli
Test your download and upload speed using fast.com
Stars: ✭ 2,178 (+927.36%)
Mutual labels:  command-line-tool, cli-app
Hledger
A reliable, user-friendly Plain Text Accounting tool with command line, terminal and web interfaces.
Stars: ✭ 1,887 (+790.09%)
Mutual labels:  command-line-tool, tui
Smenu
smenu started as a lightweight and flexible terminal menu generator, but quickly evolved into a powerful and versatile CLI selection tool for interactive or scripting use.
Stars: ✭ 1,906 (+799.06%)
Mutual labels:  command-line, tui
Mandown
man-page inspired Markdown viewer
Stars: ✭ 173 (-18.4%)
Mutual labels:  command-line, 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?
💻 Live with the dark terminal?
📝 Think in Markdown?

Finally! A full featured task manager for YOU!

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

🔮 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

  • [x] Create Project
  • [x] Delete Project
  • [ ] Edit Project
  • [x] Create Task (under project)
  • [x] Set Task due date (as yyyy-mm-dd) with shortcut
  • [x] Set Task due date with quick input buttons (today, +1 day, -1 day)
  • [x] Update Task Title
  • [x] Tasklist items should indicate status (done, pending, overdue) using colors
  • [x] Export Tasks (Copy title, dueDate and description to clipboard as Markdown)
  • [ ] Pin Tasks
  • [x] Shortcut for Adding new Project and Task
  • [x] Global shortcuts for jumping to Projects or Tasks panel anytime
  • [x] Cleanup all completed tasks of project
  • [x] Task note editor should syntax highlight (markdown) and line numbers
  • [x] Status bar for common shortcuts
  • [x] Status bar should display success/error message of actions
  • [x] Status bar may display quick tips based on focused element
  • [x] Dynamic lists
    • Today - Due Today and overdue
    • Tomorrow
    • Upcoming - Due in next 7 days
    • Unscheduled - tasks without due date
  • [ ] Integrations
    • todo.txt (coming soon...)
    • Google Tasks
    • (Share your ideas)
  • [ ] 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
./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 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 / 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 -

  • Selecting an item with Enter will move you to right panel. That means -
    • Selecting a Project will load it's tasks and move to Tasks panel
    • Selecting a Task will load task detail and move to Detail panel
  • Use Esc to move back to left panel. From Details to Tasks to Projects.
  • To navigate a list (Project list or Task list),
    • Use or j or Tab to go down
    • Use or k or Shift+Tab to go up

Some More hints:

  • If you are a vim user, think like -j/k for up/down list and h for go left
  • Think Esc as a "step back" - to previous pane in most cases.
  • When you're in a list (Projects or Tasks), Enter will load currently selected item.
  • 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 ❤️ 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 aligned with the focus (merging with ease) of this app, 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 your 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. 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].