#pomodoro-timer #pomodoro #timer #cli #json-file #rust

app locking-pomodoro-timer

A Pomodoro timer with the capability of locking the screen

2 stable releases

1.1.0 May 22, 2024
1.0.0 May 16, 2024

#214 in Command line utilities

Download history 139/week @ 2024-05-13 165/week @ 2024-05-20

304 downloads per month

GPL-3.0 license

715KB
681 lines

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Locking Pomodoro Timer

A Pomodoro timer with the capability of locking the screen.
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Pomodoro Screen Shot

There are many Pomodoro timers available on the web, however, I couldn't find one that would lock the screen. I wanted to create a simple Pomodoro timer that would lock the screen after a certain amount of time as just a sound notification wasn't enough to really stop me working. The Pomodoro technique is a time management method that uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks. This technique is used to improve focus and productivity.

Built With

Rust

(back to top)

Getting Started

Download Executable

The easiest way to use the Pomodoro timer is to download the executable from the releases page and run it on your machine. If you want to build the project yourself, follow the instructions below.

Prerequisites

Install Rust by following the instructions on the Rust website.

Installation

  1. Clone the repo

    git clone https://github.com/davidzanger/Locking-Pomodoro-Timer.git
    
  2. Build the project

    cargo build --release
    
  3. Use the executable which can be found in the target/release directory.

(back to top)

Usage

To use the Pomodoro timer, simply run the executable. On the first run, the program will create a .json file next to the executable which will store the settings for the timer. The settings can be changed by editing the .json file.

The default settings are as follows:

{
    // The duration of a single Pomodoro session in minutes.
    "durationPomodoro": 25,
    // The additional duration in minutes to be added to a Pomodoro session when it is over.
    "additionalDuration": 5,
    // The duration of a short break in minutes.
    "durationShortBreak": 5,
    // The duration of a long break in minutes.
    "durationLongBreak": 15,
    // Flag indicating whether to automatically start a break after a Pomodoro session ends.
    "autoStartBreak": true,
    // Flag indicating whether to automatically start a new Pomodoro session after a break ends.
    "autoStartPomodoro": true,
    // The interval in number of Pomodoro sessions after which a long break should be taken.
    "intervalLongBreak": 4,
    // The end event to be executed after a Pomodoro session ends.
    "endEventPomodoro": {
        "sound": {
            "filepathSound": ""
        }
    },
    // The end event to be executed after the additional Pomodoro after a Pomodoro session ends.
    "endEventAdditionalPomodoro": "lockScreen"
}

For the endEventPomodoro and endEventAdditionalPomodoro fields, the following options are available:

  • sound: Play a sound file. The path to the sound file must be provided in the filepathSound field. If the path is empty, the default sound will be played.
  • lockScreen: Lock the screen. This feature is currently only available on Windows.

For more details, please refer to the Documentation

(back to top)

Roadmap

  • Create a GUI for the timer.

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GPL-3.0 License. See LICENSE for more information.

(back to top)

Contact

Project Link: https://github.com/davidzanger/Locking-Pomodoro-Timer

(back to top)

Dependencies

~5–36MB
~546K SLoC