Add ACPI fan support repair UI and full-speed threshold toggle#40
Add ACPI fan support repair UI and full-speed threshold toggle#40linkj-r wants to merge 9 commits intoaarron-lee:mainfrom
Conversation
py_modules/fan_support.py → ../submodules/LegionFanFix/py_modules/fan_support.py fan_support.py now has a single source of truth in LegionFanFix. Fixes go into that repo first; bump the submodule pin here to pick them up. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Hrm, I'm not sure about having LGORemapper unlock root FS + installing kernel headers, DKMS, etc, on official SteamOS. 🤔 The acpi_call functionality was strictly intended for distros that shipped it, such as Nobara and Bazzite. |
|
I'll think about this for a bit. Absolute worst case scenario, I wouldn't mind updating the README to redirect SteamOS users to your fork (if you want to maintain it) |
|
lol i just realized i posted all of those responses from my work account. one sec. |
|
I appreciate your time for the review and thoughts! :) What do you think of the threshold full speed fan controls? It irritated me that when using a curve, i could never hit full speed. Even at the highest temps. I honestly didn't come away with a visual design I loved. I like the collapsing functionality, but I don't love the new line underneath each potential full speed option. I actually originally built the installation of kernel headers, DKMS, etc as an individual plugin, and then decided this would be my preferred location for this to exist as its where I'd change fan controls themselves. And if the fan controls are not rendering this would render to get them enabled. If it is non-preferable to have the install as part of the LGR, I will gladly finish building out my own plugin. I'll probably just productionize my individual plugin for enabling fan controls. And remove the installation of kernel headers, DKMS, etc on this fork. My individual plugin is all functional, just doesn't have an easy release/install path yet. I built it first as a prove of concept then wanted it here for a more ideal state. I would probably have you point at that plugin and not the fork, if you wanted to reference it in your readme. The acpi_call functionality was strictly intended for distros that shipped it, such as Nobara and Bazzite. I'll have to go read into this more, I didn't realize this was the case. It seems like a mistake that we wouldn't be able to have control over airflow on the legion go with a device that can do more than the steamdeck. But I have some learning I need to do, I don't know the implications. Lastly, I actually need to make an improvement on my pop up modals, they are currently requiring a touchscreen or mouse interaction, where I'd like a controller joystick to also easily select them. I just noticed this yesterday, and I will try to get that fixed today or tomorrow. Once again, I appreciate your time, in review, but also in building this helpful plugin in the first place. |
|
I could potentially put my toggle on the same line as the 60 degrees and percentage sign, move the percentage to the left, the toggle far right that just says full speed. Maybe a little divider right there. For visual distinction, but might feel too packed. |
|
The acpi_call functionality was strictly intended for distros that shipped it, such as Nobara and Bazzite. My personal thought on this would be, this plugin is for the legion go, not the steam deck, if someone is putting steamos onto a legion go they are already breaking out of the traditional console like experience, and setting themselves up for tinkering, especially the second they set up decky loader. That being said being an advocate against myself, disabling steam read only mode from game mode casually isn't exactly a good look either. Removes some of the value of what steamos is trying to do from an identity perspective. If we wanted some form of middle ground, what if in the install we prompt the user with the choice to turn on or off this functionality, with warnings as to what it does, if they install it with it off the feature flag will effectively just be off. This indicator will never show up for them. I'll likely need to set up an environment variable or something to manage that. |
|
Sorry for blowing up your notifications. |
Summary
acpi_callDKMS module (causing fan curves to stop responding), a "NOT ACTIVE" warning appears in the Fan Control section with an Apply Fan Fix button. The fix reinstalls kernel headers, rebuilds the DKMS module, and prompts to restart Decky — all without leaving the plugin panel.ENABLE_FAN_FIXinsrc/featureFlags.tsand can be disabled without removing any code.Fan Fix UI
Fan support not active — Apply Fan Fix button appears in place of the curve editor
Fix flow (confirmation → progress steps → completion)
After restart — Fan Support shows ACTIVE, curve editor is restored
Full Speed Threshold Toggle
Toggle appears after each temperature step at 60°C and above
Toggle enabled — collapses higher steps
Testing
To test the full fan fix flow, install from my fork's release and follow
testing/README.md:curl -L https://github.com/kjroberts39/LegionGoRemapperWithAutoFanSetup/releases/download/v0.3.1/LegionGoRemapper.tar.gz -o /tmp/LegionGoRemapper.tar.gz sudo HOME=/home/deck sh ~/homebrew/plugins/LegionGoRemapper/ota_update.sh