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

[FEATURE REQUEST] Be able to add columns from the "winget show" cli command to the tables #818

Closed
4 tasks done
Mikey1993 opened this issue Mar 19, 2023 · 10 comments
Closed
4 tasks done
Assignees
Labels
new-feature A new feature that could be useful in WingetUI

Comments

@Mikey1993
Copy link
Contributor

Mikey1993 commented Mar 19, 2023

Before submitting the issue

  • I have checked that the requested feature is not a duplicate or, if it is, it needs to be reopened
  • I have checked that I am running the latest version of WingetUI
  • I have checked the FAQ section
  • I have read the contributing guidelines and I agree with the Code of Conduct

Is your feature request related to a problem? Please describe.

I would like to specifically add the description column for the table in the "Discover Packages" for a better discoverability of new apps.

Describe the solution you'd like

Be able to right click on the tables in the tabs to add columns from the "winget show {appname}" for example.
For example the description from this:
image

@Mikey1993 Mikey1993 added the new-feature A new feature that could be useful in WingetUI label Mar 19, 2023
@Mikey1993
Copy link
Contributor Author

@marticliment
I guess that #712 should be first implemented before making this a feature?

@Mikey1993 Mikey1993 changed the title [FEATURE REQUEST] Be able to add multiple columns from the winget show cli package [FEATURE REQUEST] Be able to add columns from the "winget show" cli command to the tables Mar 19, 2023
@ppvnf
Copy link
Contributor

ppvnf commented Mar 19, 2023

That is not a bad idea, however I am not sure there would be enough space to show the description in the table. How about showing its description or short description, if available, when hovering a package?

@Mikey1993
Copy link
Contributor Author

Mikey1993 commented Mar 19, 2023

That is not a bad idea, however I am not sure there would be enough space to show the description in the table. How about showing its description or short description, if available, when hovering a package?

It all depends on your real estate (how big is your monitor/s), but this is exactly why I want it to be customizable - if a user feels its too crammed, he can hide this tab easily, or the other way, show it in two mouse button clicks.

@marticliment
Copy link
Owner

I don't think that this would be possible, since even with the implementation of #712, descriptions would also need to be manually loaded, which would make it very slow (we are talking about minutes of loading, not ideal).

There's no way to get all descriptions in a single command.

@marticliment marticliment closed this as not planned Won't fix, can't repro, duplicate, stale Mar 19, 2023
@Mikey1993
Copy link
Contributor Author

I don't think that this would be possible, since even with the implementation of #712, descriptions would also need to be manually loaded, which would make it very slow (we are talking about minutes of loading, not ideal).

There's no way to get all descriptions in a single command.

I don't understand why not making this a feature so the user could add it, and also maybe warn that it can be slow, but still able to have it? You can show some sort of circle next to the row to show that it's updating in the background so the user can have a visible cue for it.

Maybe it's good to have some caching for some package info in before coming with the app so that the first load would be fast with these descriptions, and when I am, let's say, highlighting a package, in the background it gets its description and updates it in the UI?

Another solution can be opening an issue on https://github.com/microsoft/winget-cli/issues and ask them for the feature on being able to specify multiple packages in single command like: winget show package1 pacakge2

@marticliment What do you say?

@marticliment
Copy link
Owner

marticliment commented Mar 19, 2023

Because it is impossible with the current technology to expect a window to handle 14000+ packages with their descriptions, and not hang every 2 seconds. Also, on those 2-10 minutes of loading, your cpu would be at 100%, a less-than-ideal situation.

It is not about not implementing the feature. it is about not being implementable.

You can check out https://github.com/DrewNaylor/guinget/releases/tag/v0.3.0.2-beta, which does that, and you will understand what I mean. (not to criticise their amazing job, but the intended behaviour of their approach implies those wait times)

Also, this feature would apply only to winget, and not to scoop or chocolatey, what could confuse users

@ppvnf
Copy link
Contributor

ppvnf commented Mar 19, 2023

How about showing its description or short description, if available, when hovering a package?

That would be loaded on demand and maybe could also be extended to Scoop/Chocolatey

@Mikey1993
Copy link
Contributor Author

Mikey1993 commented Mar 19, 2023

How about showing its description or short description, if available, when hovering a package?

That would be loaded on demand and maybe could also be extended to Scoop/Chocolatey

Exactly.
I do thibk it's possible to make it functional, and if it will be lazy loaded/by demand it would be sufficient for me and I'm sure for other people as well.

As I suggested, you can cache these descriptions easily for the subsequent run of WingetUI so it won't take much long and only will update the description afterwards when:

  1. The column is being select to be shown
  2. When hovering/getting info about the package
  3. If Chocolate and scoop are not supporting this, just show "Not info" or some other placeholder in there.

Eventually I hope this will be implemented correctly into the UI for a great usability.

There are ways to make things pretty snappy and not CPU hungry if you do the implementation right.

@marticliment your thoughts?

@marticliment
Copy link
Owner

3. If Chocolate and scoop are not supporting this, just show "Not info" or some other placeholder in there.

That would mean 2 out of 3 packages (or even more) would have the No Description tab.

There are ways to make things pretty snappy and not CPU hungry if you do the implementation right.

Obviously, things can get optimized to be as efficient as possible, but optimization has limits, and computational power of PCs has improved a lot.

For the moment, looking at winget/chocolatey/scoop client capabilities, I don't think this feature is doable in a working, sane way. If you count time, on winget it takes ~5-40secs (they even don't loadat all sometimes) to parse a single description. Just multiply this for 6000 winget packages.
Even if they are lazy-loaded, it would represent ~25 hours of high-resource usage, just to get a feature that can be accesed repidly with a single click, opening a package's info window.

However, if the clients change, i'm always open to rethinking any undone feature due to current limitations.

@Mikey1993
Copy link
Contributor Author

  1. If Chocolate and scoop are not supporting this, just show "Not info" or some other placeholder in there.

That would mean 2 out of 3 packages (or even more) would have the No Description tab.

There are ways to make things pretty snappy and not CPU hungry if you do the implementation right.

Obviously, things can get optimized to be as efficient as possible, but optimization has limits, and computational power of PCs has improved a lot.

For the moment, looking at winget/chocolatey/scoop client capabilities, I don't think this feature is doable in a working, sane way. If you count time, on winget it takes ~5-40secs (they even don't loadat all sometimes) to parse a single description. Just multiply this for 6000 winget packages. Even if they are lazy-loaded, it would represent ~25 hours of high-resource usage, just to get a feature that can be accesed repidly with a single click, opening a package's info window.

However, if the clients change, i'm always open to rethinking any undone feature due to current limitations.

I still think that WingetUI should be the ultimate manager for all of these package managers, so if one works differently than the other it should be taken into consideration in the code and have its own code path to deal with.

But sure, I won't push this one to your throat.
Lets hope for better times and better managers in the future :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature A new feature that could be useful in WingetUI
Projects
None yet
Development

No branches or pull requests

3 participants