Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wishlist #28

Open
3 of 8 tasks
sophiajt opened this issue Jun 11, 2022 · 7 comments
Open
3 of 8 tasks

Wishlist #28

sophiajt opened this issue Jun 11, 2022 · 7 comments

Comments

@sophiajt
Copy link
Contributor

sophiajt commented Jun 11, 2022

  • click on filenames to cd or open them if they are a directory or file (respectively)
  • ctrl+click or shift+click to select more than one cell to use as parameters to the next command
  • pressing 'up' to get the previous history should put me at the end of the input
  • tab-completions based on what we have in Nushell
  • once you hit enter, we can "lock in" the input if it was successful and syntax highlight it for you. You can click on it again and edit more.
  • ctrl+up and ctrl+down could move between cards
  • on the left-hand side we can add bookmarks/quick access to things we want. Like drag over a filename or drag over a pipeline
  • we may want to bring back "value shell" and let users not only explore the filesystem but also explore any data source they want
@rgwood
Copy link
Contributor

rgwood commented Jun 11, 2022

  • Fuzzy find/filter
    • Type a few characters to filter card results
    • Maybe we have a global shortcut for fuzzy find across all cards, and another UI for individual cards
  • Export data from a card to the clipboard
  • Export data from a card to a file
  • Sort card data by clicking on column headers
  • A keyboard-focused command bar. Like ctrl+shift+p in VS Code, or CommandBar.
  • Drag+drop a file onto Nana to open it
  • cd foo should change the cwd of the current card, not create a new card

@fdncred
Copy link
Collaborator

fdncred commented Jun 14, 2022

  • a real datagrid that you can sort, filter, have colors, sparkline graphs, etc. This just the first datagrid from google. not necessarily a web datagrid but since this is a UI make it have a great UI/UX with clickable widgets that do different things.
  • an $output variable that contains all the output of the previous command. maybe even a structure that has last_exit_code, return_type, etc.
  • a tabbed interface so that we could have more working space and evey perhaps do things like $tab1.output | do something | cool

@rgwood
Copy link
Contributor

rgwood commented Jun 14, 2022

@fdncred I’ve been thinking about the datagrid. A lot of existing JS data grids are optimized for the web; they do work like sorting and filtering in-browser, because calling the back-end is expensive and unreliable. But Nana has very different performance characteristics from a web app; the front-end and back-end are on the same computer, and calling the back end should incur nearly zero latency.

I’m still thinking about this, but it might mean that we can roll our own data grid and keep complexity down by keeping the front-end very thin with logic like sorting and filtering in the Rust back-end.

@fdncred
Copy link
Collaborator

fdncred commented Jun 15, 2022

@rgwood I have no problems with what you suggest. My point is, if we're going to have a nushell-type gui, we should support modern datagrid functionality with all the normal gui functionality. I mean, people come to guis for that type of experience. If they just want to look at text on the screen, they can use the shell, but if we have a gui, the UI should be interactive and clickable. I'm happy to follow your lead and have some type of web framework do the presentation and have rust do the heavy lifting, under the hood. We should definitely allow the frameworks to do what they're each best at. I just have no idea what that looks like at the moment.

Just thinking about the user experience, in generic terms, I think we want the UI to be interactive and not just a chalkboard/whiteboard. I think we want elements to be clickable depending on the commands they run. So, the first place I go to is the datagrid, since nushell, in the shell, is so tabular driven. I'm anxious to see what we come up with.

@tanishqkancharla
Copy link
Contributor

tanishqkancharla commented Jun 24, 2022

I believe we have some of the first ones in this issue:

  • pressing 'up' to get the previous history should put me at the end of the input
  • tab-completions based on what we have in Nushell

Unless tab completions meant also showing the completions (e.g. in secondary text color) before they happen?

@rgwood
Copy link
Contributor

rgwood commented Sep 26, 2022

It would be nice to have a menu bar for simple things like opening a help window. This is a bit tricky to do nicely in a cross-platform way.

Details

Tauri offers a simple wrapper around each platform's native menu APIs, but the old Win32 menus on Windows don't even respect dark mode:

image

The Tauri Discord seems to suggest that rolling your own menu in web UI is the usual way to deal with this. So maybe we do something like this on Windows+Linux:

image

Even better would be to do a custom title bar w/menu like VS Code:

image

@fdncred
Copy link
Collaborator

fdncred commented Sep 26, 2022

I like the custom title bar with menu idea. It would be cool to have that on mac/linux/windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants