source: flowtimer/README.md@ f2a2a82

guix
Last change on this file since f2a2a82 was 89b0616, checked in by Enrico Schwass <ennoausberlin@…>, 9 months ago

README updated

  • Property mode set to 100644
File size: 4.8 KB
Line 
1# Flowtimer
2
3Flowtimer is a customizable Pomodoro timer designed to enhance productivity by breaking work into intervals, typically 25 minutes long, separated by short breaks. It allows you to configure your work and break sessions through a JSON file and includes predefined phases of activity to help you stay focused.
4
5## Features
6
7- **Configurable Sessions:** Define your own work, short break, and long break durations through a JSON file.
8- **Predefined Phases:** Start with standard Pomodoro phases or create your own.
9- **Progress Tracking:** Visual feedback on time remaining for each phase.
10- **Customizable Cycle:** Choose how many work sessions you want before taking a longer break.
11
12## Getting Started
13
14### Prerequisites
15
16Ensure you have the following installed on your machine:
17
18- Python 3.x
19
20### Test without install
21 ```bash
22 git clone --branch guix https://gitlab.kid.local:/legacy/flowtimer.git
23 cd flowtimer
24
25 guix shell python python:tk python-pillow --
26 export PYTHONPATH=$PYTHONPATH:./
27 python3 flowtimer/main.py
28 ```
29
30### Installation
31
321. Clone the repository:
33 ```bash
34 git clone --branch guix https://gitlab.kid.local:/legacy/flowtimer.git
35 cd flowtimer
36 ```
372. Install the app and required dependencies
38 ```bash
39 pip3 install .
40
41 ```
42### Usage
43
441. **Create or Modify Configuration:**
45
46 Flowtimer reads its configuration from a JSON file.
47
48 Example `default.json`:
49
50```json
51{
52 "title": "Default",
53 "blocks": [
54 {
55 "type": "Phase",
56 "title": "MorningHuddle",
57 "initial_ticks": 900
58 },
59 {
60 "type": "Sequence",
61 "title": "AM",
62 "sequence": [
63 {
64 "title": "Tasking",
65 "initial_ticks": 120
66 },
67 {
68 "title": "Working",
69 "initial_ticks": 5400
70 },
71 {
72 "title": "Syncing",
73 "initial_ticks": 300
74 },
75 {
76 "title": "Break",
77 "initial_ticks": 600
78 }
79 ],
80 "initial_repetitions": 2
81 },
82 {
83 "type": "Phase",
84 "title": "Lunch",
85 "initial_ticks": 2700
86 },
87 {
88 "type": "Sequence",
89 "title": "PM",
90 "sequence": [
91 {
92 "title": "Tasking",
93 "initial_ticks": 120
94 },
95 {
96 "title": "Working",
97 "initial_ticks": 5400
98 },
99 {
100 "title": "Syncing",
101 "initial_ticks": 600
102 },
103 {
104 "title": "Break",
105 "initial_ticks": 600
106 }
107 ],
108 "initial_repetitions": 2
109 }
110 ]
111}
112```
113
114This configuration represents a standard schedule named 'default':
115
116It starts with a 15 min (900s) morning huddle, followed by a sequence 'AM' consisting of 'Tasking', 'Working', 'Syncing', that is repeated twice.
117
118After a 45 min lunch break, another sequence 'PM' follows, that is repeated twice as well.
119
120Color schemes can be configured as follows. Use the phase title as title for each color scheme to match them.
121
122
123```json
124{
125 "color_schemes": [
126 {
127 "title": "Completed",
128 "widget": "red",
129 "sequence_label": "red",
130 "center_frame": "red"
131 },
132 {
133 "title": "Huddle",
134 "widget": "blue",
135 "sequence_label": "red",
136 "center_frame": "yellow"
137 },
138 {
139 "title": "Tasking",
140 "widget": "red",
141 "sequence_label": "yellow",
142 "center_frame": "blue"
143 },
144 {
145 "title": "Work",
146 "widget": "yellow",
147 "sequence_label": "blue",
148 "center_frame": "red"
149 },
150 {
151 "title": "Break",
152 "widget": "green",
153 "sequence_label": "brown",
154 "center_frame": "white"
155 },
156 {
157 "title": "Start",
158 "widget": "white",
159 "sequence_label": "green",
160 "center_frame": "brown"
161 },
162 {
163 "title": "Default",
164 "widget": "pink",
165 "sequence_label": "orange",
166 "center_frame": "violet"
167 }
168 ]
169}
170```
171
1722. **Run Flowtimer:**
173 ```bash
174 python3 flowtimer.py --start --config /path/to/config_file.json
175 ```
176
177 This will start the timer based on the phases and durations specified in the JSON file.
178
1793. **Adjusting Configuration:**
180 To change the timings or the order of phases, simply edit the JSON file and rerun the script.
181
182
183### Command-line Options
184
185- `--config <file>`: Specify a custom JSON configuration file.
186- `--colors`: Specify a JSON color scheme configuration file.
187- `--start`: Autostart the timer with the current configuration.
188### Example
189
190```bash
191python3 flowtimer.py --config myschedule.json --colors mycolorscheme.json
192```
193
194This command will start Flowtimer with a custom configuration provided in `myschedule.json` using color scheme from mycolorscheme.json.
195
196## Contributing
197
198Contributions are welcome! Please submit a pull request or open an issue to discuss any changes or improvements.
199
200## License
201
202Flowtimer is open-source software licensed under the [MIT License](LICENSE).
203
204## Acknowledgments
205
206Special thanks to the Pomodoro Technique® for inspiring this tool.
Note: See TracBrowser for help on using the repository browser.