proginosko / LeechBlockNG

LeechBlock NG (Next Generation) for Firefox is a simple productivity tool designed to block those time-wasting sites that can suck the life out of your working day. All you need to do is specify which sites to block and when to block them.
https://www.proginosko.com/leechblock/
Mozilla Public License 2.0
721 stars 66 forks source link

[Feature Request] Enhence Time Limits and It's Countdown Mechanism for Better Flexibility and Habit Management #304

Closed gepz closed 11 months ago

gepz commented 1 year ago

I have been regularly using the time limit features for my Block Sets and appreciate their role as a productivity management tool, providing flexibility that calendar scheduling do not have. However, I have come across a few limitations in their current design. While I understand that incorporating these suggestions may not be feasible or in line with the original design intent, I'd like to propose the following enhancements to improve usability:

In my opinion, these changes would enhance the flexibility and effectiveness of the time limit features. Thank you for considering my suggestions, and I look forward to any feedback.

gepz commented 1 year ago

I'll add that I do currently manually use Reset Rollover Time and Discard Remaining Time functionalities at the right timing as a workaround.

And that the high time limits are primarily used for "work time" management, which I think the feature would be particularly useful for people with flexible work schedules.

Azirine commented 1 year ago

How about a time allowance of x time every y time up to a maximum of z time? Time allowance only accumulates when blocked sites are not being used.

In your example of 90-minute limit every 3 hours, in effect your usage is limited to 50%. With the allowance function, it could instead be 1 second allowance every 1 second, up to a maximum of 10 minutes. It would still be a 50% usage limit, but you could only use it for 10 minutes (or anything you choose) instead of 4.5 hours before getting blocked.

You could even let users choose the usage limit % and maximum allowance. If one chooses a 25% usage limit and 20 minute max allowance, it would automatically give 1 second allowance every 3 seconds, up to a maximum of 20 minutes.

This way the limits would be more granular and users wouldn't get sudden lumps of allowance at regular intervals, which they would likely use up too quickly.

gepz commented 1 year ago

That sounds good too. If I understand correctly, once the user has used other sites for 20 minutes first, your mechanism will become functionally the same as my mechanism if I set mine to "10 minutes allowed within every 20 minutes"?

gepz commented 1 year ago

Now I see how your time allowance feature is a little different. A user can get a small allowance whenever they take a small break. Even if they have just used up all their allowance, while mine always requires the user to wait for a sudden reset. That sort of removes the concept of a period altogether, although I have also noticed a situation where this is not desirable, as it might be useful to encourage a user to accumulate a "minimum allowance" before using it, since some tasks require a minimum amount of time to be done, or to be done efficiently. If we add another option "the minimum allowance", and have a rule for it that "a newly earned allowance at a given time will be preserved (cannot be used) if it is needed to accumulate the minimum allowance before the next period", it will be powerful enough to simulate both your new mechanism and the current one, and everything in between.

Azirine commented 1 year ago

Yes, periods are not a good idea because it forces users to allocate their usage time appropriately. If they are able to do so, they wouldn't need this extension anyway. Furthermore, if users run out of time and need to do something, they might turn off leechblock, which makes the blocks useless in the first place. The proposed time allowance feature will be able to solve these issues. The minimum allowance option will be a good addition, thank you for suggesting.