If I understand correctly, what you want is to have multiple devshells specified in the devShells. <system> attribute set, with one of them set as the default. E.g., I have a dev shell for compiling a project I work on with GCC, and another with Clang. One t. hen enters the specific dev env with nix develop ./path/to/flake/folder#<name-of-the-devshell> (or using the specified default dev env when the name of the shell is omitted). And the shell used in the dev env can be set using either additional parameter --command $SHELL, or with something like
which is what I use and prefer. I always want the same shell, but different environment (packages).