starship: add option to use community presets #6155
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Presets are community-submitted configurations for starship. See: https://starship.rs/presets/#presets.
This PR adds the option
programs.starship.preset
that can be set to the name of a preset. Ifprograms.starship.preset != null
it will have priority overprograms.starship.settings
.The preset is fetched from starships github repo by using
pkgs.fetchFromGithub
. I do not think this implementation detail is ideal, as the version fetched from the repo can be out of sync withprograms.starship.package
. This can lead to a bad user experience where a user has seen a preset online and wants to use it, but cannot because the revision is out of date. I am not experienced enough with nix and nixpkgs to know of an alternative. You can get the TOML of the preset withstarship preset <name>
where<name>
is one of the items instarship preset --list
.Checklist
Change is backwards compatible.
Code formatted with
./format
.Code tested through
nix-shell --pure tests -A run.all
ornix develop --ignore-environment .#all
using Flakes.Test cases updated/added. See example.
Commit messages are formatted like
See CONTRIBUTING for more information and recent commit messages for examples.
If this PR adds a new module
Maintainer CC