Giter VIP home page Giter VIP logo

may / calmwater Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 1.52 MB

A fast, command-line, GTD tool that holds you to account.

License: GNU General Public License v3.0

Ruby 100.00%
gtd getting-things-done command-line command-line-tool commandline gtd-workflow gtd-management gtd-applications ruby todo minimalist minimal minimalism simple terminal-based terminal-app task-manager gtd-application

calmwater's Introduction

calmwater: a fast, command-line, GTD tool that holds you to account

Requirements:

  • Ruby 2.6.3 or greater.

Recommended, but entirely optional:

  • tput (if you don't have this, then set $color_only to false in config.rb)
    • apt install libncurses5 on debian/ubuntu, otherwise see: tput

Install

  1. Download.
  2. Open a terminal and unzip calmwater-trunk.zip, presumably in your Downloads folder.
  3. Install tput (see above) or set $color_only to false in config.rb file.
  4. ruby Downloads/calmwater-trunk/main.rb

Using:

  • ruby calmwater-trunk/main.rb
  • Arrow keys and Emacs keybindings available for editing command line items; if you're on MacOS and option-f produces a fancy f symbol, fix it by:
    • If Terminal.app: Preferences -> Profiles -> Keyboard -> check 'Use Option as Meta key'
    • If Kitty: config file: macos_option_as_alt yes
    • Then restart the terminal.

design principles

  • Never lose data.
  • Never lock you in; your data is yours and human-readable.
  • Fast; capture your thoughts, update your status, etc. -- quickly.
  • Stays out of your way, but keeps your data at you fingerprints.
  • Pure Getting Things Done; no tweaks or additions like priorities. No cruft.
  • Everything you need, nothing you don't. Minimalist: see below.

features?

  • Fast
  • Reliable
  • Open (your data is yours)
  • Supports you; helps you do your weekly review right and not skip any items, while also preventing overwhelm as best it can
  • Supports you; alerts you if you're experiencing project creep (coming someday)

non-features; everything you need, nothing you don't.

extbrain is minimal and opinionated so we left out several common features out, by design:

  • No priorities; either it's important enough to be on your current projects & action lists, or it isn't. If you aren't sure, err on putting it on your someday/maybe list.
  • No due dates; use your calendar or your phone's reminder function. Otherwise you'll just clutter yourself up with a lot of 'should dos' and watch them pass by, undone.
  • No habits; use a habit tracker app.
  • No tracking of average length of time between weekly reviews; the app already yells at you if you're delinquent, knowing that you're regularly delinquent isn't a useful feature; it will only inspire guilt and it also will become pretty obvious if you are regularly delinquent.

TODO the rest of this README

won't work under windows

  • color coding of output
  • opening a second instance of extbrain on the same machine (eg server) will just exit, instead of gracefully shutting down the first process

todo some documentation

PROJECTS

  • p keyword string - creates project with keyword and title of string
  • pt keyword action_context string - creates a task within project specified by keyword with specified title of string with action context of action_context

TASKS

  • t - lists tasks

  • t work - list tasks in work action context

  • t work call bob re: proposal - create task in work action context with the contents of 'call bob re: proposal'

  • when creating tasks, can use abbreviations for action contexts such as 'c' for computer, 'w' for waiting, and 's' or 's/m' or 'm' etc. for someday/maybe

  • use 't action_context' to list tasks in a given action context, like 't computer' or 't job'

  • shortcuts available: lc and lj

GENERAL

  • in general hitting ENTER on a prompt will do nothing and allow you to exit out of that prompt, such as when selecting tasks

  • in general, the undo command is available for some actions such as completion, deletion and other serious actions

ADVANCED

  • w what you are waiting on
  • w (no arguments, works like lw)
  • w - eg 'w bob' - show everything I'm waiting on Bob to do.

Testing

  • rake test
  • test coverage for some underlying data structures, but not for middleware

TODO VET THIS STUFF LATER

alias extbrain='rlwrap ruby ~/extbrain/main.rb'

COMMAND STRUCTURE

OTHER

  • s search_keyword - look for keyword, else search all titles for search_keyword, across projects and tasks

  • IGNORE THIS ** #f - add a note that followed up with person we're waiting on ** ##aw - swap a task from action to waiting or vice versa?

TASKS AND PROJECTS

  • c search_keyword - complete task matching search keyword/list tasks
  • d search_keyword - complete task matching search keyword/list tasks
  • n - nottaking TODO FLESHOUT. # not sure this is implemented
  • r search_keyword - rename/retitle task or project specified

TODO VERIFY THIS


## TASKS
When a search_keyword is used, the action will be taken on the single
task matching that search, or -- if there are multiple matches --
present a list of options matching that search and have the user choose
using numbers - or running a more refined search again from the prompt.
##d 5 - delete the 5th item just displayed? if only.

w - display waiting task list
a - display agenda list
a name - display agenda list for name
a name content - create agenda item for name [note: task w/ action context fo a person]
t - list all tasks
t action_context - list all tasks in a given action context, otherwise use this shorthand
 tc - list all tasks computer action context
 th - " " home
 tw - " " work
 tj - aliaso for tw, j for job

#TODO tasks.filter once ruby = 2.6.3 or just live with select nomeclatre
t = @tasks.select { |t| p.action_context == action_context  
t.each { |t| puts t }
printing some kind of short uid instead of a custom numbered menu might be easier.. less state to manage..



## PROJECTS
p or lp - list projects 
p keyword - view project with keyword
p keyword title - create project with keyword and title 
tag keyword - add tags to project?
pt keyword action_context task - add a task to project with keyword in action_context with a title of task #pt stands for project task

---

If your delete key does not work, try this:

.inputrc
  "\e[3~": delete-char


----

notes:
 review projects and tasks every 5-7 days
 review areas of focus/resp every 30 days.


calmwater's People

Contributors

may avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.