{"id":13805127,"url":"https://github.com/ShadoySV/work-break","last_synced_at":"2025-05-13T18:33:19.218Z","repository":{"id":64916002,"uuid":"579408939","full_name":"ShadoySV/work-break","owner":"ShadoySV","description":"Work-break balancer for Windows / MacOS / Linux desktops","archived":false,"fork":false,"pushed_at":"2025-04-27T16:12:39.000Z","size":1765,"stargazers_count":15,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-27T17:23:02.908Z","etag":null,"topics":["app","cross-platform","productivity","time-tracker"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ShadoySV.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-17T15:48:32.000Z","updated_at":"2025-04-27T16:12:38.000Z","dependencies_parsed_at":"2022-12-18T11:46:40.636Z","dependency_job_id":"a65b05d1-3a0d-4800-8d56-6107fcb40081","html_url":"https://github.com/ShadoySV/work-break","commit_stats":{"total_commits":4,"total_committers":1,"mean_commits":4.0,"dds":0.0,"last_synced_commit":"3e13e94ebf01f6fa3e38c9210aa3946efd17c607"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShadoySV%2Fwork-break","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShadoySV%2Fwork-break/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShadoySV%2Fwork-break/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShadoySV%2Fwork-break/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShadoySV","download_url":"https://codeload.github.com/ShadoySV/work-break/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254003503,"owners_count":21997897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","cross-platform","productivity","time-tracker"],"created_at":"2024-08-04T01:00:57.744Z","updated_at":"2025-05-13T18:33:19.198Z","avatar_url":"https://github.com/ShadoySV.png","language":"Rust","funding_links":[],"categories":["Applications"],"sub_categories":["Productivity"],"readme":"![work-break](screenshot.png)\n\n## Introduction\nThis balancer can track your work time and suggest resting time. It uses this [graph](https://www.desmos.com/calculator/duqezlkow8) by default,\nwhere the horizontal axis is for work time, and the vertical axis is for resting time. It passes through the [Pomodoro Technique](https://en.wikipedia.org/wiki/Pomodoro_Technique) (25/5) and the [52/17 rule](https://en.wikipedia.org/wiki/52/17_rule). The formula can be adjusted (see the configuration section below).\n\nThe more you work, the more rest you need per work minute. Sometimes, you have to start working without waiting until you have rested suggested time. In this case, this balancer accumulates strain by subtracting the actual rest time from the needed rest time and converting the result into work time back. It adds up to the following work on the next break.\n\nThis balancer sends you notifications on the following events:\n* Work lasted for 25 minutes (can be changed)\n* It lasted for 52 minutes (can be changed)\n* It lasted for the daily work time limit if it is configured\n* Break ended\n\nThe notification contains the current phase, strain and today work time, needed break, its end if it starts, today break time.\n\n## How to install\n\n\u003ca href=\"https://www.softpedia.com/get/Others/Home-Education/work-break.shtml\"\u003e\u003cimg style=\"float: right;\" src=\"https://www.softpedia.com/_img/softpedia_100_free.png?2023_1\" alt=\"\" /\u003e\u003c/a\u003e\n\n### Compatibility\n\nWindows 8+ (may require [MS Visual C++ 2015](https://www.microsoft.com/en-us/download/details.aspx?id=52685), tested on Windows 10/11)\n\nMacOS 10+ (tested on MacOS 11.7)\n\nLinux/BSD: should work with many distributions (tested on Arch Linux)\n\n### Download a binary\n\nDownload a suitable binary from [releases](https://github.com/ShadoySV/work-break/releases) page.\n\n### Arch Linux based distributions\n\nThe app can be installed using the PKGBUILD [work-break](https://aur.archlinux.org/packages/work-break), available on the [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository). This can be built and installed using an AUR helper or [by hand in the usual way](https://wiki.archlinux.org/title/Arch_User_Repository#Installing_and_upgrading_packages).\n\n### With Cargo\n\nYou will need the Rust programming language (v1.59.0+) and its cargo package manager installed on your system. See the official documentation [here](https://www.rust-lang.org/tools/install).\n\nRun this command to install the app (make sure that the cargo bin directory is in $PATH):\n```\ncargo install work-break\n```\n\nConfigure a shortcut key or create a desktop icon to switch between work and rest time:\n```\nwork-break\n```\n\nConfigure the following command to launch the balancer on startup to get notifications (optional, but recommended):\n```\nwork-break autorun\n```\n\nConfigure a shortcut key or create a desktop icon to notify about the current status (optional):\n```\nwork-break notify\n```\n\nTo print the current status in CLI, you can use this (MacOS / Linux):\n```\nwork-break status\n```\n\n## Configuration\nAfter the first app launch, you can change the app's configuration by editing the following configuration file:\n\n##### Windows\n```\n%APPDATA%\\work-break\\config\\default-config.toml\n```\n\n##### MacOS\n```\n~/Library/Application\\ Support/rs.work-break/default-config.toml\n```\n##### Linux\n```\n~/.config/work-break/default-config.toml\n```\nor you can delete the file to get the defaults:\n\n##### Defaults\n```\ncoefficient_a = 0.00147884224225867\ncoefficient_b = 1.67098454496329\ncoefficient_c = 0\ncoefficient_d = 0\n\ndaily_work_time_limit = 0\nwork_days_start_at = 0\n\nphase1_name = \"Pomodoro\"\nphase1_ends_at = 25\nphase2_name = \"Efficiency\"\nphase2_ends_at = 52\nphase3_name = \"Injury\"\n\n```\nThe **coefficients** are used for the formula: **break = a * (work ^ (b + d * today_work)) + c**. Variables **work**, **today_work** and **break** represent in seconds. Consider setting **coefficient_d** to `0.00001528` to see how today work time can increase resting time.\n\n**daily_work_time_limit** represents in minutes, sends you notification when today work time reaches the limit, zero turns the notification off.\n\n**work_days_start_at** defines an hour when work days start at and count resets (from 0 to 23).\n\n**phase1_ends_at** and **phase2_ends_at** define current strain's thresholds to send you notifications.\n\n**phase1_name**, **phase2_name**, and **phase3_name** define phases' names to print in notifications.\n\nRestart your system or ask the app to apply the changed configuration:\n\n```\nwork-break reload\n```\n\n## Troubleshooting\n\n##### Windows 11: App does not run and its notifications do not appear. \"Do not disturb\" mode is off.\n\nLook at [how to restore PowerShell notifications](https://answers.microsoft.com/en-us/windows/forum/all/powershell-toast-notifcations/a8a83b7a-0a4c-4f3d-b541-7e11403955fb)\n\n## Similar projects\n\n[Bartib](https://github.com/nikolassv/bartib) is a simple time tracker for the command line. It saves a log of all tracked activities as a plaintext file and allows you to create flexible reports.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FShadoySV%2Fwork-break","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FShadoySV%2Fwork-break","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FShadoySV%2Fwork-break/lists"}