Skip to content

A command line interface for the Pomodoro technique built in Rust.

Notifications You must be signed in to change notification settings

ben-toker/flowst

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

          ,--,                                        ___     
  .--., ,--.'|                                      ,--.'|_   
,--.'  \|  | :     ,---.           .---.            |  | :,'  
|  | /\/:  : '    '   ,'\         /. ./|  .--.--.   :  : ' :  
:  : :  |  ' |   /   /   |     .-'-. ' | /  /    '.;__,'  /   
:  | |-,'  | |  .   ; ,. :    /___/ \: ||  :  /`./|  |   |    
|  : :/||  | :  '   | |: : .-'.. '   ' .|  :  ;_  :__,'| :    
|  |  .''  : |__'   | .; :/___/ \:     ' \  \    `. '  : |__  
'  : '  |  | '.'|   :    |.   \  ' .\     `----.   \|  | '.'| 
|  | |  ;  :    ;\   \  /  \   \   ' \ | /  /`--'  /;  :    ; 
|  : \  |  ,   /  `----'    \   \  |--" '--'.     / |  ,   /  
|  |,'   ---`-'              \   \ |      `--'---'   ---`-'   
`--'                          '---"                           

What is the Pomodoro Technique?

Essentially, the Pomodoro Technique is a tool for focus; you set a timer for the period for which you intend to work followed by a shorter timer for a much needed rest period. You repeat this timer duo until the work is done! Typically, this is done in 25 minute (work) and 5 minute (rest) intervals, but can be modified to any ratio of intervals you prefer (personally I tend to go for the 50/10 split)!

Flowst

Flowst is a command line interface tool for the Pomodoro Technique, built in Rust. It provides a user-friendly text-based interface for managing work and rest intervals, allowing you to stay focused and productive. Using Flowst, you can adjust custom intervals for work and rest and repeat them as many times as you want, from the convenience of the command line!

image

Features

  • Timer Management: Start, pause, and reset work and rest intervals
  • Interface: A text-based interface that displays the timer, configurations, welcome logo, and controls.
  • Configuration Handling: Save, load, and reset timer configurations to suit your preferences.
  • Scrollable Configurations: Easily navigate through different timer configurations.
  • Keyboard Controls: Intuitive keybindings for controlling the timer and navigating the UI.
  • Notifications: A bell sound plays after each interval, ensuring that you stay on task.

Installation

For Mac users:

brew tap ben-toker/flowst
brew install flowst

In order to use the most recent version of the project, cloning the repo and re-building the app would be necessary.

For Windows users: I currently don't have a package manager set up for windows installation, but as long as you clone the repo and use cargo to build an executable, it works well (according to my Windows-user friends)!

The App

You must use cargo run app or flowst app in order to take full advantage of Flowst's functionality. The bell notification cannot be heard unless the app is open. If you need to use the terminal, simply open up a new terminal tab while flowst is running in the background. Since a background daemon is out of the scope for this project, this is the easiest option.

Usage

# View CLAP interface

flowst

# Example command to start a 25 : 5 timer (standard)

flowst start

# Custom time:

flowst start -w 40 -r 20

# Reset configuration file:

flowst reset

# Run the app:

flowst app


Issues

    None currently! :)

Directives/ code entry point

The main project (minimum viable product) is done, so the following are potential add-ons that would improve the experience!

  • Include cassowary crate to ensure scaling constraints
  • Maybe include some music feature to queue YouTube videos or some built-in sound for working. There's actually a function made for this already (lib.rs/get_sound), needs to be implemented in the GUI.
  • Maybe a work log?

About

A command line interface for the Pomodoro technique built in Rust.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages