@@ -130,15 +130,25 @@ private void CheckApplyFans_Changed(object? sender, RoutedEventArgs e)
130130 Helpers . AppConfig . SetMode ( "auto_apply_fans" , enabled ? 1 : 0 ) ;
131131 }
132132
133+ private void CheckApplyPower_Changed ( object ? sender , RoutedEventArgs e )
134+ {
135+ bool enabled = checkApplyPower . IsChecked ?? false ;
136+ Helpers . AppConfig . SetMode ( "auto_apply_power" , enabled ? 1 : 0 ) ;
137+ }
138+
133139 // ── Power Limits ──
134140
135141 private void LoadPowerLimits ( )
136142 {
137143 var wmi = App . Wmi ;
138144 if ( wmi == null ) return ;
139145
146+ // Read from hardware, fall back to saved config
140147 int pl1 = wmi . GetPptLimit ( "ppt_pl1_spl" ) ;
148+ if ( pl1 <= 0 ) pl1 = Helpers . AppConfig . GetMode ( "limit_slow" ) ;
149+
141150 int pl2 = wmi . GetPptLimit ( "ppt_pl2_sppt" ) ;
151+ if ( pl2 <= 0 ) pl2 = Helpers . AppConfig . GetMode ( "limit_fast" ) ;
142152
143153 if ( pl1 > 0 )
144154 {
@@ -151,6 +161,22 @@ private void LoadPowerLimits()
151161 sliderPL2 . Value = pl2 ;
152162 labelPL2 . Text = $ "{ pl2 } W";
153163 }
164+
165+ // fPPT (fast boost) — only show if supported
166+ bool hasFppt = wmi . IsFeatureSupported ( "ppt_fppt" ) ;
167+ gridFppt . IsVisible = hasFppt ;
168+ if ( hasFppt )
169+ {
170+ int fppt = wmi . GetPptLimit ( "ppt_fppt" ) ;
171+ if ( fppt <= 0 ) fppt = Helpers . AppConfig . GetMode ( "limit_fppt" ) ;
172+ if ( fppt > 0 )
173+ {
174+ sliderFppt . Value = fppt ;
175+ labelFppt . Text = $ "{ fppt } W";
176+ }
177+ }
178+
179+ checkApplyPower . IsChecked = Helpers . AppConfig . IsMode ( "auto_apply_power" ) ;
154180 }
155181
156182 private void SliderPL1_ValueChanged ( object ? sender ,
@@ -159,6 +185,7 @@ private void SliderPL1_ValueChanged(object? sender,
159185 int watts = ( int ) e . NewValue ;
160186 labelPL1 . Text = $ "{ watts } W";
161187 App . Wmi ? . SetPptLimit ( "ppt_pl1_spl" , watts ) ;
188+ Helpers . AppConfig . SetMode ( "limit_slow" , watts ) ;
162189 }
163190
164191 private void SliderPL2_ValueChanged ( object ? sender ,
@@ -167,6 +194,16 @@ private void SliderPL2_ValueChanged(object? sender,
167194 int watts = ( int ) e . NewValue ;
168195 labelPL2 . Text = $ "{ watts } W";
169196 App . Wmi ? . SetPptLimit ( "ppt_pl2_sppt" , watts ) ;
197+ Helpers . AppConfig . SetMode ( "limit_fast" , watts ) ;
198+ }
199+
200+ private void SliderFppt_ValueChanged ( object ? sender ,
201+ Avalonia . Controls . Primitives . RangeBaseValueChangedEventArgs e )
202+ {
203+ int watts = ( int ) e . NewValue ;
204+ labelFppt . Text = $ "{ watts } W";
205+ App . Wmi ? . SetPptLimit ( "ppt_fppt" , watts ) ;
206+ Helpers . AppConfig . SetMode ( "limit_fppt" , watts ) ;
170207 }
171208
172209 // ── CPU Boost ──
0 commit comments