-
Notifications
You must be signed in to change notification settings - Fork 14
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
[TRACKER]: Features to be implemented #25
Comments
[Input] Does not work on linux. When I run this tool, no input devices show up. I assume this has not been implemented yet so here are some tips. Hwinfo already some of what you need. Here are the input devices on my laptop
|
Thank you for your input, @Overc1ocker. However, it is technically implemented, don’t know on which distributions it does and doesn’t work, nor do I care that deeply about it. I, personally, cannot be arsed to deal with Linux. The entire reason why Linux is even supported is due to the help from a plethora of wonderful users who helped me in figuring out how to implement each feature for Linux platforms. For the record, here you can find the exact method responsible for extracting input device information. This, of course, might not work across various distributions, as each distro developer(s) tend to pertain to their own ideologies and practices, and I do not want to hassle myself with keeping up with every distro’s custom practices. Some of the methods there I didn’t even write at all. Obviously, contribution of users doesn’t only pertain to the Linux platform, but major contributions were done there. I’m thankful to all of them for their work, and OCSI wouldn’t be what it is without them. |
As the base of this application continues to expand, and as it gets more and more complex overtime, I think opening up a “tracker” of sorts so that both users and potential contributors are very well aware of what is to (hopefully) be implemented over the years to come.
First off, let's get basic features, refactoring and further implementations necessary (or well, more-so “preferred”):
(1.) Building an efficient and responsive TUI to toggle displaying particular data (GPUs, Device IDs, Connector types for input devices, etc.)
This would also include toggling data of particular groups/categories (CPU, GPU, Memory, ...)
Ideally, the TUI should be written in Rust, and it can then communicate with the Python codebase (using an event emitter, or something of the sorts) to tell the application what data to toggle on/off, and the device manager's methods would be called accordingly when needed.
Ctrl
+C
), which should alleviate the concern as far as that subject is concerned. Otherwise, we would likely need to refactor the entire application to implement some adaption ofcurses
.GPU
category - the TUI would emit an event—which we'll arbitrarily namedata_off
—which the application would listen for, and remove the entire category from the device manager instance'sinfo
attribute. If the user toggles it back on, it should call the DM's (from hereon out, this is what I'll use to refer to the device manager instance)gpu_info()
method.(2.) To quickly mention, the development team has been working on another project, whose purpose is to “pack” the core of this application (for hardware discovery) into a single, versatile library called
PySysInfo
2. With this library, we could focus more on maintaining the core of OCSysInfo without bothering about retaining stability and hardware discovery. Here are some of the benefits of this approach:More attention to pay to UI/UX design;
Makes the codebase a lot cleaner, more easy to preview, shorter, etc.;
We could eventually consider adapting a GUI version, which may or may not be detrimental, but this is still in discussion.
(3.) Add detection for Display devices (resolution, which parent GPU it's attached to, refresh rate, model, etc.) — this would be rather convenient for our end-users, as I've seen a lot of individuals struggle to find the exact model of their monitor on the occasion.
(4.) Implement codename detection for Apple ARM64 chips (M1, M1 Pro, M1 Max, etc.); this would be a hard-coded list, which we can gradually update as each new model comes around.
(5.) Refactor CPU codename managers (for Intel and AMD) to pull from a hardcoded list instead of fetching them online (so that offline compatibility remains)
(6.) Add detection for chipsets; this would be rather challenging, because I'm not entirely certain if Windows and Linux expose this information anywhere, but it is still worth looking into.
That is pretty much it for now, it is going to be a long journey, but I'm hoping they'll come around eventually.
I will be continuously updating this as features are implemented, or if there are any other features that may be useful which require implementations.
Footnotes
https://github.com/KernelWanderers/OCSysInfo/tree/main/interops ↩
https://github.com/KernelWanderers/PySysInfo ↩
The text was updated successfully, but these errors were encountered: