Design UI for hardware page

This commit is contained in:
Stephen Horvath
2025-03-18 15:52:45 +10:00
parent eb0a975131
commit 48552744b1
4 changed files with 130 additions and 97 deletions

View File

@@ -134,7 +134,7 @@
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="bat-cros-max_2"> <object class="AdwActionRow" id="bat-cros-min">
<property name="title">Minimum Limit</property> <property name="title">Minimum Limit</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">

84
hardware.ui Normal file
View File

@@ -0,0 +1,84 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.94.1 -->
<interface>
<!-- interface-description The Hardware page for YAFI -->
<!-- interface-copyright Steve-Tech -->
<requires lib="gtk" version="4.12"/>
<requires lib="libadwaita" version="1.4"/>
<object class="GtkBox" id="hardware-root">
<property name="orientation">vertical</property>
<child>
<object class="GtkListBox">
<property name="margin-end">10</property>
<property name="margin-start">10</property>
<child>
<object class="AdwActionRow">
<property name="selectable">False</property>
<property name="title">Hardware Status</property>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="selectable">False</property>
<property name="subtitle">Currently Closed</property>
<property name="title">Chassis Open Count</property>
<child>
<object class="GtkLabel">
<property name="label">0</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="selectable">False</property>
<property name="subtitle">Use Privacy Switch</property>
<property name="title">Camera Enabled</property>
<child>
<object class="GtkBox">
<property name="halign">end</property>
<property name="homogeneous">True</property>
<property name="valign">center</property>
<child>
<object class="GtkSwitch">
<property name="active">True</property>
<property name="sensitive">False</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="selectable">False</property>
<property name="subtitle">Use Privacy Switch</property>
<property name="title">Microphone Enabled</property>
<child>
<object class="GtkBox">
<property name="halign">end</property>
<property name="homogeneous">True</property>
<property name="valign">center</property>
<child>
<object class="GtkSwitch">
<property name="active">True</property>
<property name="sensitive">False</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwSwitchRow">
<property name="active">True</property>
<property name="title">Fingerprint Enabled</property>
</object>
</child>
<style>
<class name="boxed-list"/>
</style>
</object>
</child>
</object>
</interface>

130
yafi.cmb
View File

