Coder Social home page Coder Social logo

splode / pomotroid Goto Github PK

View Code? Open in Web Editor NEW
4.1K 41.0 345.0 8.02 MB

:tomato: Simple and visually-pleasing Pomodoro timer

Home Page: https://splode.github.io/pomotroid/

License: MIT License

JavaScript 38.55% Vue 57.15% SCSS 3.64% EJS 0.65%
pomodoro vue electron javascript electron-vue pomodoro-timer productivity time-management pomodoro-technique

pomotroid's Introduction

Pomotroid
Pomotroid in action

Simple and visually-pleasing Pomodoro timer.


Overview

Pomotroid is a simple and configurable Pomodoro timer. It aims to provide a visually-pleasing and reliable way to track productivity using the Pomodoro Technique.

Pomotroid is in its early stages, so feedback and contributions are welcome and appreciated! 🌱

Features

  • Customize times and number of rounds (persistent)
  • Charming timer alert sounds (optional)
  • Desktop notifications (optional)
  • Minimize to tray (optional)
  • Several themes included with the ability to create custom themes.
  • Timer activity logging.

Themes

Pomotroid provides many themes. It's also theme-able, allowing you to customize its appearance.

Screenshots of Pomotroid using various themes

Visit the theme documentation to view the full list of official themes and for instruction on creating your own.

Install

Download

Download the latest version from the releases page.

Pomotroid is available for Windows, Mac OSX and Linux.

Homebrew

You can also install Pomotroid on macOS with Homebrew:

brew install --cask pomotroid

Scoop

You can install Pomotroid on Windows with scoop

scoop install https://raw.githubusercontent.com/Splode/pomotroid/master/pomotroid.json

AppGet

You can install Pomotroid on Windows with AppGet

appget install pomotroid

Roadmap

📝 Future plans for enhancements and development:

  • Mini-mode

Development

Pomotroid is built with Vue.js, Electron, and electron-vue.

Note: depending on your OS settings, you may receive a security warning upon installation. This has to do with Pomotroid being an unsigned application. You can find out more by researching code-signing for Apple and Microsoft.

Build Setup

# install dependencies
npm i

# serve with hot reload at localhost:9080
npm run dev

# build Pomotroid for production
npm run build

License

MIT © Christopher Murphy

pomotroid's People

Contributors

aleksey-sergey avatar alilozano avatar cfvescovo avatar dependabot[bot] avatar jamesdbartlett3 avatar johnjacobkenny avatar kawarimidoll avatar letmaik avatar okgarces avatar resolritter avatar splode avatar svijayb avatar tcwteam avatar ziishaned avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pomotroid's Issues

Support for addons

I recognize that this is a big request. But it would be awesome if there were external packages that could integrate with this app easily through a plugin system.

For example, I'd like to set my slack status at work to indicate that I'm in a pomodoro and if possible even indicate how much time I'll be in a pomodoro. I'm sure many people have many such integrations they'd like to see. But it's infeasible to expect the core team of pomotroid to implement all such integrations. But if the community were allowed to create small packages that could receive events for various things in pomotroid, that would make the app instantly better than every other pomodoro app out there.

The whole system could even be as simple as using webhooks. The user could configure URLs that would receive a request when various events happen. Or it could be as complicated a plugin system that has autodiscovery of plugins and one-click installation. I guess that's up to the core team to decide based on the resources available.

Add a progress bar on windows icon tray

It would be nice if the windows icon in the taskbar gets progressively filled as the timer progresses. Also a red progressing bar would be nice to indicate "in pomodoro" and a green progress bar for "in break mode".

No long breaks for 50/10 timebox

[Feature] Transparency when always on top

When Always on Top, the display of Pomotroid is taking a lot of display space.
It could be a good idea that we can customize the transparency of the display, in order to at least see what is display beyond.

[Feature request] Notes

Thaks for the great app. But I would like to suggest you to add something like notes for each time. like 6:00 -> working on X -> break, 6:00 -> working on y -> break, 6:00 -> working on a -> break ....

Settings partially lost if both timer and view settings are changed

Looking at the source code of Timer.js and View.js, both storage modules create a LocalStore object where the data is read from a JSON configuration file on disk. Since those objects are independent, changing options from both tabs will loose any changes from the tab that was edited first. E.g. first I change the work timer to 20min, and then I disable desktop notifications. After restarting the app, the work timer change is lost.

