{"id":15048585,"url":"https://github.com/aaleino/todoman","last_synced_at":"2025-04-10T01:30:41.690Z","repository":{"id":52269826,"uuid":"340703768","full_name":"aaleino/todoman","owner":"aaleino","description":"A terminal program that helps to create detailed to-do lists and keeps track of time","archived":false,"fork":false,"pushed_at":"2022-11-01T09:44:12.000Z","size":727,"stargazers_count":27,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-24T03:11:24.580Z","etag":null,"topics":["md","productivity","terminal-based","timetracking","todo"],"latest_commit_sha":null,"homepage":"","language":"C++","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/aaleino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-20T16:48:09.000Z","updated_at":"2024-11-26T05:12:32.000Z","dependencies_parsed_at":"2022-09-10T23:41:16.742Z","dependency_job_id":null,"html_url":"https://github.com/aaleino/todoman","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaleino%2Ftodoman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaleino%2Ftodoman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaleino%2Ftodoman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaleino%2Ftodoman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaleino","download_url":"https://codeload.github.com/aaleino/todoman/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248140231,"owners_count":21054266,"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":["md","productivity","terminal-based","timetracking","todo"],"created_at":"2024-09-24T21:14:15.141Z","updated_at":"2025-04-10T01:30:41.668Z","avatar_url":"https://github.com/aaleino.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Todo manager\n\nThis program makes todo lists easily readable and editable and helps to divide tasks into subtasks. It also tracks the time spent on each task and can be used to write small notes. This is an experimental hobby project that is under construction.\n\nDemo\n====\n\nFor example:\n\n![demo](https://github.com/aaleino/todoman/blob/main/todoman.gif \"Todo manager demo\")\n\nproduces\n\n     Work\n          - [x] Write article\n          - [x] Write software\n     - [ ] Hobby\n\n\nExplanation: \"Work\" was converted to a project that contains subitems. \"Hobby\" was not and can be tagged completed/uncompleted. \"Work\" was completed when all the subtasks were completed. Subprojects can be started within projects, i. e. one can always convert a to-do item to a project.\n\nThe bars keep track of the total time towards a goal (e. g. daily target) and suggest when to take a break. After quitting the program, the user can generate a time usage report on the tasks on an all-time or per session basis. This information is stored in the to-do file as comments and resets when requested. Example report:\n\n\t=============== Session summary ================\n\tSession report from 2021-12-18 15:27:48 to 2021-12-18 15:29:57.\n\tTime spent on tasks during session: 46s\n\tWork:  38s 82.61%\n\tHobby:  8s 17.39%\n\t================================================\n\t--------------- Session summary for subtask: Work------------------\n\tTime spent on tasks during session: 38s\n\tWrite software:  21s 55.26%\n\tWrite article:  17s 44.74%\n\t-------------------------------------------------------------------\n\nReading long to-do lists can be daunting. The file may grow long but should be relatively easy to read with the program if enough projects (subtasks) are used.\n\nMy vision is the program will allow users to create very detailed to-do lists. It should also help to organize large, more abstract tasks. A detailed to-do list could help in remembering the state the project was left last time. Time tracking could help  identify bottlenecks in the daily routine and optimize time usage.\n\nSee the changelog at the end of this file for a list of recent changes.\n\nThe timer\n=========\n\nThe pause timer is automatically on.\n\nOnce you start working on any item, the program will count the time towards a goal that can be set at command line (see *Usage*).\nThe progress is shown in percentages:  (Current duration) / (Target time) * 100%.\n\nThe total time spent on each task is stored as comments. This data can be viewed using \"-s 0\" or \"-s 1\" options. \n\nIf you change the task before the timer has been completed, the work timer will not reset. It will reset **only when** you press \"stop working\".\nIf task time tracking is used, the time worked so far will be deposited to the previous task.\n\nThe 'daily accumulation' counter increases **only when** working on a task. It will keep on increasing also after task progress reaches 100%.\n\nThe log\n=======\n\nA log is maintained in \"todo_log.txt\". The log functionality is still under development.\n\nCaveats\n=======\n\n**Do not open any other files with the program than todo lists made with the program.**\nThe files can be reorganized using any text editor, but the editor should use whitespace instead of tabs for indentation.\nLinux command 'expand' works for getting rid of tabs.\n\nThe code was written in a hurry. **Please do not use the software for serious time-tracking yet.** \n\nI am currently \"beta testing\" the code and have found a couple of stability issues. I will try to fix them asap.\n\nInstallation\n============\n\n\nAssuming recent enough CMake is installed:\n\n\tgit clone https://github.com/aaleino/todoman\n\tcmake .\n\tcmake --build .\n\n\nTarget environment\n==================\n\nTested in WSL+Windows terminal, Ubuntu+default terminal \n\nUsage\n=====\n```\nUsage: ./todoman \u003cfilename.md\u003e \u003coptions\u003e\nOptions:\n-t \u003ctasktime\u003e \u003cpausetime\u003e \u003cworktime\u003e\n   tasktime: time in minutes to complete a task\n   pausetime: time in minutes to pause between tasks\n   worktime: time in hours to work on a task\n   These options are automatically stored into the metadata of the file.\n-v print version\n-h print help\n-r reset session\n-e erase metadata (erases all timer information from the file and quits. Does a full timer/setting reset.)\n-d disable metadata (disables storing timer information to the file. Erases existing timer information from the file.)\n-s \u003coption\u003e\n   generate a time usage report from the file\n\n   option: set to \"1\" for session statistics, \"0\" for all time statistics\n```\n\nMetadata contains information on how much time has been spent on a task and other state varibles. \nIt will be stored into the file enclosed between '\u003c!-- ^ ' and ' ^--!\u003e'.\n\nExample:\n\n\t./todoman todo.md\n\nOpen todo.md for editing, use default intervals (40 min work 5 min pause)\n\nUse up, down, right, left, enter, pgup and pgdown in the menu to navigate. \nUse 'space' to move note/task, 'insert' to create one between others and 'e' to edit one. \n\n\t./todoman todo.md -t 40 10\n\nOpen todo.md for editing, use 40 minute interval for work, 10 minute interval for pause.\nThese settings will be stored in the file by default. This command is used for changing the intervals. \n\n\t./todoman todo.md -t 40 10 7.25\n\nAs above, but set total working time goal as 7.25h\n\n\t./todoman todo.md -r\n\nRestart working time.\n\n\t./todoman todo.md -s 1\n\nGenerate report on the time spent on each task during the current session (use -s 0 for a report about all sessions).\n\n\nCredits\n=======\n\n(C) Aleksi Leino 2021\n\nUses FTXUI by Arthur Sonzogni\nhttps://github.com/ArthurSonzogni/FTXUI\n(I have forked my own version that reduces blinking in windows terminal)\n\nChangelog\n=========\n\n18.12.2021:\n\nReport will now include starting and ending dates. Bug fixes.\n\n12.12.2021:\n\nMajor changes related to time tracking. The program now allows tracking time and storing settings in the edited file. Beware of bugs!\n\n11.12.2021:\n\nSupport for space and 'e' -key. Pressing space one time will highlight one task/note for movement. The second press will move the note below the current highlight location. Pressing 'e' allows editing the task/note.\n\n5.12.2021:\n\nSupport for insert key. Pressing insert in the list will move the highlight so that it is easy to add tasks or notes between others. \n\n17.10.2021:\n\nThe program can now also be used to write small notes. In addition, support for PgUp and PgDown has been added, which makes navigation slightly easier.\n\n![demo](https://github.com/aaleino/todoman/blob/main/feature_notes.gif \"Note demo\")\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaleino%2Ftodoman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaleino%2Ftodoman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaleino%2Ftodoman/lists"}