@@ -22,9 +22,9 @@
(1,52,"GtkBox","content",53,None,None,None,0,None,None), (1,52,"GtkBox","content",53,None,None,None,0,None,None),
(1,53,"GtkScrolledWindow",None,11,None,None,None,1,None,None), (1,53,"GtkScrolledWindow",None,11,None,None,None,1,None,None),
(2,2,"GtkPaned","thermals-root",None,None,None,None,1,None,None), (2,2,"GtkPaned","thermals-root",None,None,None,None,1,None,None),
(2,3,"GtkListBox","temperatures",2,None,None,None,0,None,None), (2,3,"GtkListBox","temperatures",2,None,None,None,1,None,None),
(2,4,"AdwActionRow",None,3,None,None,None,0,None,None), (2,4,"AdwActionRow",None,3,None,None,None,0,None,None),
(2,5,"GtkBox",None,2,None,None,None,1,None,None), (2,5,"GtkBox",None,2,None,None,None,0,None,None),
(2,6,"GtkListBox",None,5,None,None,None,0,None,None), (2,6,"GtkListBox",None,5,None,None,None,0,None,None),
(2,7,"AdwActionRow",None,6,None,None,None,0,None,None), (2,7,"AdwActionRow",None,6,None,None,None,0,None,None),
(2,8,"AdwActionRow","fan-rpm",6,None,None,None,1,None,None), (2,8,"AdwActionRow","fan-rpm",6,None,None,None,1,None,None),
@@ -82,36 +82,22 @@
(4,30,"GtkAdjustment",None,29,None,None,None,0,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",None,13,None,None,None,2,None,None),
(4,32,"AdwSwitchRow",None,13,None,None,None,1,None,None), (4,32,"AdwSwitchRow",None,13,None,None,None,1,None,None),
(4,33,"AdwActionRow","bat-cros-max_2",20,None,None,None,1,None,None), (4,33,"AdwActionRow","bat-cros-min",20,None,None,None,1,None,None),
(4,34,"GtkBox",None,33,None,None,None,0,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","led-chg-255-scale_2",34,None,None,None,0,None,None),
(4,36,"GtkAdjustment",None,35,None,None,None,0,None,None), (4,36,"GtkAdjustment",None,35,None,None,None,0,None,None),
(5,1,"GtkBox","hardware-root",None,None,None,None,0,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,2,"GtkListBox",None,1,None,None,None,0,None,None),
(5,3,"AdwActionRow",None,2,None,None,None,0,None,None), (5,3,"AdwActionRow",None,2,None,None,None,0,None,None),
(5,4,"AdwActionRow","led-pwr",2,None,None,None,1,None,None), (5,4,"AdwActionRow",None,2,None,None,None,1,None,None),
(5,5,"GtkBox",None,4,None,None,None,0,None,None), (5,5,"GtkLabel",None,4,None,None,None,0,None,None),
(5,6,"GtkScale","led-pwr-scale",5,None,None,None,0,None,None), (5,6,"AdwActionRow",None,2,None,None,None,2,None,None),
(5,7,"GtkAdjustment",None,6,None,None,None,0,None,None), (5,9,"AdwActionRow",None,2,None,None,None,3,None,None),
(5,8,"AdwActionRow","led-kbd",2,None,None,None,2,None,None), (5,11,"GtkSwitch",None,13,None,None,None,0,None,None),
(5,9,"GtkBox",None,8,None,None,None,0,None,None), (5,12,"AdwSwitchRow",None,2,None,None,None,4,None,None),
(5,10,"GtkScale","led-kbd-scale",9,None,None,None,0,None,None), (5,13,"GtkBox",None,9,None,None,None,0,None,None),
(5,11,"GtkAdjustment",None,10,None,None,None,0,None,None), (5,14,"GtkBox",None,6,None,None,None,0,None,None),
(5,12,"AdwExpanderRow",None,2,None,None,None,3,None,None), (5,15,"GtkSwitch",None,14,None,None,None,0,None,None)
(5,13,"AdwPreferencesGroup",None,12,None,None,None,0,None,None),
(5,14,"AdwComboRow","led-pwr-colour",13,None,None,None,0,None,None),
(5,15,"GtkStringList",None,14,None,None,None,0,None,None),
(5,16,"AdwActionRow","led-pwr-255",13,None,None,None,1,None,None),
(5,17,"GtkBox",None,16,None,None,None,0,None,None),
(5,18,"GtkScale","led-pwr-255-scale",17,None,None,None,0,None,None),
(5,19,"GtkAdjustment",None,18,None,None,None,0,None,None),
(5,20,"AdwPreferencesGroup",None,12,None,None,None,1,None,None),
(5,21,"AdwComboRow","led-chg-colour",20,None,None,None,0,None,None),
(5,22,"GtkStringList",None,21,None,None,None,0,None,None),
(5,23,"AdwActionRow","led-chg-255",20,None,None,None,1,None,None),
(5,24,"GtkBox",None,23,None,None,None,0,None,None),
(5,25,"GtkScale","led-chg-255-scale",24,None,None,None,0,None,None),
(5,26,"GtkAdjustment",None,25,None,None,None,0,None,None)
</object> </object>
<object_property> <object_property>
(1,1,"GtkWindow","default-height","500",None,None,None,None,None,None,None,None,None), (1,1,"GtkWindow","default-height","500",None,None,None,None,None,None,None,None,None),
@@ -276,62 +262,30 @@
(5,1,"GtkOrientable","orientation","vertical",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-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), (5,2,"GtkWidget","margin-start","10",0,None,None,None,None,None,None,None,None),
(5,3,"AdwPreferencesRow","title","LED Control",0,None,None,None,None,None,None,None,None), (5,3,"AdwPreferencesRow","title","Hardware Status",0,None,None,None,None,None,None,None,None),
(5,3,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None), (5,3,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
(5,4,"AdwPreferencesRow","title","Power Button",0,None,None,None,None,None,None,None,None), (5,4,"AdwActionRow","subtitle","Currently Closed",None,None,None,None,None,None,None,None,None),
(5,6,"GtkRange","adjustment",None,0,None,None,None,7,None,None,None,None), (5,4,"AdwPreferencesRow","title","Chassis Open Count",0,None,None,None,None,None,None,None,None),
(5,6,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None), (5,4,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
(5,6,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None), (5,5,"GtkLabel","label","0",None,None,None,None,None,None,None,None,None),
(5,7,"GtkAdjustment","lower","1.0",0,None,None,None,None,None,None,None,None), (5,6,"AdwActionRow","subtitle","Use Privacy Switch",None,None,None,None,None,None,None,None,None),
(5,7,"GtkAdjustment","page-increment","1.0",0,None,None,None,None,None,None,None,None), (5,6,"AdwPreferencesRow","title","Camera Enabled",0,None,None,None,None,None,None,None,None),
(5,7,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None), (5,6,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
(5,7,"GtkAdjustment","upper","3.0",0,None,None,None,None,None,None,None,None), (5,9,"AdwActionRow","subtitle","Use Privacy Switch",None,None,None,None,None,None,None,None,None),
(5,7,"GtkAdjustment","value","3.0",0,None,None,None,None,None,None,None,None), (5,9,"AdwPreferencesRow","title","Microphone Enabled",0,None,None,None,None,None,None,None,None),
(5,8,"AdwPreferencesRow","title","Keyboard Backlight",0,None,None,None,None,None,None,None,None), (5,9,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None),
(5,10,"GtkRange","adjustment",None,0,None,None,None,11,None,None,None,None), (5,11,"GtkSwitch","active","True",0,None,None,None,None,None,None,None,None),
(5,10,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None), (5,11,"GtkWidget","sensitive","False",0,None,None,None,None,None,None,None,None),
(5,10,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None), (5,12,"AdwPreferencesRow","title","Fingerprint Enabled",None,None,None,None,None,None,None,None,None),
(5,11,"GtkAdjustment","page-increment","16.0",0,None,None,None,None,None,None,None,None), (5,12,"AdwSwitchRow","active","True",None,None,None,None,None,None,None,None,None),
(5,11,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None), (5,13,"GtkBox","homogeneous","True",None,None,None,None,None,None,None,None,None),
(5,11,"GtkAdjustment","upper","255.0",0,None,None,None,None,None,None,None,None), (5,13,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(5,11,"GtkAdjustment","value","255.0",0,None,None,None,None,None,None,None,None), (5,13,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(5,12,"AdwExpanderRow","subtitle","These options break normal functionality",0,None,None,None,None,None,None,None,None), (5,14,"GtkBox","homogeneous","True",0,None,None,None,None,None,None,None,None),
(5,12,"AdwPreferencesRow","title","Advanced Options",0,None,None,None,None,None,None,None,None), (5,14,"GtkWidget","halign","end",0,None,None,None,None,None,None,None,None),
(5,12,"GtkListBoxRow","selectable","False",0,None,None,None,None,None,None,None,None), (5,14,"GtkWidget","valign","center",0,None,None,None,None,None,None,None,None),
(5,13,"AdwPreferencesGroup","description","When using these options, the power LED may not turn off with the computer.",0,None,None,None,None,None,None,None,None), (5,15,"GtkSwitch","active","True",0,None,None,None,None,None,None,None,None),
(5,13,"AdwPreferencesGroup","title","Power Button LED",0,None,None,None,None,None,None,None,None), (5,15,"GtkWidget","sensitive","False",0,None,None,None,None,None,None,None,None)
(5,13,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
(5,13,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
(5,13,"GtkWidget","margin-start","5",0,None,None,None,None,None,None,None,None),
(5,13,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
(5,14,"AdwActionRow","subtitle","Not all devices support colours.",0,None,None,None,None,None,None,None,None),
(5,14,"AdwComboRow","model",None,0,None,None,None,15,None,None,None,None),
(5,14,"AdwComboRow","selected","4",0,None,None,None,None,None,None,None,None),
(5,14,"AdwPreferencesRow","title","Colour",0,None,None,None,None,None,None,None,None),
(5,16,"AdwPreferencesRow","title","Brightness",0,None,None,None,None,None,None,None,None),
(5,18,"GtkRange","adjustment",None,0,None,None,None,19,None,None,None,None),
(5,18,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
(5,18,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
(5,19,"GtkAdjustment","page-increment","16.0",0,None,None,None,None,None,None,None,None),
(5,19,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
(5,19,"GtkAdjustment","upper","255.0",0,None,None,None,None,None,None,None,None),
(5,19,"GtkAdjustment","value","255.0",0,None,None,None,None,None,None,None,None),
(5,20,"AdwPreferencesGroup","description","When using these options, the charging indicator will no longer indicate charging.",0,None,None,None,None,None,None,None,None),
(5,20,"AdwPreferencesGroup","title","Charging Indicators",0,None,None,None,None,None,None,None,None),
(5,20,"GtkWidget","margin-bottom","5",0,None,None,None,None,None,None,None,None),
(5,20,"GtkWidget","margin-end","5",0,None,None,None,None,None,None,None,None),
(5,20,"GtkWidget","margin-start","5",0,None,None,None,None,None,None,None,None),
(5,20,"GtkWidget","margin-top","5",0,None,None,None,None,None,None,None,None),
(5,21,"AdwComboRow","model",None,0,None,None,None,22,None,None,None,None),
(5,21,"AdwPreferencesRow","title","Colour",0,None,None,None,None,None,None,None,None),
(5,23,"AdwPreferencesRow","title","Brightness",0,None,None,None,None,None,None,None,None),
(5,25,"GtkRange","adjustment",None,0,None,None,None,26,None,None,None,None),
(5,25,"GtkRange","round-digits","0",0,None,None,None,None,None,None,None,None),
(5,25,"GtkWidget","hexpand","True",0,None,None,None,None,None,None,None,None),
(5,26,"GtkAdjustment","page-increment","16.0",0,None,None,None,None,None,None,None,None),
(5,26,"GtkAdjustment","step-increment","1.0",0,None,None,None,None,None,None,None,None),
(5,26,"GtkAdjustment","upper","255.0",0,None,None,None,None,None,None,None,None),
(5,26,"GtkAdjustment","value","255.0",0,None,None,None,None,None,None,None,None)
</object_property> </object_property>
<object_data> <object_data>
(1,17,"GtkWidget",1,1,None,None,None,None,None,None), (1,17,"GtkWidget",1,1,None,None,None,None,None,None),
@@ -365,20 +319,6 @@
(4,2,"GtkWidget",2,2,None,1,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",1,1,None,None,None,None,None,None),
(4,31,"GtkWidget",2,2,None,1,None,None,None,None), (4,31,"GtkWidget",2,2,None,1,None,None,None,None),
(5,15,"GtkStringList",1,1,None,None,None,None,None,None),
(5,15,"GtkStringList",2,2,"Red",1,None,0,None,None),
(5,15,"GtkStringList",2,3,"Green",1,None,0,None,None),
(5,15,"GtkStringList",2,4,"Blue",1,None,0,None,None),
(5,15,"GtkStringList",2,5,"Yellow",1,None,0,None,None),
(5,15,"GtkStringList",2,6,"White",1,None,0,None,None),
(5,15,"GtkStringList",2,7,"Amber",1,None,0,None,None),
(5,22,"GtkStringList",1,1,None,None,None,None,None,None),
(5,22,"GtkStringList",2,2,"Red",1,None,0,None,None),
(5,22,"GtkStringList",2,3,"Green",1,None,0,None,None),
(5,22,"GtkStringList",2,4,"Blue",1,None,0,None,None),
(5,22,"GtkStringList",2,5,"Yellow",1,None,0,None,None),
(5,22,"GtkStringList",2,6,"White",1,None,0,None,None),
(5,22,"GtkStringList",2,7,"Amber",1,None,0,None,None),
(5,2,"GtkWidget",1,1,None,None,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)
</object_data> </object_data>

11
yafi.py
View File

@@ -79,6 +79,15 @@ class YAFI(Adw.Application):
self._change_page(builder, battery_root) self._change_page(builder, battery_root)
def _hardware_page(self, builder):
# Load the hardware.ui file
hardware_builder = Gtk.Builder()
hardware_builder.add_from_file("hardware.ui")
# Get the root widget from the hardware.ui file
hardware_root = hardware_builder.get_object("hardware-root")
self._change_page(builder, hardware_root)
def on_activate(self, app): def on_activate(self, app):
# Create a Builder # Create a Builder
@@ -87,7 +96,7 @@ class YAFI(Adw.Application):
self._thermals_page(builder) self._thermals_page(builder)
pages = (("Thermals", self._thermals_page), ("LEDs", self._leds_page), ("Battery", self._battery_page), ("Hardware", self._leds_page), ("About", self._leds_page)) pages = (("Thermals", self._thermals_page), ("LEDs", self._leds_page), ("Battery", self._battery_page), ("Hardware", self._hardware_page), ("About", self._leds_page))
# Build the navbar # Build the navbar
navbar = builder.get_object("navbar") navbar = builder.get_object("navbar")