bevry / dorothy

🧙🏻‍♀️ Bring your dotfile commands and configuration to any shell. Sensible defaults and hundreds of commands preloaded. Supports Bash, Zsh, Fish, Nu, Xonsh, Elvish, Dash, KornShell, macOS, Linux, Windows.
Other
311 stars 22 forks source link

Suggestion: revise the installation flow #164

Closed balupton closed 1 year ago

balupton commented 1 year ago

The current dorothy install process prompts people to delete their prior shell configs, then prompts them to add dorothy to their shell configs - from observing people install dorothy, this causes people to be presented with something that seems scary but isn't (if they are just using default shell configs) to something that is scary (if they have custom shell configs), this then causes them to go no, then when it prompts them to configure the shell configs for the shells, they also select no (through the earlier priming) and wonder why dorothy doesn't work.

To ease the ability for people to adopt dorothy, we should move the old shell configs to a user/deprecated/ directory, then source them in user/config/interactive, and add some comments to the files to explain that they should move the configuration over to the new conventions or just delete it.

Dorothy should also do a dorothy undo or dorothy unlink command that will unlink dorothy from the global configs, and restore the deprecated files.

balupton commented 1 year ago

I'm thinking installation should come down to:

Which shells would you like to configure for Dorothy?

How would you like to configure your shells? (Backups will be made, so don't stress.)

Either technique will copy the original dotfiles to a xdg state directory for dorothy/shell-configuration-backup/time

Then they can run dorothy restore and dorothy uninstall to restore the original configuration on their machine.

balupton commented 1 year ago

Another improvement to do in this batch, is if installing dorothy and there is no user directory, then just rm rf dorothy directory and clone fresh in case there is an issue with the clone.

balupton commented 1 year ago

I'm thinking the installer should just ask what shells to configure and always do the extend method. The clean/replace method is too risky to expose to inexperienced users, and should just be enabled somehow for all-in dorothy users, either via a install flag such as install?clean=true or dorothy install --clean, or have dorothy support a configuration file (though to justify that, there should be more things to configure).

the other option is to maintain a database of default shell configuration files, so we can just wipe ones that are untouched.

balupton commented 1 year ago

Closed https://github.com/bevry/dorothy/commit/035d1407839a657a7f07e658ee62cb862ab80465