Giter Site home page Giter Site logo

may / calmwater1 Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.53 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

calmwater1's Introduction

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

Requirements:

  • Ruby 2.6.3 or greater.
  • gem install reline

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.

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

how to run tests

cd calmwater rake test

TODO the rest of this README

won't work under windows

  • color coding of output
  • opening a second instance of calmwater 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 calmwater='rlwrap ruby ~/calmwater/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.


calmwater1's People

Contributors

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