nix-init icon indicating copy to clipboard operation
nix-init copied to clipboard

UI Redesign

Open figsoda opened this issue 3 years ago • 4 comments

The current tui is far from perfect, file path completions have some unconventional behavior, and we are simulating selection with completions

  • [ ] Configuration: https://github.com/nix-community/nix-init/issues/21#issuecomment-1418215364
  • [ ] Consistency with buildxyz: https://github.com/RaitoBezarius/buildxyz/issues/8
  • [ ] Consider changing the library we use
  • [ ] Create abstractions and avoid calling the ui library from main, open up possibilities for a jsonlines frontend for potential editor integration

figsoda avatar Mar 16 '23 14:03 figsoda

I don't know if should go here, but sourceRoot support would be awesome.

RaitoBezarius avatar Mar 19 '23 18:03 RaitoBezarius

The order of the interactive questions isn't very intuitive in my opinion. Right now the output path is asked first then URL and so on. For me at least, it makes much more sense to have URL as the first question then the other packaging related ones and finally the output path. I think in many interactive tools for generating some spec the output path is the last thing being asked.

Almost all the times I use nix-init I accidentally put the URL as the first answer automatically and since the file creating isn't truly atomic (gets created even if nix-init doesn't exit with code 0) I end up with a directory like this:

Enter output path (defaults to current directory)
❯ https://github.com/nix-community/nix-init
Enter url
❯

Error: Interrupted
[kranzes@pongo ~/test]$ ls
https:
[kranzes@pongo ~/test]$ tree
.
└── https:
    └── github.com
        └── nix-community
            └── nix-init

3 directories, 1 file

Kranzes avatar May 05 '23 19:05 Kranzes

nix-template supports writing the output file automatically to a directory in a nixpkgs checkout. I think we could add an option to do the same in nix-init, this should be pretty for python packages as their location in nixpkgs isn't category based but rather pname based, in addition, it could also add it to to pkgs/top-level/python-packages.nix.

Kranzes avatar May 05 '23 19:05 Kranzes

writing the output file automatically to a directory in a nixpkgs checkout

This sounds useful for buildPythonPackage, though I'm not sure about other types of packages. I am mostly waiting for https://github.com/NixOS/rfcs/pull/140

This would also be a good argument for prompting for URL (and probably pname) before the output path.

figsoda avatar May 05 '23 21:05 figsoda