Thanks to visit codestin.com
Credit goes to github.com

Skip to content

a-sad-dan/bashodoro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bashodoro

A Bash-based implementation of the Pomodoro Technique, providing an efficient and configurable time management system within the terminal environment.

Overview

The Pomodoro Technique, pioneered by Francesco Cirillo in the late 1980s, is a structured time management methodology designed to enhance productivity by segmenting work into 25-minute focused intervals (Pomodoros), interspersed with 5-minute short breaks. After the completion of four consecutive Pomodoros, a longer break of 15–30 minutes is introduced to facilitate cognitive recovery.

Bashodoro automates this methodology through:

  • Programmatically timed work and break intervals.
  • Adaptive notification mechanisms to mitigate distractions.
  • Comprehensive session tracking with statistical insights.
  • Flexible configuration parameters to accommodate diverse workflows.
  • A streamlined command-line interface optimized for minimal resource utilization.

Features

⏳ Configurable Time Intervals

  • Define custom work, short break, and long break durations.
  • Default settings: Work = 25 min, Short Break = 5 min, Long Break = 15 min.

📊 Advanced Session Tracking

  • Logs completed work intervals.
  • Automatically schedules long breaks after every four Pomodoros.

🔔 Multi-Platform Notifications

  • Desktop notifications utilizing:
    • notify-send (Linux)
    • osascript (macOS)
    • -Command (Windows PowerShell)
  • Acoustic alerts leveraging:
    • afplay (macOS)
    • paplay (Linux)
    • aplay (Linux)

📟 Real-Time Progress Monitoring

  • Terminal-integrated countdown timer and progress bar.

⏸️ Pause, Resume, and Session Skipping

  • Pause/Resume: Press p to pause, r to resume.
  • Skip: Press s to advance to the next session.
  • Quit: Press q to terminate the script.

📈 Productivity Analytics

  • Comprehensive session logging and performance analysis.
  • Automatically generated productivity reports (daily/weekly).
  • Key Metrics Tracked:
    • Aggregate Pomodoro count
    • Total work duration (hours and minutes)
    • Time allocation for short and long breaks
    • Productivity streak analysis
    • Average session length
    • Frequency of skipped and paused sessions
    • Trends in daily and weekly productivity

⚙️ Customization via Configuration File

  • settings.conf allows fine-tuning of:
    • Notification preferences
    • Sound settings
    • Break intervals
    • Long break frequency
    • Work session durations

🌙 Optimized Terminal UI

  • Lightweight, distraction-free interface.

🆗️ Integrated Help Menu

  • Use -h or --help for contextual usage instructions.

Custom Content

Break sessions display random entries from:

  • ~/.bashodoro/data/jokes.txt
  • ~/.bashodoro/data/quotes.txt

To customize:

  1. Edit the files (one entry per line)
  2. For quotes: "Text" - Author
  3. For jokes: Simple one-liners

Files are auto-created on first run if missing.

Installation

  1. Clone the repository:

    git clone https://github.com/a-sad-dan/bashodoro.git
    cd bashodoro
  2. Run the installation script (requires root privileges):

    sudo ./install.sh
  3. Start Bashodoro:

    bashodoro
  4. To uninstall, use:

    sudo ./uninstall.sh

Usage

Once installed, you can run Bashodoro with:

bashodoro [OPTIONS]

Command-Line Options:

Option Description
-m, --manual Start without automatic session initiation.
-s, --stats Show detailed session statistics.
-c, --config Display current parameter settings.
-h, --help Show help menu with usage instructions.
-w [minutes] Set custom work session duration (in minutes).
-sb [minutes] Set custom short break duration (in minutes).
-lb [minutes] Set custom long break duration (in minutes).
-ws [count] Set number of work sessions before a long break.
Ctrl+C Quit the script (Linux/macOS).

Logs

Bashodoro maintains session logs for tracking your productivity.
Log files are stored per user at:

$HOME/.bashodoro/logs/bashodoro.log

To view the logs, use:

cat $HOME/.bashodoro/logs/bashodoro.log

To clear logs:

> $HOME/.bashodoro/logs/bashodoro.log

System Dependencies

  • notify-send (Linux), osascript (macOS), -Command (Windows PowerShell) for desktop notifications.
  • afplay (macOS), paplay (Linux), aplay (Linux) for acoustic alerts.
  • sleep or date for interval timing execution.

Project Structure

.
|-- README.md
|-- audio
|-- bashodoro.sh
|-- bin
|   |-- notify.sh
|   |-- session.sh
|   `-- timer.sh
|-- config
|   `-- settings.conf
|-- logo.png
|-- logo_dark.png
|-- logs
|   `-- bashodoro.log
|-- sounds
|   |-- jokingly.ogg
|   |-- jokingly.wav
|   |-- joyous.ogg
|   |-- joyous.wav
|   |-- light-hearted.ogg
|   |-- light-hearted.wav
|   |-- slick.ogg
|   `-- slick.wav
|-- tests
|   |-- test_notify.sh
|   `-- test_timer.sh
`-- uninstall.sh

Contributing

Contributions are encouraged and appreciated. To contribute:

  1. Fork the repository.
  2. Create a feature branch for your implementation.
  3. Develop and test modifications locally.
  4. Submit a pull request with a concise summary of changes.

For significant modifications, please initiate an issue discussion beforehand.


Bashodoro is a robust, extensible, and lightweight productivity tool designed for efficiency-focused terminal users. Stay productive and optimize your workflow!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages