mirror of
https://github.com/Steve-Tech/YAFI.git
synced 2026-04-19 16:50:36 +00:00
Make LEDs page interactive
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<interface>
|
||||
<!-- interface-description The Battery page for YAFI -->
|
||||
<!-- interface-authors Steve-Tech -->
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<requires lib="gtk" version="4.12"/>
|
||||
<requires lib="libadwaita" version="1.6"/>
|
||||
<object class="GtkBox" id="battery-root">
|
||||
<property name="orientation">vertical</property>
|
||||
@@ -18,13 +18,19 @@
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="bat-limit">
|
||||
<object class="AdwSwitchRow" id="chg-limit-enable">
|
||||
<property name="title">Enable Charge Limiter</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="chg-limit">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="subtitle">Limit the maximum charge</property>
|
||||
<property name="title">Charge Limit</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<child>
|
||||
<object class="GtkScale" id="bat-limit-scale">
|
||||
<object class="GtkScale" id="chg-limit-scale">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="page-increment">10.0</property>
|
||||
@@ -41,6 +47,49 @@
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="bat-limit">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="subtitle">Limit the minimum charge</property>
|
||||
<property name="title">Discharge Limit</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<child>
|
||||
<object class="GtkScale" id="bat-limit-scale">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="page-increment">10.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">100.0</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="round-digits">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="chg-limit-override">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="subtitle">Disables the limiter for one charge cycle</property>
|
||||
<property name="title">Override Charge Limiter</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="halign">end</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<property name="valign">center</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="chg-limit-override-btn">
|
||||
<property name="label">Override</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="description">Preserve the battery lifespan by gradually lowering battery charge voltage automatically if the system is connected to AC for more than the set day limit.</property>
|
||||
@@ -55,23 +104,43 @@
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow">
|
||||
<object class="AdwActionRow" id="bat-ext-stage">
|
||||
<property name="selectable">False</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="subtitle">0</property>
|
||||
<property name="title">Current Stage (0 to 2)</property>
|
||||
<style>
|
||||
<class name="property"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="bat-ext-trigger-time">
|
||||
<property name="selectable">False</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="title">Time Until Trigger</property>
|
||||
<style>
|
||||
<class name="property"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="bat-ext-reset-time">
|
||||
<property name="selectable">False</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="title">Time Until Reset</property>
|
||||
<style>
|
||||
<class name="property"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwSpinRow" id="bat-ext-trigger">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="lower">1.0</property>
|
||||
<property name="page-increment">5.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">65535.0</property>
|
||||
<property name="upper">99.0</property>
|
||||
<property name="value">5.0</property>
|
||||
</object>
|
||||
</property>
|
||||
@@ -84,9 +153,10 @@
|
||||
<object class="AdwSpinRow" id="bat-ext-reset">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="lower">1.0</property>
|
||||
<property name="page-increment">5.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">65535.0</property>
|
||||
<property name="upper">9999.0</property>
|
||||
<property name="value">30.0</property>
|
||||
</object>
|
||||
</property>
|
||||
@@ -97,68 +167,6 @@
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwExpanderRow">
|
||||
<property name="selectable">False</property>
|
||||
<property name="subtitle">These options break normal functionality</property>
|
||||
<property name="title">Advanced Options</property>
|
||||
<child>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="description">These options will conflict with the framework options.</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="margin-end">5</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<property name="title">ChromeOS Battery Limiter</property>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="bat-cros-max">
|
||||
<property name="title">Maximum Limit</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<child>
|
||||
<object class="GtkScale" id="led-chg-255-scale">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="page-increment">16.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">255.0</property>
|
||||
<property name="value">255.0</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="round-digits">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="bat-cros-min">
|
||||
<property name="title">Minimum Limit</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<child>
|
||||
<object class="GtkScale" id="led-chg-255-scale_2">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="page-increment">16.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">255.0</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="round-digits">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="boxed-list"/>
|
||||
</style>
|
||||
|
||||
@@ -26,11 +26,10 @@
|
||||
<object class="GtkScale" id="led-pwr-scale">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="lower">1.0</property>
|
||||
<property name="page-increment">1.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">3.0</property>
|
||||
<property name="value">3.0</property>
|
||||
<property name="upper">2.0</property>
|
||||
<property name="value">2.0</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="hexpand">True</property>
|
||||
@@ -50,10 +49,10 @@
|
||||
<object class="GtkScale" id="led-kbd-scale">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="page-increment">16.0</property>
|
||||
<property name="page-increment">10.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">255.0</property>
|
||||
<property name="value">255.0</property>
|
||||
<property name="upper">100.0</property>
|
||||
<property name="value">100.0</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="hexpand">True</property>
|
||||
@@ -82,43 +81,14 @@
|
||||
<property name="model">
|
||||
<object class="GtkStringList">
|
||||
<items>
|
||||
<item>Red</item>
|
||||
<item>Green</item>
|
||||
<item>Blue</item>
|
||||
<item>Yellow</item>
|
||||
<item>White</item>
|
||||
<item>Amber</item>
|
||||
<item>Auto</item>
|
||||
<item>Off</item>
|
||||
</items>
|
||||
</object>
|
||||
</property>
|
||||
<property name="selected">4</property>
|
||||
<property name="subtitle">Not all devices support colours.</property>
|
||||
<property name="title">Colour</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="led-pwr-255">
|
||||
<property name="title">Brightness</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<child>
|
||||
<object class="GtkScale" id="led-pwr-255-scale">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="page-increment">16.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">255.0</property>
|
||||
<property name="value">255.0</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="round-digits">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
@@ -134,41 +104,14 @@
|
||||
<property name="model">
|
||||
<object class="GtkStringList">
|
||||
<items>
|
||||
<item>Red</item>
|
||||
<item>Green</item>
|
||||
<item>Blue</item>
|
||||
<item>Yellow</item>
|
||||
<item>White</item>
|
||||
<item>Amber</item>
|
||||
<item>Auto</item>
|
||||
<item>Off</item>
|
||||
</items>
|
||||
</object>
|
||||
</property>
|
||||
<property name="title">Colour</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="led-chg-255">
|
||||
<property name="title">Brightness</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<child>
|
||||
<object class="GtkScale" id="led-chg-255-scale">
|
||||
<property name="adjustment">
|
||||
<object class="GtkAdjustment">
|
||||
<property name="page-increment">16.0</property>
|
||||
<property name="step-increment">1.0</property>
|
||||
<property name="upper">255.0</property>
|
||||
<property name="value">255.0</property>
|
||||
</object>
|
||||
</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="round-digits">0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
||||
138
yafi/ui/yafi.cmb
138
yafi/ui/yafi.cmb
@@ -49,44 +49,36 @@
|
||||
(3,16,"GtkScale","led-kbd-scale",15,None,None,None,0,None,None),
|
||||
(3,17,"GtkAdjustment",None,16,None,None,None,0,None,None),
|
||||
(3,18,"AdwExpanderRow",None,5,None,None,None,3,None,None),
|
||||
(3,19,"AdwActionRow","led-pwr-255",31,None,None,None,1,None,None),
|
||||
(3,20,"GtkBox",None,19,None,None,None,0,None,None),
|
||||
(3,21,"GtkScale","led-pwr-255-scale",20,None,None,None,0,None,None),
|
||||
(3,22,"GtkAdjustment",None,21,None,None,None,0,None,None),
|
||||
(3,23,"AdwComboRow","led-pwr-colour",31,None,None,None,0,None,None),
|
||||
(3,24,"GtkStringList",None,23,None,None,None,0,None,None),
|
||||
(3,25,"AdwComboRow","led-chg-colour",32,None,None,None,0,None,None),
|
||||
(3,26,"GtkStringList",None,25,None,None,None,0,None,None),
|
||||
(3,27,"AdwActionRow","led-chg-255",32,None,None,None,1,None,None),
|
||||
(3,28,"GtkBox",None,27,None,None,None,0,None,None),
|
||||
(3,29,"GtkScale","led-chg-255-scale",28,None,None,None,0,None,None),
|
||||
(3,30,"GtkAdjustment",None,29,None,None,None,0,None,None),
|
||||
(3,31,"AdwPreferencesGroup",None,18,None,None,None,0,None,None),
|
||||
(3,32,"AdwPreferencesGroup",None,18,None,None,None,1,None,None),
|
||||
(4,1,"GtkBox","battery-root",None,None,None,None,0,None,None),
|
||||
(4,2,"GtkListBox",None,1,None,None,None,0,None,None),
|
||||
(4,3,"AdwActionRow",None,2,None,None,None,0,None,None),
|
||||
(4,4,"AdwActionRow","bat-limit",2,None,None,None,1,None,None),
|
||||
(4,4,"AdwActionRow","chg-limit",2,None,None,None,2,None,None),
|
||||
(4,5,"GtkBox",None,4,None,None,None,0,None,None),
|
||||
(4,6,"GtkScale","bat-limit-scale",5,None,None,None,0,None,None),
|
||||
(4,6,"GtkScale","chg-limit-scale",5,None,None,None,0,None,None),
|
||||
(4,7,"GtkAdjustment",None,6,None,None,None,0,None,None),
|
||||
(4,12,"AdwExpanderRow",None,2,None,None,None,3,None,None),
|
||||
(4,13,"AdwPreferencesGroup",None,2,None,None,None,2,None,None),
|
||||
(4,20,"AdwPreferencesGroup",None,12,None,None,None,0,None,None),
|
||||
(4,23,"AdwActionRow","bat-cros-max",20,None,None,None,0,None,None),
|
||||
(4,24,"GtkBox",None,23,None,None,None,0,None,None),
|
||||
(4,25,"GtkScale","led-chg-255-scale",24,None,None,None,0,None,None),
|
||||
(4,26,"GtkAdjustment",None,25,None,None,None,0,None,None),
|
||||
(4,27,"AdwSpinRow","bat-ext-trigger",13,None,None,None,3,None,None),
|
||||
(4,13,"AdwPreferencesGroup",None,2,None,None,None,5,None,None),
|
||||
(4,27,"AdwSpinRow","bat-ext-trigger",13,None,None,None,5,None,None),
|
||||
(4,28,"GtkAdjustment",None,27,None,None,None,0,None,None),
|
||||
(4,29,"AdwSpinRow","bat-ext-reset",13,None,None,None,4,None,None),
|
||||
(4,29,"AdwSpinRow","bat-ext-reset",13,None,None,None,6,None,None),
|
||||
(4,30,"GtkAdjustment",None,29,None,None,None,0,None,None),
|
||||
(4,31,"AdwActionRow",None,13,None,None,None,2,None,None),
|
||||
(4,31,"AdwActionRow","bat-ext-stage",13,None,None,None,2,None,None),
|
||||
(4,32,"AdwSwitchRow",None,13,None,None,None,1,None,None),
|
||||
(4,33,"AdwActionRow","bat-cros-min",20,None,None,None,1,None,None),
|
||||
(4,33,"AdwActionRow","bat-limit",2,None,None,None,3,None,None),
|
||||
(4,34,"GtkBox",None,33,None,None,None,0,None,None),
|
||||
(4,35,"GtkScale","led-chg-255-scale_2",34,None,None,None,0,None,None),
|
||||
(4,35,"GtkScale","bat-limit-scale",34,None,None,None,0,None,None),
|
||||
(4,36,"GtkAdjustment",None,35,None,None,None,0,None,None),
|
||||
(4,37,"AdwActionRow","chg-limit-override",2,None,None,None,4,None,None),
|
||||
(4,38,"GtkBox",None,37,None,None,None,0,None,None),
|
||||
(4,39,"GtkButton","chg-limit-override-btn",38,None,None,None,0,None,None),
|
||||
(4,40,"AdwSwitchRow","chg-limit-enable",2,None,None,None,1,None,None),
|
||||
(4,41,"AdwActionRow","bat-ext-trigger-time",13,None,None,None,3,None,None),
|
||||
(4,42,"AdwActionRow","bat-ext-reset-time",13,None,None,None,4,None,None),
|
||||
(5,1,"GtkBox","hardware-root",None,None,None,None,0,None,None),
|
||||
(5,2,"GtkListBox",None,1,None,None,None,0,None,None),
|
||||
(5,3,"AdwActionRow",None,2,None,None,None,0,None,None),
|
||||
@@ -146,44 +138,25 @@
|
||||
(3,12,"GtkRange","adjustment",None,0,None,None,None,13,None,None,None,None),
|
||||
(3,12,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
|
||||
(3,12,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkAdjustment","lower","1.0",None,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkAdjustment","page-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkAdjustment","upper","3.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkAdjustment","value","3.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkAdjustment","upper","2.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,13,"GtkAdjustment","value","2.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,14,"AdwPreferencesRow","title","Keyboard Backlight",0,None,None,None,None,None,None,None,None),
|
||||
(3,16,"GtkRange","adjustment",None,0,None,None,None,17,None,None,None,None),
|
||||
(3,16,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
|
||||
(3,16,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkAdjustment","page-increment","16.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkAdjustment","page-increment","10.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkAdjustment","upper","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkAdjustment","value","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkAdjustment","upper","100.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,17,"GtkAdjustment","value","100.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,18,"AdwExpanderRow","subtitle","These options break normal functionality",None,None,None,None,None,None,None,None,None),
|
||||
(3,18,"AdwPreferencesRow","title","Advanced Options",None,None,None,None,None,None,None,None,None),
|
||||
(3,18,"GtkListBoxRow","selectable","False",None,None,None,None,None,None,None,None,None),
|
||||
(3,19,"AdwPreferencesRow","title","Brightness",0,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkRange","adjustment",None,0,None,None,None,22,None,None,None,None),
|
||||
(3,21,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
|
||||
(3,21,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkAdjustment","page-increment","16.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkAdjustment","upper","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,22,"GtkAdjustment","value","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,23,"AdwActionRow","subtitle","Not all devices support colours.",None,None,None,None,None,None,None,None,None),
|
||||
(3,23,"AdwComboRow","model",None,0,None,None,None,24,None,None,None,None),
|
||||
(3,23,"AdwComboRow","selected","4",None,None,None,None,None,None,None,None,None),
|
||||
(3,23,"AdwPreferencesRow","title","Colour",0,None,None,None,None,None,None,None,None),
|
||||
(3,25,"AdwComboRow","model",None,0,None,None,None,26,None,None,None,None),
|
||||
(3,25,"AdwPreferencesRow","title","Colour",0,None,None,None,None,None,None,None,None),
|
||||
(3,27,"AdwPreferencesRow","title","Brightness",0,None,None,None,None,None,None,None,None),
|
||||
(3,29,"GtkRange","adjustment",None,0,None,None,None,30,None,None,None,None),
|
||||
(3,29,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
|
||||
(3,29,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
|
||||
(3,30,"GtkAdjustment","page-increment","16.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,30,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,30,"GtkAdjustment","upper","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,30,"GtkAdjustment","value","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(3,31,"AdwPreferencesGroup","description","When using these options, the power LED may not turn off with the computer.",None,None,None,None,None,None,None,None,None),
|
||||
(3,31,"AdwPreferencesGroup","title","Power Button LED",None,None,None,None,None,None,None,None,None),
|
||||
(3,31,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
|
||||
@@ -203,6 +176,7 @@
|
||||
(4,3,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
|
||||
(4,4,"AdwActionRow","subtitle","Limit the maximum charge",None,None,None,None,None,None,None,None,None),
|
||||
(4,4,"AdwPreferencesRow","title","Charge Limit",0,None,None,None,None,None,None,None,None),
|
||||
(4,4,"GtkWidget","sensitive","False",None,None,None,None,None,None,None,None,None),
|
||||
(4,6,"GtkRange","adjustment",None,0,None,None,None,7,None,None,None,None),
|
||||
(4,6,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
|
||||
(4,6,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
|
||||
@@ -210,57 +184,57 @@
|
||||
(4,7,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,7,"GtkAdjustment","upper","100.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,7,"GtkAdjustment","value","100.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,12,"AdwExpanderRow","subtitle","These options break normal functionality",0,None,None,None,None,None,None,None,None),
|
||||
(4,12,"AdwPreferencesRow","title","Advanced Options",0,None,None,None,None,None,None,None,None),
|
||||
(4,12,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
|
||||
(4,13,"AdwPreferencesGroup","description","Preserve the battery lifespan by gradually lowering battery charge voltage automatically if the system is connected to AC for more than the set day limit.",0,None,None,None,None,None,None,None,None),
|
||||
(4,13,"AdwPreferencesGroup","title","Battery Extender",0,None,None,None,None,None,None,None,None),
|
||||
(4,13,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
|
||||
(4,13,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
|
||||
(4,13,"GtkWidget","margin-start","5",0,None,None,None,None,None,None,None,None),
|
||||
(4,13,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
|
||||
(4,20,"AdwPreferencesGroup","description","These options will conflict with the framework options.",0,None,None,None,None,None,None,None,None),
|
||||
(4,20,"AdwPreferencesGroup","title","ChromeOS Battery Limiter",0,None,None,None,None,None,None,None,None),
|
||||
(4,20,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
|
||||
(4,20,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
|
||||
(4,20,"GtkWidget","margin-start","5",0,None,None,None,None,None,None,None,None),
|
||||
(4,20,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
|
||||
(4,23,"AdwPreferencesRow","title","Maximum Limit",0,None,None,None,None,None,None,None,None),
|
||||
(4,25,"GtkRange","adjustment",None,0,None,None,None,26,None,None,None,None),
|
||||
(4,25,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
|
||||
(4,25,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
|
||||
(4,26,"GtkAdjustment","page-increment","16.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,26,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,26,"GtkAdjustment","upper","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,26,"GtkAdjustment","value","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,27,"AdwActionRow","subtitle","Number of days on charge before reducing charge limit",None,None,None,None,None,None,None,None,None),
|
||||
(4,27,"AdwPreferencesRow","title","Trigger Days",0,None,None,None,None,None,None,None,None),
|
||||
(4,27,"AdwSpinRow","adjustment",None,0,None,None,None,28,None,None,None,None),
|
||||
(4,27,"GtkWidget","sensitive","False",None,None,None,None,None,None,None,None,None),
|
||||
(4,28,"GtkAdjustment","lower","1.0",None,None,None,None,None,None,None,None,None),
|
||||
(4,28,"GtkAdjustment","page-increment","5.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,28,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,28,"GtkAdjustment","upper","65535.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,28,"GtkAdjustment","upper","99.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,28,"GtkAdjustment","value","5.0",None,None,None,None,None,None,None,None,None),
|
||||
(4,29,"AdwActionRow","subtitle","Number of minutes off charge before resetting charge limit",0,None,None,None,None,None,None,None,None),
|
||||
(4,29,"AdwPreferencesRow","title","Reset Minutes",0,None,None,None,None,None,None,None,None),
|
||||
(4,29,"AdwSpinRow","adjustment",None,0,None,None,None,30,None,None,None,None),
|
||||
(4,29,"GtkWidget","sensitive","False",None,None,None,None,None,None,None,None,None),
|
||||
(4,30,"GtkAdjustment","lower","1.0",None,None,None,None,None,None,None,None,None),
|
||||
(4,30,"GtkAdjustment","page-increment","5.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,30,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,30,"GtkAdjustment","upper","65535.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,30,"GtkAdjustment","upper","9999.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,30,"GtkAdjustment","value","30.0",None,None,None,None,None,None,None,None,None),
|
||||
(4,31,"AdwActionRow","subtitle","0",None,None,None,None,None,None,None,None,None),
|
||||
(4,31,"AdwPreferencesRow","title","Current Stage (0 to 2)",0,None,None,None,None,None,None,None,None),
|
||||
(4,31,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
|
||||
(4,31,"GtkWidget","sensitive","False",None,None,None,None,None,None,None,None,None),
|
||||
(4,32,"AdwPreferencesRow","title","Enable",None,None,None,None,None,None,None,None,None),
|
||||
(4,33,"AdwPreferencesRow","title","Minimum Limit",0,None,None,None,None,None,None,None,None),
|
||||
(4,33,"AdwActionRow","subtitle","Limit the minimum charge",0,None,None,None,None,None,None,None,None),
|
||||
(4,33,"AdwPreferencesRow","title","Discharge Limit",0,None,None,None,None,None,None,None,None),
|
||||
(4,33,"GtkWidget","sensitive","False",None,None,None,None,None,None,None,None,None),
|
||||
(4,35,"GtkRange","adjustment",None,0,None,None,None,36,None,None,None,None),
|
||||
(4,35,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
|
||||
(4,35,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
|
||||
(4,36,"GtkAdjustment","page-increment","16.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,36,"GtkAdjustment","page-increment","10.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,36,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,36,"GtkAdjustment","upper","255.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,36,"GtkAdjustment","upper","100.0",0,None,None,None,None,None,None,None,None),
|
||||
(4,37,"AdwActionRow","subtitle","Disables the limiter for one charge cycle",0,None,None,None,None,None,None,None,None),
|
||||
(4,37,"AdwPreferencesRow","title","Override Charge Limiter",0,None,None,None,None,None,None,None,None),
|
||||
(4,37,"GtkWidget","sensitive","False",None,None,None,None,None,None,None,None,None),
|
||||
(4,38,"GtkBox","homogeneous","True",None,None,None,None,None,None,None,None,None),
|
||||
(4,38,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
|
||||
(4,38,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
|
||||
(4,39,"GtkButton","label","Override",None,None,None,None,None,None,None,None,None),
|
||||
(4,40,"AdwPreferencesRow","title","Enable Charge Limiter",None,None,None,None,None,None,None,None,None),
|
||||
(4,41,"AdwPreferencesRow","title","Time Until Trigger",0,None,None,None,None,None,None,None,None),
|
||||
(4,41,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
|
||||
(4,41,"GtkWidget","sensitive","False",0,None,None,None,None,None,None,None,None),
|
||||
(4,42,"AdwPreferencesRow","title","Time Until Reset",0,None,None,None,None,None,None,None,None),
|
||||
(4,42,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
|
||||
(4,42,"GtkWidget","sensitive","False",0,None,None,None,None,None,None,None,None),
|
||||
(5,1,"GtkOrientable","orientation","vertical",0,None,None,None,None,None,None,None,None),
|
||||
(5,2,"GtkWidget","margin-end","10",0,None,None,None,None,None,None,None,None),
|
||||
(5,2,"GtkWidget","margin-start","10",0,None,None,None,None,None,None,None,None),
|
||||
@@ -312,26 +286,22 @@
|
||||
(3,5,"GtkWidget",1,1,None,None,None,None,None,None),
|
||||
(3,5,"GtkWidget",2,2,None,1,None,None,None,None),
|
||||
(3,24,"GtkStringList",1,1,None,None,None,None,None,None),
|
||||
(3,24,"GtkStringList",2,2,"Red",1,None,0,None,None),
|
||||
(3,24,"GtkStringList",2,3,"Green",1,None,0,None,None),
|
||||
(3,24,"GtkStringList",2,4,"Blue",1,None,0,None,None),
|
||||
(3,24,"GtkStringList",2,2,"Auto",1,None,0,None,None),
|
||||
(3,24,"GtkStringList",2,3,"Off",1,None,0,None,None),
|
||||
(3,26,"GtkStringList",1,1,None,None,None,None,None,None),
|
||||
(3,26,"GtkStringList",2,2,"Red",1,None,0,None,None),
|
||||
(3,26,"GtkStringList",2,3,"Green",1,None,0,None,None),
|
||||
(3,26,"GtkStringList",2,4,"Blue",1,None,0,None,None),
|
||||
(3,26,"GtkStringList",2,2,"Auto",1,None,0,None,None),
|
||||
(3,26,"GtkStringList",2,3,"Off",1,None,0,None,None),
|
||||
(3,18,"GtkWidget",2,2,None,1,None,None,None,None),
|
||||
(3,24,"GtkStringList",2,5,"Yellow",1,None,None,None,None),
|
||||
(3,24,"GtkStringList",2,6,"White",1,None,None,None,None),
|
||||
(3,24,"GtkStringList",2,7,"Amber",1,None,None,None,None),
|
||||
(3,26,"GtkStringList",2,5,"Yellow",1,None,None,None,None),
|
||||
(3,26,"GtkStringList",2,6,"White",1,None,None,None,None),
|
||||
(3,26,"GtkStringList",2,7,"Amber",1,None,None,None,None),
|
||||
(4,2,"GtkWidget",1,1,None,None,None,None,None,None),
|
||||
(4,2,"GtkWidget",2,2,None,1,None,None,None,None),
|
||||
(4,31,"GtkWidget",1,1,None,None,None,None,None,None),
|
||||
(4,31,"GtkWidget",2,2,None,1,None,None,None,None),
|
||||
(5,2,"GtkWidget",1,1,None,None,None,None,None,None),
|
||||
(5,2,"GtkWidget",2,2,None,1,None,None,None,None)
|
||||
(5,2,"GtkWidget",2,2,None,1,None,None,None,None),
|
||||
(4,41,"GtkWidget",1,1,None,None,None,None,None,None),
|
||||
(4,41,"GtkWidget",2,2,None,1,None,None,None,None),
|
||||
(4,42,"GtkWidget",1,1,None,None,None,None,None,None),
|
||||
(4,42,"GtkWidget",2,2,None,1,None,None,None,None)
|
||||
</object_data>
|
||||
<object_data_arg>
|
||||
(1,17,"GtkWidget",2,2,"name","navigation-sidebar"),
|
||||
@@ -341,6 +311,8 @@
|
||||
(3,18,"GtkWidget",2,2,"name","destructive-action"),
|
||||
(4,2,"GtkWidget",2,2,"name","boxed-list"),
|
||||
(4,31,"GtkWidget",2,2,"name","property"),
|
||||
(5,2,"GtkWidget",2,2,"name","boxed-list")
|
||||
(5,2,"GtkWidget",2,2,"name","boxed-list"),
|
||||
(4,41,"GtkWidget",2,2,"name","property"),
|
||||
(4,42,"GtkWidget",2,2,"name","property")
|
||||
</object_data_arg>
|
||||
</cambalache-project>
|
||||
|
||||
121
yafi/yafi.py
121
yafi/yafi.py
@@ -1,17 +1,19 @@
|
||||
import sys
|
||||
import os
|
||||
import gi
|
||||
gi.require_version('Gtk', '4.0')
|
||||
gi.require_version('Adw', '1')
|
||||
|
||||
gi.require_version("Gtk", "4.0")
|
||||
gi.require_version("Adw", "1")
|
||||
from gi.repository import Gtk, Adw, GLib
|
||||
|
||||
from cros_ec_python import get_cros_ec
|
||||
import cros_ec_python.commands as ec_commands
|
||||
|
||||
|
||||
class YAFI(Adw.Application):
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self.connect('activate', self.on_activate)
|
||||
self.connect("activate", self.on_activate)
|
||||
self.script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
self.cros_ec = get_cros_ec()
|
||||
|
||||
@@ -64,7 +66,9 @@ class YAFI(Adw.Application):
|
||||
fan_set_rpm.set_visible(True)
|
||||
fan_set_percent.set_visible(False)
|
||||
|
||||
fan_mode.connect("notify::selected", lambda combo, _: handle_fan_mode(combo.get_selected()))
|
||||
fan_mode.connect(
|
||||
"notify::selected", lambda combo, _: handle_fan_mode(combo.get_selected())
|
||||
)
|
||||
|
||||
def handle_fan_percent(scale):
|
||||
percent = int(scale.get_value())
|
||||
@@ -92,7 +96,9 @@ class YAFI(Adw.Application):
|
||||
self._update_thermals(fan_rpm, temp_items, fan_set_rpm)
|
||||
|
||||
# Schedule _update_thermals to run every second
|
||||
GLib.timeout_add_seconds(1, self._update_thermals, fan_rpm, temp_items, fan_set_rpm)
|
||||
GLib.timeout_add_seconds(
|
||||
1, self._update_thermals, fan_rpm, temp_items, fan_set_rpm
|
||||
)
|
||||
|
||||
def _leds_page(self, builder):
|
||||
# Load the leds.ui file
|
||||
@@ -104,6 +110,97 @@ class YAFI(Adw.Application):
|
||||
|
||||
self._change_page(builder, leds_root)
|
||||
|
||||
# Power LED
|
||||
led_pwr = leds_builder.get_object("led-pwr")
|
||||
led_pwr_scale = leds_builder.get_object("led-pwr-scale")
|
||||
|
||||
def handle_led_pwr(scale):
|
||||
value = int(abs(scale.get_value() - 2))
|
||||
ec_commands.framework_laptop.set_fp_led_level(self.cros_ec, value)
|
||||
led_pwr.set_subtitle(["High", "Medium", "Low"][value])
|
||||
|
||||
current_fp_level = ec_commands.framework_laptop.get_fp_led_level(
|
||||
self.cros_ec
|
||||
).value
|
||||
led_pwr_scale.set_value(abs(current_fp_level - 2))
|
||||
led_pwr.set_subtitle(["High", "Medium", "Low"][current_fp_level])
|
||||
led_pwr_scale.connect("value-changed", handle_led_pwr)
|
||||
|
||||
# Keyboard backlight
|
||||
led_kbd = leds_builder.get_object("led-kbd")
|
||||
led_kbd_scale = leds_builder.get_object("led-kbd-scale")
|
||||
|
||||
def handle_led_kbd(scale):
|
||||
value = int(scale.get_value())
|
||||
ec_commands.pwm.pwm_set_keyboard_backlight(self.cros_ec, value)
|
||||
led_kbd.set_subtitle(f"{value} %")
|
||||
|
||||
current_kb_level = ec_commands.pwm.pwm_get_keyboard_backlight(self.cros_ec)[
|
||||
"percent"
|
||||
]
|
||||
led_kbd_scale.set_value(current_kb_level)
|
||||
led_kbd.set_subtitle(f"{current_kb_level} %")
|
||||
led_kbd_scale.connect("value-changed", handle_led_kbd)
|
||||
|
||||
# Advanced: Power LED
|
||||
led_pwr_colour = leds_builder.get_object("led-pwr-colour")
|
||||
led_pwr_colour_strings = led_pwr_colour.get_model()
|
||||
|
||||
all_colours = ["Red", "Green", "Blue", "Yellow", "White", "Amber"]
|
||||
|
||||
def add_colours(strings, led_id):
|
||||
supported_colours = ec_commands.leds.led_control_get_max_values(
|
||||
self.cros_ec, led_id
|
||||
)
|
||||
for i, colour in enumerate(all_colours):
|
||||
if supported_colours[i]:
|
||||
strings.append(colour)
|
||||
|
||||
add_colours(led_pwr_colour_strings, ec_commands.leds.EcLedId.EC_LED_ID_POWER_LED)
|
||||
|
||||
def handle_led_colour(combobox, led_id):
|
||||
colour = combobox.get_selected() - 2
|
||||
match colour:
|
||||
case -2: # Auto
|
||||
ec_commands.leds.led_control_set_auto(self.cros_ec, led_id)
|
||||
case -1: # Off
|
||||
ec_commands.leds.led_control(
|
||||
self.cros_ec,
|
||||
led_id,
|
||||
0,
|
||||
[0] * ec_commands.leds.EcLedColors.EC_LED_COLOR_COUNT.value,
|
||||
)
|
||||
case _: # Colour
|
||||
colour_idx = all_colours.index(
|
||||
combobox.get_selected_item().get_string()
|
||||
)
|
||||
ec_commands.leds.led_control_set_color(
|
||||
self.cros_ec,
|
||||
led_id,
|
||||
100,
|
||||
ec_commands.leds.EcLedColors(colour_idx),
|
||||
)
|
||||
|
||||
led_pwr_colour.connect(
|
||||
"notify::selected",
|
||||
lambda combo, _: handle_led_colour(
|
||||
combo, ec_commands.leds.EcLedId.EC_LED_ID_POWER_LED
|
||||
),
|
||||
)
|
||||
|
||||
# Advanced: Charging LED
|
||||
led_charge_colour = leds_builder.get_object("led-chg-colour")
|
||||
led_charge_colour_strings = led_charge_colour.get_model()
|
||||
|
||||
add_colours(led_charge_colour_strings, ec_commands.leds.EcLedId.EC_LED_ID_BATTERY_LED)
|
||||
|
||||
led_charge_colour.connect(
|
||||
"notify::selected",
|
||||
lambda combo, _: handle_led_colour(
|
||||
combo, ec_commands.leds.EcLedId.EC_LED_ID_BATTERY_LED
|
||||
),
|
||||
)
|
||||
|
||||
def _battery_page(self, builder):
|
||||
# Load the battery.ui file
|
||||
battery_builder = Gtk.Builder()
|
||||
@@ -135,7 +232,10 @@ class YAFI(Adw.Application):
|
||||
|
||||
# Reset the selection in the navbar
|
||||
navbar = app_builder.get_object("navbar")
|
||||
about.connect("close-request", lambda _: navbar.select_row(navbar.get_row_at_index(self.current_page)))
|
||||
about.connect(
|
||||
"close-request",
|
||||
lambda _: navbar.select_row(navbar.get_row_at_index(self.current_page)),
|
||||
)
|
||||
|
||||
about.present()
|
||||
|
||||
@@ -147,7 +247,13 @@ class YAFI(Adw.Application):
|
||||
self.current_page = 0
|
||||
self._thermals_page(builder)
|
||||
|
||||
pages = (("Thermals", self._thermals_page), ("LEDs", self._leds_page), ("Battery", self._battery_page), ("Hardware", self._hardware_page), ("About", self._about_page))
|
||||
pages = (
|
||||
("Thermals", self._thermals_page),
|
||||
("LEDs", self._leds_page),
|
||||
("Battery", self._battery_page),
|
||||
("Hardware", self._hardware_page),
|
||||
("About", self._about_page),
|
||||
)
|
||||
|
||||
# Build the navbar
|
||||
navbar = builder.get_object("navbar")
|
||||
@@ -169,5 +275,6 @@ class YAFI(Adw.Application):
|
||||
self.win.set_application(self)
|
||||
self.win.present()
|
||||
|
||||
|
||||
app = YAFI(application_id="au.stevetech.yafi")
|
||||
app.run(sys.argv)
|
||||
|
||||
Reference in New Issue
Block a user