{"id":15717223,"url":"https://github.com/louis-langholtz/time-machine-helper","last_synced_at":"2025-10-28T12:30:31.263Z","repository":{"id":206270625,"uuid":"716239971","full_name":"louis-langholtz/time-machine-helper","owner":"louis-langholtz","description":"A Qt based GUI application for helping with macOS Time Machine ","archived":false,"fork":false,"pushed_at":"2024-01-27T05:30:21.000Z","size":6088,"stargazers_count":3,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-20T19:51:55.548Z","etag":null,"topics":["backup-tool","coroutines","cpp20","gui-application","macos","macos-application","macosx","qt6","time-machine","timemachine"],"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/louis-langholtz.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-08T18:12:58.000Z","updated_at":"2024-12-07T22:42:36.000Z","dependencies_parsed_at":"2024-10-24T13:42:24.813Z","dependency_job_id":"7196fd25-75f2-4082-a4fa-922a94c41e25","html_url":"https://github.com/louis-langholtz/time-machine-helper","commit_stats":{"total_commits":141,"total_committers":1,"mean_commits":141.0,"dds":0.0,"last_synced_commit":"99646a4eb870f81086cbea7c8f317ddff0e0200a"},"previous_names":["louis-langholtz/time-machine-helper"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-langholtz%2Ftime-machine-helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-langholtz%2Ftime-machine-helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-langholtz%2Ftime-machine-helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/louis-langholtz%2Ftime-machine-helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/louis-langholtz","download_url":"https://codeload.github.com/louis-langholtz/time-machine-helper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238649953,"owners_count":19507720,"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":["backup-tool","coroutines","cpp20","gui-application","macos","macos-application","macosx","qt6","time-machine","timemachine"],"created_at":"2024-10-03T21:49:05.890Z","updated_at":"2025-10-28T12:30:30.692Z","avatar_url":"https://github.com/louis-langholtz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Time Machine Helper Logo](project-image.jpg)\n\n# Time Machine Helper\n\nA Qt based GUI application for helping with macOS Time Machine.\nThis is a macOS specific application.\n\n## Features\n\n![Time Machine Helper App](screenshot-app.png)\n\n- [x] Monitoring of destinations configured for use with Time Machine.\n- [x] Monitoring of backup status showing backup phase, percentage completion, and more.\n- [x] Tabularization of destinations, source machines, source volumes, and backups.\n- [x] Checkbox selectivity of backups to show by destinations, machines, or volumes.\n- [x] Configurability and persistence of settings.\n- [x] Deletion of backups, an administrative action.\n- [x] Verification of backups.\n- [x] \"Uniquely sizing\" backups, their volumes, or their volumes' contained paths.\n- [x] Restoring from backups, their volumes, or their volumes' contained paths.\n\n## Prerequisites\n\nThis project minimally needs the following:\n\n- [macOS Sonoma (version 14)](https://www.apple.com/macos/sonoma/) (or newer).\n- [C++20](https://en.wikipedia.org/wiki/C++20) (or higher).\n- [coroutine library support](https://en.cppreference.com/w/cpp/coroutine).\n\n## Please Note\n\nAs of November 8, 2023, GitHub doesn't appear to have a runner available for macos-14 yet.\nSo, this project's continuous integration setup is disabled for now and shows up as failed.\n\n## Configure\n\nIf Qt is not in a standard, system installed location, specify where to find Qt with the following setting in front of the usual CMake configuration arguments, for example:\n\n```sh\nCMAKE_PREFIX_PATH=./Qt/6.6.0/macos/lib/cmake\n```\n\nThe usual CMake configuration arguments, are:\n\n```sh\ncmake -S time-machine-helper -B time-machine-helper-build\n```\n\n## Build\n\n```sh\ncmake --build time-machine-helper-build --config Release\n```\n\n## Code Check\n\nOptionally, if you want to check the code with its clang-tidy configuration:\n\n```\nrun-clang-tidy -p time-machine-helper-build time-machine-helper\n```\n\n## System Settings\n\nTo use the helper application, it needs to have access to the disks used by Time Machine destinations.\nThis can be enabled by giving Time Machine Helper \"full disk access\".\nTo do so, go into **System Settings \u003e Privacy \u0026 Security \u003e Full Disk Access** and make sure the toggle slider is in the allow position.\n\n## Administrative Setup\n\nTo use administrative commands of the helper, like to delete backups, the user must be allowed to administer the computer.\nMore specifically, the user needs to be able to use the `sudo` command, at least to run the `tmutil` program.\nIf the user is not setup in the configuration of `sudo` (in its `sudo.conf` file for example) to run `tmutil` as root without a password, then the helper will have the user decide whether to enter their password through an external application (via `sudo`'s `SUDO_ASKPASS` mechanism), or to be prompted by the helper for their password.\n\nFor more info on `sudo`, see:\n\n```sh\nman 8 sudo\n```\n\n## Imagery Credits\n\nTime machine background by [Amy](https://pixabay.com/users/prettysleepy1-2855492/?utm_source=link-attribution\u0026utm_medium=referral\u0026utm_campaign=image\u0026utm_content=3160715) from [Pixabay](https://pixabay.com//?utm_source=link-attribution\u0026utm_medium=referral\u0026utm_campaign=image\u0026utm_content=3160715). Gnome foreground by [M. Harris](https://pixabay.com/users/wonderwoman627-1737396/?utm_source=link-attribution\u0026utm_medium=referral\u0026utm_campaign=image\u0026utm_content=8337253) from [Pixabay](https://pixabay.com//?utm_source=link-attribution\u0026utm_medium=referral\u0026utm_campaign=image\u0026utm_content=8337253). Composition by Louis Langholtz.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flouis-langholtz%2Ftime-machine-helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flouis-langholtz%2Ftime-machine-helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flouis-langholtz%2Ftime-machine-helper/lists"}