Skip to content

shiyasmohd/focuz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 Focuz

Lightweight Beautiful Terminal Pomodoro Timer

Crates.io Crates.io License Contributors


Screenshot

🛠️ Prerequisites

📦 Installation

cargo install focuz

🚀 Usage

# Run a timer for specific duration
focuz <duration>

Examples

focuz 10s    # 10 seconds timer
focuz 5m     # 5 minutes timer  
focuz 2h     # 2 hours timer
focuz 90     # 90 seconds (no suffix defaults to seconds)

Time Format

  • s or no suffix - seconds (e.g., 30s or 30)
  • m - minutes (e.g., 5m)
  • h - hours (e.g., 2h)

⌨️ Keyboard Shortcuts

Key Action
q or Esc Quit the timer
Ctrl+C Force quit

🔊 Sound Notifications

  • Start Sound - Plays when timer begins
  • End Sound - Plays when timer completes

🏗️ Building from Source

# Clone the repository
git clone https://github.com/shiyasmohd/focuz.git
cd focuz

# Build the project
cargo build --release

# Run directly
cargo run -- 5m

🧪 Running Tests

# Run all tests
cargo test

# Run with output
cargo test -- --nocapture

📁 Project Structure

focuz/
├── src/
│   ├── main.rs           # Entry point
│   ├── cli/              # Command-line interface
│   │   ├── mod.rs
│   │   └── cli.rs        # CLI parsing and duration handling
│   └── timer/            # Timer functionality
│       ├── mod.rs
│       ├── timer.rs      # Core timer logic
│       ├── display.rs    # ASCII art display
│       └── sound.rs      # Audio notifications
├── sounds/               # Audio files
│   ├── start.wav
│   └── end.mp3
├── Cargo.toml
└── README.md

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Made with ❤️ in Rust 🦀

About

light-weight beautiful terminal pomodoro timer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages