{"id":26078112,"url":"https://github.com/hitblast/cutler","last_synced_at":"2025-03-09T03:49:47.967Z","repository":{"id":281366910,"uuid":"945059592","full_name":"hitblast/cutler","owner":"hitblast","description":"Declarative macOS defaults management at your fingertips, with speed.","archived":false,"fork":false,"pushed_at":"2025-03-08T15:54:49.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-08T16:24:33.855Z","etag":null,"topics":["command-line-tools","declarative-config","macos","macos-cli","rust","rust-cli","rust-cli-apps"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/cutler","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/hitblast.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":"2025-03-08T15:08:49.000Z","updated_at":"2025-03-08T15:54:52.000Z","dependencies_parsed_at":"2025-03-08T16:24:51.923Z","dependency_job_id":"5964d915-49b6-4085-b42a-a88c94b7e9f6","html_url":"https://github.com/hitblast/cutler","commit_stats":null,"previous_names":["hitblast/cutler"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hitblast%2Fcutler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hitblast%2Fcutler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hitblast%2Fcutler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hitblast%2Fcutler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hitblast","download_url":"https://codeload.github.com/hitblast/cutler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242640911,"owners_count":20162054,"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":["command-line-tools","declarative-config","macos","macos-cli","rust","rust-cli","rust-cli-apps"],"created_at":"2025-03-09T03:49:47.521Z","updated_at":"2025-03-09T03:49:47.954Z","avatar_url":"https://github.com/hitblast.png","language":"Rust","readme":"\u003cimg src=\"https://github.com/hitblast/cutler/blob/v0.1.0/assets/logo.png\" width=\"200px\" align=\"right\"\u003e\n\n# \u003cimg src=\"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/rust/rust.png\" width=\"40px\"\u003e cutler\n\n[![Release Builds](https://github.com/hitblast/cutler/actions/workflows/release.yml/badge.svg)](https://github.com/hitblast/cutler/actions/workflows/release.yml)\n\nDeclarative macOS defaults management at your fingertips, with speed.\n\n\u003e [!WARNING]\n\u003e This project is still under active development. Some of the\n\u003e written functionality here might be missing. Please wait for the initial\n\u003e release.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Overview\n\ncutler is a command-line tool that allows you to manage macOS defaults with a\nsimple TOML file. It is made using Rust to facilitate tiny binary size for its\nfunctionality, and obviously, speed.\n\nMany of us tend to use the `defaults` command-line tool to\ndeclare specific settings on our Macs. However, this boils down to unnecessary\nscripting and might also increase the chances of accidentally harming your\ndefault configurations.\n\n## Installation\n\n- Using `cargo`:\n\n```bash\ncargo install cutler\n```\n\n- Using `mise`:\n\n```bash\nmise use -g cargo\n```\n\n- Using Homebrew:\n\n```bash\n# still a work-in-progress\n```\n\n## Usage\n\nThe command-line interface respects `$XDG_CONFIG_HOME` and depending on your\nmacOS settings, `cutler` will read the `config.toml` for your written defaults\nfrom this path:\n\n- `$XDG_CONFIG_HOME/cutler/config.toml` or,\n- `~/.config/cutler/config.toml`\n\nThe overall structure for cutler's configuration should be as follows:\n\n```toml\n[dock]\ntilesize = 46\n\n[menuextra.clock]\nFlashDateSeparators = true\n```\n\nHere, the following TOML code translates to the following command being executed:\n\n```bash\ndefaults write com.apple.dock \"tilesize\" -int \"46\"\ndefaults write com.apple.menuextra.clock \"FlashDateSeparators\"\n```\n\nThe interface is also type-safe and uses generic TOML parsing to ensure that the\ntypes are designated properly. So, to apply this configuration, simply run:\n\n```bash\ncutler apply\n```\n\nPlease note that `cutler apply` also generates a default configuration file for\nyou to get started with if no file is found in the designated directories.\nSImply accept the prompt and you're good to go.\n\nNow, to unapply the configuration, simply run:\n\n```bash\ncutler unapply\n```\n\nIf you'd like to remove the file entirely, you can run the following command:\n(generally not recommended since currently applied settings could become untrackable)\n\n```bash\ncutler delete\n```\n\n## Contributing\n\nThis is one of my hobby projects that I've made to solve one of my most common\nproblems - repeatedly applying the same settings on my MacBook. So, pull\nrequests are always welcome! Feel free to submit your changes or improvements by\n[creating a pull request]() or by [submitting an issue]().\n\n## License\n\nThis project has been licensed under the [MIT License](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhitblast%2Fcutler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhitblast%2Fcutler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhitblast%2Fcutler/lists"}