{"id":18643366,"url":"https://github.com/vorpalblade/chezmoi_modify_manager","last_synced_at":"2025-04-05T01:08:23.332Z","repository":{"id":39619566,"uuid":"497592424","full_name":"VorpalBlade/chezmoi_modify_manager","owner":"VorpalBlade","description":"Tools for chezmoi to handle mixed settings and state","archived":false,"fork":false,"pushed_at":"2025-04-04T21:24:25.000Z","size":1209,"stargazers_count":52,"open_issues_count":9,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-04T22:27:25.334Z","etag":null,"topics":["chezmoi","chezmoi-addon","chezmoi-template","configuration","dotfiles","linux"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VorpalBlade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-05-29T13:02:26.000Z","updated_at":"2025-04-04T21:24:21.000Z","dependencies_parsed_at":"2024-01-23T22:27:27.398Z","dependency_job_id":"cfb74700-49c8-48a7-9994-9b825caa8ce2","html_url":"https://github.com/VorpalBlade/chezmoi_modify_manager","commit_stats":{"total_commits":479,"total_committers":5,"mean_commits":95.8,"dds":"0.17327766179540705","last_synced_commit":"bbe59b3f2f415eb0c01232cb18c824b51e67fb26"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VorpalBlade%2Fchezmoi_modify_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VorpalBlade%2Fchezmoi_modify_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VorpalBlade%2Fchezmoi_modify_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VorpalBlade%2Fchezmoi_modify_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VorpalBlade","download_url":"https://codeload.github.com/VorpalBlade/chezmoi_modify_manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271532,"owners_count":20911587,"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":["chezmoi","chezmoi-addon","chezmoi-template","configuration","dotfiles","linux"],"created_at":"2024-11-07T06:06:35.978Z","updated_at":"2025-04-05T01:08:23.304Z","avatar_url":"https://github.com/VorpalBlade.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Modify script helper addon for chezmoi\n\n[ [User Manual] ] [ [lib.rs] ] [ [crates.io] ] [ [AUR] ]\n\n\n## News\n\n* If you are upgrading across major releases see the [migration guides]\n\n---\n\nAddon for [chezmoi](https://www.chezmoi.io/) that deals with settings files that\ncontain a mix of settings and state. So far handling INI-style files are\nsupported.\n\nA typical example of this is KDE settings files. These contain (apart from\nsettings) state like recently opened files and positions of windows and dialog\nboxes. Other programs (such as PrusaSlicer) also do the same thing.\n\nThe program in this repository allows you to ignore certain sections of those\nINI files when managing the configuration files with chezmoi.\n\n## Documentation\n\nSee the [user manual] for the full documentation on how to use\n`chezmoi_modify_manager`.\n\n## Supported features\n\n#### Feature: Merging \u0026 filtering INI files\n\nThis is the main mode and reason for the existance of this tool.\n\n`chezmoi_modify_manager` allows you to:\n\n* Ignore entire sections or specific keys in an INI style file.\n* Ignore a key in a section based on regular expressions.\n* Force set a value (useful together with templating).\n* Force remove a section, key or entries matching a regex (useful together with templating).\n* Apply a transformation to the value of a specified key. These are special\n  operations that are built in and provide more complicated transformations.\n  Some examples that this can do:\n  * Look up a password in the platform keyring\n  * Ignore the sorting order of a list style value (`key=a,b,c,d`)\n  * etc.\n\nFor detailed usage instructions see the [user manual].\n\n#### Feature: Assisted adding to the chezmoi source state\n\nThe command can also be used to add files (see `chezmoi_modify_manager --help` for details):\n\n* Smart re-add mode (re-add files as managed `.src.ini` if they are already\n  managed, otherwise add with plain chezmoi).\n* Conversion mode (convert from plain chezmoi to managed to `.src.ini`).\n\n`chezmoi_modify_manager` also allows filtering the added files when re-adding\nthem after they changed:\n\n* Any ignored keys will be removed (since we always use the system version of\n  these, this reduces churn and the diff size in git).\n* The value can be hidden (`add:hide` directive), useful in case of passwords\n  that comes from keyrings.\n* Or they can be removed entirely using the `add:remove` directive (useful in\n  combination with `set` and a templated modify script).\n\nFor detailed usage instructions see the [user manual].\n\n## Platform support and requirements\n\nThe binary is self-contained with no non-optional system dependencies apart\nfrom the platform provided basic libraries (typically libc \u0026 libm on Linux).\n\nRequirements to build (if there is no native binary for your platform):\n\n* Rust 1.81.0 or newer\n* A C compiler and associated toolchain (linker, headers, libraries, etc).\\\n  This is needed as some dependencies may include some C code.\n\nPlatforms:\n\n| Platform         | Architecture | Continuous Integration | Tested manually     |\n|------------------|--------------|------------------------|---------------------|\n| Linux with Glibc | All major    | Yes                    | Yes (x86-64, ARM64) |\n| Linux with Musl  | All major    | Yes                    | Yes (x86-64)        |\n| Windows          | x86-64       | Yes                    | No                  |\n| MacOS            | x86-64       | Yes                    | No                  |\n\nThe above table is limited to what I myself have access to (and use) as well as\nwhat works in GitHub CI. Other Unixes are likely to work, if\n[Rust has support](https://doc.rust-lang.org/stable/rustc/platform-support.html).\n\n## Minimum Supported Rust Version (MSRV) policy\n\nThe current Minimum Supported Rust Version (MSRV) is documented in the previous\n[section](#platform-support-and-requirements). The MSRV may be bumped as needed.\nIt is guaranteed that `chezmoi_modify_manager` will at least build on the current\nand previous stable Rust release. An MSRV change is not considered a breaking\nchange and as such may change even in a patch version.\n\n[AUR]: https://aur.archlinux.org/packages/chezmoi_modify_manager\n[crates.io]: https://crates.io/crates/chezmoi_modify_manager\n[lib.rs]: https://lib.rs/crates/chezmoi_modify_manager\n[user manual]: https://vorpalblade.github.io/chezmoi_modify_manager\n[migration guides]: https://vorpalblade.github.io/chezmoi_modify_manager/migration","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvorpalblade%2Fchezmoi_modify_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvorpalblade%2Fchezmoi_modify_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvorpalblade%2Fchezmoi_modify_manager/lists"}