Configure auto-start timer for Work and Break separately

I would like to, for example, be able to have the timer start a break automatically, but not the work timer. This would be useful if you decide to take a break elsewhere (not around your computer) as a way to not start the timer until you tell the program that you're ready to start again.

Hotkey to start/stop timer

It would be convenient to alt-tab into Pomotroid and then press hotkey to start timer. Spacebar or enter come to mind.

Logo graphics desing

Hello I have Arslanshn need new or improved graphics SteMit.com is a graphic designer I need your approval to be accepted to the project projem Please..

[Suggestion] Flatpak release

It would be convenient if this app could be released as Flatpak on Flathub, so that, in addition to be installable on every Linux distro (just like AppImages), it could be simply searched in GNOME Software or KDE Discover and updated automatically without having to download every new release manually.

Export historical data

Hey @Splode & other contributors,

Congrats for the awesome-yet-simple app you've made! I use it everyday on my college routine. However, I would like to have an option to keep a record of how I've been doing my pomodoros, i.e.

  • A record to check how it's been the last 7/14/30 days
  • A way to see which time slots are more productive for me
  • At which hours I'm more used to skip a pomodoro or a break (or how many times a day)

I've never done stuff this big with Vue, but I'm keen to do it myself. Is there any ongoing work for this? If not, where should I start?

Timer running slow

