-
-
Notifications
You must be signed in to change notification settings - Fork 480
[Ref/Feat] System Information #3027
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great.
That's a pretty nice refactor and works pretty well ⚔️
Memory use is inaccurate on macOS and Linux (there's a The "CPU" card looks a little empty like this, should probably add a logo for Apple |
I think this memory inconsistency should be resolved, to avoid confusion among Deck and inexperienced Linux and Mac users. Seeing above 90% memory usage reported by Heroic may be misleading |
495c37f
to
0654c9b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great addition, looks great! MacOS codenames would be nice touch but we can postpone that to be added in the future if you feel like it
`getHericVersion` outside of utils.ts The behavior of everything but `getHeroicVersion` stayed the same. Heroic's own version codenames will now live inside `package.json` (right next to the version number) for convenience
This also adds the `hasExecutable` shorthand
We've had variations of this in several smaller `util` files, let's go for making one generic one instead
Versions of something like this (`callRunner` for example) have existed as purpose-built functions, but implementing something new that intents to spawn processes always needed a new "spawn this process with these arguments and give me the output" function along with it. Time to change that
This is essentially the `systeminformation` module, but tailor-made for our use case (no longer getting stuck, gathering more information, respecting Flatpak paths)
0654c9b
to
6bdb662
Compare
src/frontend/screens/Settings/sections/SystemInfo/vendorLogo.tsx
Outdated
Show resolved
Hide resolved
'settings.systemInformation.systemSpecifications', | ||
'System Specifications:' | ||
)} | ||
</h5> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I originally had clarity in mind with this (your CPU, memory, and GPUs are your specifications, while everything on the page in general is information), but I'd be fine with removing it as well
6bdb662
to
f7d042b
Compare
Other than implementing the review comments, I've added f7d042b now (since it's a common topic in support requests) |
src/frontend/screens/Settings/sections/SystemInfo/vendorLogo.tsx
Outdated
Show resolved
Hide resolved
This offers the user's system information in a more visual and easy-to-copy way
f7d042b
to
b1b8a25
Compare
This PR's main goal was to refactor the way we acquire system information. For this, several functions were split off from
src/backend/utils.ts
into their own files/folders, and a few new ones were addedOnce that was done, I had the idea to use this information in a dedicated Frontend component, so now we also have a "System Information" tab in the "Settings" category of the sidebar, which allows for easy access of this information (particularly useful if it's needed for support requests)
I've tested this on:
Some other highlights include:
package.json
for ease-of-accessuseAwaited
, was introduced to easily work with functions returning promises in React. This is particularly useful for IPCTests for the various new functions would be neat, but the PR's already getting rather large
Use the following Checklist if you have changed something on the Backend or Frontend: