tj / pomo Goto Github PK
View Code? Open in Web Editor NEWRuby Pomodoro app for the command-line (time / task management)
License: MIT License
Ruby Pomodoro app for the command-line (time / task management)
License: MIT License
Use ✓ instead of √! It looks much nicer =)
Simple Patch available at:
http://gist.github.com/277359
Sometimes I need to show the current task detail message?
consider to add pomo current
?
mainly for Pomo::List#find
Hi
to have this working on ruby 1.9 please add this:
to handle correct char ''✓" in source code.
Fancy terminal tricks to display remaining time etc? having a shell open just for pomo is not ideal
Stopping a task should include:
false
~/.pomo_stat
to #[default]#[fg=green]00:00#[default]
Possible option for maintaining processes: https://github.com/rjackson/singleton_process
.pomorc
Hi
I am on Debian I did the described install. This is the error log from the shell
thanks
/var/lib/gems/2.1.0/gems/commander-4.2.0/lib/commander/runner.rb:384:in block in require_program': program version required (Commander::Runner::CommandError) from /var/lib/gems/2.1.0/gems/commander-4.2.0/lib/commander/runner.rb:383:in
each'
from /var/lib/gems/2.1.0/gems/commander-4.2.0/lib/commander/runner.rb:383:in require_program' from /var/lib/gems/2.1.0/gems/commander-4.2.0/lib/commander/runner.rb:51:in
run!'
from /var/lib/gems/2.1.0/gems/commander-4.2.0/lib/commander/delegates.rb:8:in run!' from /var/lib/gems/2.1.0/gems/commander-4.2.0/lib/commander/import.rb:10:in
block in <top (required)>'
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require': cannot load such file -- libnotify (LoadError) from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in
require'
from /var/lib/gems/2.1.0/gems/pomo-2.1.3/lib/pomo/notifier/libnotify_notifier.rb:1:in <top (required)>' from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in
require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from /var/lib/gems/2.1.0/gems/pomo-2.1.3/lib/pomo/notifier.rb:2:in
<top (required)>'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in
require'
from /var/lib/gems/2.1.0/gems/pomo-2.1.3/lib/pomo.rb:3:in <top (required)>' from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in
require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from /var/lib/gems/2.1.0/gems/pomo-2.1.3/bin/pomo:5:in
<top (required)>'
from /usr/local/bin/pomo:23:in load' from /usr/local/bin/pomo:23:in
Just checking - I like the idea!
.pomo
with pomo init [path]
yup
Hello, I install pomo in my opensuse 12.2 64bit, but when i run pomo, it raise
/home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/commander-4.1.3/lib/commander/runner.rb:365:in `block in require_program': program version required (Commander::Runner::CommandError)
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/commander-4.1.3/lib/commander/runner.rb:364:in `each'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/commander-4.1.3/lib/commander/runner.rb:364:in `require_program'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/commander-4.1.3/lib/commander/runner.rb:52:in `run!'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/commander-4.1.3/lib/commander/delegates.rb:11:in `run!'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/commander-4.1.3/lib/commander/import.rb:10:in `block in <top (required)>'
/home/soffolk/.rvm/rubies/ruby-1.9.3-p327-falcon/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require': cannot load such file -- libnotify (LoadError)
from /home/soffolk/.rvm/rubies/ruby-1.9.3-p327-falcon/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/pomo-2.1.1/lib/pomo/notifier/libnotify_notifier.rb:1:in `<top (required)>'
from /home/soffolk/.rvm/rubies/ruby-1.9.3-p327-falcon/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/soffolk/.rvm/rubies/ruby-1.9.3-p327-falcon/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/pomo-2.1.1/lib/pomo/notifier.rb:2:in `<top (required)>'
from /home/soffolk/.rvm/rubies/ruby-1.9.3-p327-falcon/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/soffolk/.rvm/rubies/ruby-1.9.3-p327-falcon/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/pomo-2.1.1/lib/pomo.rb:3:in `<top (required)>'
from /home/soffolk/.rvm/rubies/ruby-1.9.3-p327-falcon/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/soffolk/.rvm/rubies/ruby-1.9.3-p327-falcon/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/gems/pomo-2.1.1/bin/pomo:5:in `<top (required)>'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/bin/pomo:19:in `load'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/bin/pomo:19:in `<main>'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/bin/ruby_noexec_wrapper:14:in `eval'
from /home/soffolk/.rvm/gems/ruby-1.9.3-p327-falcon/bin/ruby_noexec_wrapper:14:in `<main>
Do anyone know why? Thank you
A fresh installation of pomo looks like this:
igalic@tynix ~ % sudo gem install pomo
[sudo] password for igalic:
Fetching: highline-1.6.19.gem (100%)
Fetching: commander-4.1.3.gem (100%)
Fetching: faraday_middleware-0.9.0.gem (100%)
Fetching: hashie-2.0.5.gem (100%)
Fetching: netrc-0.7.7.gem (100%)
Fetching: octokit-1.24.0.gem (100%)
Fetching: terminal-notifier-1.4.2.gem (100%)
Fetching: growl-1.0.3.gem (100%)
Fetching: pomo-2.1.3.gem (100%)
Successfully installed highline-1.6.19
Successfully installed commander-4.1.3
Successfully installed faraday_middleware-0.9.0
Successfully installed hashie-2.0.5
Successfully installed netrc-0.7.7
Successfully installed octokit-1.24.0
Successfully installed terminal-notifier-1.4.2
Successfully installed growl-1.0.3
Successfully installed pomo-2.1.3
9 gems installed
Installing ri documentation for highline-1.6.19...
Installing ri documentation for commander-4.1.3...
Installing ri documentation for faraday_middleware-0.9.0...
Installing ri documentation for hashie-2.0.5...
Installing ri documentation for netrc-0.7.7...
Installing ri documentation for octokit-1.24.0...
Installing ri documentation for terminal-notifier-1.4.2...
Installing ri documentation for growl-1.0.3...
Installing ri documentation for pomo-2.1.3...
Installing RDoc documentation for highline-1.6.19...
Installing RDoc documentation for commander-4.1.3...
Installing RDoc documentation for faraday_middleware-0.9.0...
Installing RDoc documentation for hashie-2.0.5...
Installing RDoc documentation for netrc-0.7.7...
Installing RDoc documentation for octokit-1.24.0...
Installing RDoc documentation for terminal-notifier-1.4.2...
Installing RDoc documentation for growl-1.0.3...
Installing RDoc documentation for pomo-2.1.3...
sudo gem install pomo 21.86s user 0.41s system 35% cpu 1:03.47 total
igalic@tynix ~ % pomo help
/var/lib/gems/1.9.1/gems/commander-4.1.3/lib/commander/runner.rb:365:in `block in require_program': program version required (Commander::Runner::CommandError)
from /var/lib/gems/1.9.1/gems/commander-4.1.3/lib/commander/runner.rb:364:in `each'
from /var/lib/gems/1.9.1/gems/commander-4.1.3/lib/commander/runner.rb:364:in `require_program'
from /var/lib/gems/1.9.1/gems/commander-4.1.3/lib/commander/runner.rb:52:in `run!'
from /var/lib/gems/1.9.1/gems/commander-4.1.3/lib/commander/delegates.rb:11:in `run!'
from /var/lib/gems/1.9.1/gems/commander-4.1.3/lib/commander/import.rb:10:in `block in <top (required)>'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- libnotify (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /var/lib/gems/1.9.1/gems/pomo-2.1.3/lib/pomo/notifier/libnotify_notifier.rb:1:in `<top (required)>'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /var/lib/gems/1.9.1/gems/pomo-2.1.3/lib/pomo/notifier.rb:2:in `<top (required)>'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /var/lib/gems/1.9.1/gems/pomo-2.1.3/lib/pomo.rb:3:in `<top (required)>'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /var/lib/gems/1.9.1/gems/pomo-2.1.3/bin/pomo:5:in `<top (required)>'
from /usr/local/bin/pomo:23:in `load'
from /usr/local/bin/pomo:23:in `<main>'
1 igalic@tynix ~ %
Is it be possible to pull the libnotify gem on Linux and Windows? (and its equivalent on OS X?
I've just created a gemset for pomo, but it doesn't work. Here's the output: https://gist.github.com/5215051
Steps to reproduce (on ArchLinux):
rvm install 1.9.3-p392
rvm use 1.9.3-p392
rvm gemset use pomo --create
gem install pomo
pomo
Random idea, but instead of showing all tasks with pomo ls
might it be more efficient to instead list only incomplete tasks by default then just add an --all
option so you only get hit with everything if you explicitly want it?
I know for myself I tend to think of it as a means of seeing what's on the plate, rather than a victory lap of stuff already done (once it's done, it's pretty much behind you at that point). This'd save a few keystrokes while narrowing things down for scanning the list more efficiently. Especially if the length of your list can get a bit out of control at times.
perhaps ~/.pomo-routines or something
mine would consist of
etc.. ? i dunno haha
Hi, just installed gem on ruby 2.0.0 and got following error:
~/.rvm/gems/ruby-2.0.0-p353/gems/commander-4.1.5/lib/commander/runner.rb:365:in `block in require_program': program version required (Commander::Runner::CommandError)
Is ruby 2.0.0 supported?
TLDR; I can't add Pomo to Travis without admin access.
I use REE at work so I would like to maintain 1.8 compat. As ou can see from 5dc2d76 1.9 code creeps in unless I go back and forth in rbenv. Travis would make this easier.
If add sound alert when task complete may be better?
only test in linux!
For example:
$ pomo start 23
$ a task is already running
Then try,
$ pomo help complete
as well as,
$ pomo help remove
I have not been able to stop this task from running for days. originally, if I could figure out which task it was I could manually remove it and just engage future tasks as $ pomo start --progress which would conclude the task after 25 minutes.
Right now I am buried in a list of tasks and will probably be forced to remove them one at a time to test which one is still running. There should be a way to identify what task is "currently running" and remove or stop it if you aren't using --progress.
Thanks much.
e.g. pomo initconfig --tmux --no-progress --notifier growl
sets global preferences.
Global preferences should be able to be overridden on the command-line. e.g. even if the config has notifier: growl
a user can execute pomo start -n notification_center
to override.
It looks like once you start a pomo or break, the clock continues to run... and then you can start another pomo or break concurrently.
pomo should only allow for one break or pomo to be running at a time.
In lieu of pomo stop
(see #28) I thought setting a task to complete would also stop it, alas it doesn't.
wist@box:~$ pomo list
0. Test : 25 minutes
✓ 1. Another task : 20 minutes
2. Third task : 25 minutes
70 minutes
wist@box:~$ pomo start 0
wist@box:~$ pomo complete 0
- Completed Test
wist@box:~$ pomo start 2
a task is already running
wist@box:~$
perhaps pomo add \#3 --user visionmedia --project pomo
or when in a gem dir use pomo add \#3
Unfortunately, when starting the next incomplete task, the notification never showed up, but will try again. The progress bar did show up.
This is running under tmux
Right now, tmux integration uses the default bg color.
I'm using tmux-powerline which allows for tabbed segments with various colors While a pomo isn't running this looks great:
However, since a running pomo's background is hardcoded to status bar's default bg color, I can't configure the background, and it looks ugly:
disclaimer... using this on Windows 7, ruby 1.9.2, Growl Version 2.0.9.
I get the following error when I issue the command pomo start
error: private method `notify_info' called for Pomo::Notifier::Growl:Class. Use --trace to view backtrace
here is the trace
C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/lib/pomo/notifier/growl.rb:11:in `notify': private method `notify_info' called for Pomo::Notifier::Growl:Class (NoMethodError)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/lib/pomo/notifier.rb:22:in `notify'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/lib/pomo/task.rb:115:in `background_progress'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/lib/pomo/task.rb:74:in `start'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/bin/pomo:64:in `block (3 levels) in <top (required)>'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/lib/pomo/list.rb:66:in `block in find'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/lib/pomo/list.rb:65:in `each'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/lib/pomo/list.rb:65:in `each_with_index'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/lib/pomo/list.rb:65:in `find'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/pomo-2.0.1/bin/pomo:62:in `block (2 levels) in <top (required)>'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/command.rb:180:in `call'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/command.rb:180:in `call'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/command.rb:155:in `run'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/runner.rb:402:in `run_active_command'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/runner.rb:78:in `run!'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/delegates.rb:11:in `run!'
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/commander-4.1.3/lib/commander/import.rb:10:in `block in <top (required)>'
when I run the command pomo start -p, I do get the command line progress bar...any ideas?
no reason to have many aliases
The guidelines for Pomodoro state that tasks may take up to seven 25-minute Pomodoros, and if it takes more, then you should consider breaking it up into multiple tasks: http://www.pomodorotechnique.com/download/pdf/Pomodoro-Cheat-Sheet.pdf
That being said, I'd like to request an option so that tasks aren't automatically marked as 'complete' after the 25 minute timer is finished.
In addition to not having to mark tasks as incomplete in order to continue, I also feel that having to manually complete a task would improve the positive feedback.
Thanks for the awesome script!
I've forked this gem to display notification messages with Quicksilver.
If there is any appetite for supporting multiple notification systems then I will put together a pull request.
Thank you for this gem :)
I great feature would be grouping, so that when you import a list of github issues etc... you could set the group/project so that your main list wouldn't become huge. So pomo <user> <project> [options]
would create a group with the project name.
Pomo::List#find currently does not allow for multiple args in some cases. For example the following will not work
$ pomo remove 1..3 5..-1
only the first range will register
haha.. because we all need it :)
config = Pomo::Configuration.load(options.__hash__)
task = Pomo::Break.new('Break time', options.__hash__)
def self.load(options = {})
options.reject!{|k,v| ![:notifier, :progress, :tmux].include? k}
Because call reject! in the load method so the second options.__hash__
is {}, And it led to default break time to 25
I think save options.__hash__
to one variable and use it for Pomo::Configuration.load
and
Pomo::Break.new
may solve the problem.
This will require that id's or indexes are unique at all times.
It appears pomo doesn't show growl messages with growl v1.3. Have you considered using https://github.com/snaka/ruby_gntp which is what I use with Guard and it works perfectly.
Many thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.