I'm on Mac OSX (HIgh Sierra) and I have noticed the timer is running slow. I've compared this to a manual stopwatch and it lags about ~10 by the end of the 25 minute session (so it's reporting I still have 10 minutes left when a full 25 minutes have passed).

No idea what's causing this. I usually start the timer, then minimize it while I work away. Haven't tried running it solo with nothing else running.

[Suggestion] A mini mode would be much appreciated

Hi there,

Windows user here. Just download the app and great work!

I simply want to suggest adding a mini mode, in which the window can be shrinked to a (much) smaller size . Now it is a bit huge to put it aside as a reminder in always on top mode when working, as the original window takes nearly one sixth of the screen.

I used to use a chrome app called 'time doser' to do this http://timedoser.daniguardiola.me/. But clearly Google decides to drop the supports of standalone app feature, so I need to seek an alternative to it. If you are interested, maybe you can check the link to see what I meant.

Many thanks!
Vincent

Setting, "Always On Top" is not preserved on application startup.

Expected Behavior:
When I enable the setting "Always On Top", close the app, and reopen it, the app should still exhibit the "Always On Top" behavior.

Actual Behavior:
When I enable the setting "Always On Top", close the app, and reopen it, the app does not exhibit the "Always On Top" behavior, even though the setting is still enabled.

Work around:
Disabling "Always On Top", and then re-enabling restores the proper behavior.

Version
installed: X-AppImage-BuildId=1bdaf0f0-b155-11a8-347f-85bfaa8fbf9c image: X-AppImage-BuildId=1bdaf0f0-b155-11a8-347f-85bfaa8fbf9c

[Feature request] Keyboard shortcut support

First of all, great app!

It'd be great if you could define keybinds (preferably system-wide) to perform actions in the app - namely pausing/resetting the timer and skipping.

Processor usage high when alert

When i'm alerted for go back to work, Pomotroid have a big usage iof cpu for one minute.

(about more than 20%)

i have a intel core i7700HQ @2.8ghz, 24g of ram

[Feature request] ability to adjust alarm volume

It's a gentle alarm sound (on Windows), but regardless I (and my colleagues) would like the ability to adjust its volume.

**thanks for your work. It's my favourite pomodoro timer I've come across.

Inquiry about adding extra functions to the notification

Hi, this isn't actually an issue but I wanted to ask about adding more functions to the notifications.

Is there way to change the position of the notification randomly, as well as making them wait until there's any click?

I couldn't find much clue from "Notification.vue" file, so I checked your package.json, and I found node-notifier, and am still working my way to implementing it.

It's my first time using vue.js, and it will be a big help if you could provide few hints to implementing this. Thank you.

[Suggestion] Portable Application

Hi,

Thanks for this great project !

It would be great however to have a portable application for those who cannot install anything on
non-personal (work) computers.

Thanks !

New Logo

Excusme , can i make a new logo for you app ?

Do Not Disturb Mode

Windows, Mac and Linux (Gnome Shell) all provide "Do Not Disturb" mode (aka "Focus Assist") that hides system notifications. It would be useful to have it automatically switched on/off by pomodoro start/stop event.

Show app on screen when work timer is up

The thing with these timers, is that for them to be effective, you need to follow a set schedule. At the same time, however, me or other people may not like to have the timer pinned on screen all the time (plus the fact that it can be distracting to have the timer visible).

Default program icon on macOS 10.12

Hello, thanks for this nice and simple app.
I noticed that the program use the default icon on macOS Sierra 10.12 instead of the app icon from the "build/icon" directory.

capture d ecran 2018-03-12 a 10 14 34

I'm using the app on version 0.1.2

Notification only appears the first time

There is only a notification after the first run. After that, no notifications show up in the Windows notification area.
The app still makes a notification sound on it's own. But no notification shows up in the notification area.

Work session decay [Feature Request]

At the beginning of my work day I can work for longer before wanting a short break and toward the end I can't work as long. A solution would be to have each consecutive work period be shorter in length by some user defined decay value. This might be against the philosophy behind the original pomodoro method but it's a feature that I'd like to try.
I'll probably end up implementing this myself when I get the time.

[Feature Request] Minimize to Menu Bar on OSX

Instead of minimizing the app to the dock tray, it would be convenient to have an icon in the status menu section of the Mac OSX menu bar that you can click on. Also to prevent Pomotroid from popping up when CMD-Tabbing through windows.

Thanks for this app by the way, it's the most aesthetically pleasing of all the pomodoro timers I have used and helps a lot to work efficiently through the software development bootcamp I am half-way through.

User experience

  1. Can not change sound volume, so its quit.
  2. Can not minimize to tray.
  3. Would be awesome to see small to-do manager inside this app

Nameable Time Periods [Feature Request]

I'd like to be able to rename the different periods of time in a pomodoro session. This might also entail adding more than just a work and break/longbreak period. Marinara timer does this well enough but isn't a desktop app.

Timer popup click action

Hi there,

I think that could be useful to make timer popups clickable to raise up the application main window.

Thanks.

Fullscreen.

Would you be able to implement an option to have the program take up the whole screen because i find myself wandering around the internet. I think it would help me and others concentrate better. maybe have an option to toggle it so you aren't forced to run it in fullscreen.

[Suggestion] Notification sounds

Thanks, this seems like the best of the solutions I found for Linux.

I find the "Desktop Notifications" option useful, but I still think the alert sound (at least in Linux under GNOME) is very short and low volume, specially if one if listening to focusing music while working. It would be great if the notification duration and volume (until turned-off, like an alarm) could be edited.

Best,
João

Security Warning Mac

In Mac, we get a warning saying that "Pomotroid can't be opened because it is from an unidentified developer". Please register it with an Apple Store User to increase the sense of security.
screen shot 2018-03-12 at 10 14 15

Track pomodoro of others on local network

Hi @Splode,

I am currently working on adding a way to discover other pomotroid users on a local network so you can track their timers and set an alarm once their break starts so you can ask them a question without breaking their concentration.

Would this be something you'd be interested in including in this repo? Mind you it does might add about 50mb of dependencies for including local network utilities (Nmap).

Minimise to system tray

Windows user here: it would be nice if the application minimised in the system tray. Great app!

Windows taskbar button with progress and rapid commands

Hi there,

for those that keep Pomodroid window opened and not minimized to tray, I think that would be useful to make the taskbar window button live with progress gradient (like many other apps).
image

Moreover, having rapid commands (play/pause/skip) hovering the button instead of opening the window would be great (like many multimedia apps like Spotify f.e.).
image

A little warning: on taskbar button "p" of "Pomotroid" is not capitalized:
image

Thanks.

Dial timer won't start when app is minimized

Dial timer animation will not start if app is minimized or running in the background. The reason for this is a known issue with requestAnimationFrame() not being fired in Electron if an application is minimized. backgroundThrottling: false should normally prevent this behavior.

Refer to [Electron issue #9567](electron/electron#9567) for further details.

Possible workarounds include using setInterval() instead, but this will require a significant rework of the dial.

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.