1 Commits

Author SHA1 Message Date
Stephen Horvath
52f3372701 Add Windows ZIP build 2025-09-18 15:07:14 +10:00
30 changed files with 195 additions and 290 deletions

2
.github/FUNDING.yml vendored
View File

@@ -1,2 +0,0 @@
github: [Steve-Tech]
thanks_dev: u/gh/steve-tech

View File

@@ -8,7 +8,7 @@ jobs:
flatpak:
runs-on: ubuntu-latest
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-49
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48
options: --privileged
steps:
- uses: actions/checkout@v4

View File

@@ -19,7 +19,7 @@ jobs:
uses: actions/cache@v4
with:
path: C:\gtk
key: Gvsbuild_2025.9.0
key: Gvsbuild_2025.8.0
- name: Download GTK4 Gvsbuild zip
if: steps.cache-gtk4.outputs.cache-hit != 'true'

View File

@@ -11,8 +11,6 @@ You can download the latest release from the [Releases page](https://github.com/
There are builds for Flatpak, and PyInstaller for portable execution on Linux or Windows.
YAFI is also available on [Flathub](https://flathub.org/en/apps/au.stevetech.yafi): `flatpak install flathub au.stevetech.yafi`.
### Linux
To allow YAFI to communicate with the EC, you need to copy the [`60-cros_ec_python.rules`](60-cros_ec_python.rules) file to `/etc/udev/rules.d/` and reload the rules with `sudo udevadm control --reload-rules && sudo udevadm trigger`.
@@ -23,8 +21,6 @@ If your Laptop's BIOS supports Framework's EC driver, there is no need to instal
Otherwise, YAFI supports the [PawnIO](https://pawnio.eu/) driver, and will be automatically used if installed and there is no Framework driver available. YAFI will need to be run as administrator to communicate with the driver.
Currently the PawnIO driver does not support Framework 13 mainboards with 11th, 12th, or 13th Gen Intel CPUs.
## Building
### Flatpak
@@ -92,9 +88,3 @@ This error occurs when `/dev/cros_ec` is not found, and the `CrOS_EC_Python` lib
You can either update your kernel to have a working `cros_ec_dev` driver, or run YAFI as root.
It can also occur if you do not have a CrOS EC, like on non Framework laptops.
## Disclaimer
YAFI is not affiliated with Framework Computer Inc. in any way.
YAFI is licensed under the [GPL-2.0-or-later license](COPYING), and comes with no warranty or guarantee of any kind. Use at your own risk.

View File

@@ -1,14 +1,13 @@
{
"id" : "au.stevetech.yafi",
"runtime" : "org.gnome.Platform",
"runtime-version" : "49",
"runtime-version" : "48",
"sdk" : "org.gnome.Sdk",
"command" : "yafi",
"finish-args" : [
"--device=all",
"--socket=fallback-x11",
"--socket=wayland",
"--share=ipc"
"--socket=wayland"
],
"cleanup" : [
"/include",
@@ -22,7 +21,6 @@
"*.a"
],
"modules" : [
"python3-cros_ec_python.json",
{
"name" : "yafi",
"builddir" : true,
@@ -33,6 +31,18 @@
"path" : "."
}
]
},
{
"name": "cros_ec_python",
"buildsystem": "simple",
"build-options": {
"build-args": [
"--share=network"
]
},
"build-commands": [
"pip3 install --prefix=${FLATPAK_DEST} --no-cache-dir \"cros_ec_python>=0.2.0\""
]
}
]
}

View File

@@ -6,6 +6,6 @@ Comment=Yet Another Framework Interface
Terminal=false
Type=Application
Categories=Utility;
Keywords=Framework;EC;Embedded Controller;
Keywords=GTK;
StartupNotify=true
DBusActivatable=true

View File

@@ -7,23 +7,11 @@
<name>Yet Another Framework Interface</name>
<summary>YAFI is another GUI for the Framework Laptop Embedded Controller</summary>
<description>
<p>It is written in Python with a GTK4 Adwaita theme, and uses the CrOS_EC_Python library to communicate with the EC.</p>
<p>YAFI has the capability for the following features:</p>
<ul>
<li>Fan control and temperature monitoring</li>
<li>LED control</li>
<li>Battery statistics</li>
<li>Battery limiting</li>
<li>Hardware information</li>
</ul>
<p>You will need to install the udev rules to allow non-root access to the EC device. See the README for more information.</p>
<p>YAFI is not affiliated with Framework Computer Inc. in any way.</p>
<p>It is written in Python with a GTK4 Adwaita theme, and uses the `CrOS_EC_Python` library to communicate with the EC.</p>
</description>
<developer id="au.stevetech">
<name translate="no">Stephen Horvath</name>
<name>Stephen Horvath</name>
</developer>
<!-- Required: Should be a link to the upstream homepage for the component -->
@@ -54,86 +42,35 @@
<!-- Applications should set a brand color in both light and dark variants like so -->
<branding>
<color type="primary" scheme_preference="light">#7c916f</color>
<color type="primary" scheme_preference="dark">#282000</color>
<color type="primary" scheme_preference="light">#ff00ff</color>
<color type="primary" scheme_preference="dark">#993d3d</color>
</branding>
<screenshots>
<screenshot type="default">
<image>https://raw.githubusercontent.com/Steve-Tech/YAFI/refs/heads/main/docs/1-thermals.png</image>
<image>https://github.com/Steve-Tech/YAFI/blob/main/docs/1-thermals.png</image>
<caption>Fan Control and Temperature Monitoring</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/Steve-Tech/YAFI/refs/heads/main/docs/2-leds.png</image>
<image>https://github.com/Steve-Tech/YAFI/blob/main/docs/2-leds.png</image>
<caption>LED Control</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/Steve-Tech/YAFI/refs/heads/main/docs/3-battery.png</image>
<image>https://github.com/Steve-Tech/YAFI/blob/main/docs/3-battery.png</image>
<caption>Battery Statistics</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/Steve-Tech/YAFI/refs/heads/main/docs/4-battery-limit.png</image>
<image>https://github.com/Steve-Tech/YAFI/blob/main/docs/4-battery-limit.png</image>
<caption>Battery Limiting</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/Steve-Tech/YAFI/refs/heads/main/docs/4a-battery-ext.png</image>
<image>https://github.com/Steve-Tech/YAFI/blob/main/docs/4a-battery-ext.png</image>
<caption>Battery Extender</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/Steve-Tech/YAFI/refs/heads/main/docs/5-hardware.png</image>
<image>https://github.com/Steve-Tech/YAFI/blob/main/docs/5-hardware.png</image>
<caption>Hardware Info</caption>
</screenshot>
</screenshots>
<releases>
<release version="0.6" date="2025-09-28">
<url type="details">https://github.com/Steve-Tech/YAFI/releases/tag/0.6</url>
<description>
<p>The following changes have been made:</p>
<ul>
<li>YAFI now has a new logo!</li>
<li>The advanced LED settings now detect available LEDs.</li>
<li>The ALS and lid open sensor has been added.</li>
<li>Stuttering has been reduced when opening the about dialog.</li>
</ul>
</description>
</release>
<release version="0.5" date="2025-09-16">
<url type="details">https://github.com/Steve-Tech/YAFI/releases/tag/0.5</url>
<description>
<p>The following bugs have been fixed:</p>
<ul>
<li>LED page crashing when encountering unsupported LEDs.</li>
<li>Scaling issues on Windows.</li>
<li>Minimum charge limiter doesn't work.</li>
</ul>
<p>This release also adds a traceback to the debug info, when there is an error during initialisation.</p>
</description>
</release>
<release version="0.4" date="2025-09-06">
<url type="details">https://github.com/Steve-Tech/YAFI/releases/tag/0.4</url>
<description>
<p>This release also adds a new battery statistics page.</p>
</description>
</release>
<release version="0.3" date="2025-04-13">
<url type="details">https://github.com/Steve-Tech/YAFI/releases/tag/0.3</url>
<description>
<p>YAFI now shows the battery limiter value.</p>
</description>
</release>
<release version="0.2" date="2025-03-24">
<url type="details">https://github.com/Steve-Tech/YAFI/releases/tag/0.2</url>
<description>
<p>This fixes an LED list bug.</p>
</description>
</release>
<release version="0.1" date="2025-03-20">
<url type="details">https://github.com/Steve-Tech/YAFI/releases/tag/0.1</url>
<description>
<p>This is the first release of YAFI.</p>
</description>
</release>
</releases>
</component>

View File

@@ -86,7 +86,7 @@
r="2" /></g><path
id="cog"
style="display:inline;fill:#282000;fill-opacity:1;stroke:none;stroke-width:8.00001;stroke-dasharray:none;paint-order:stroke fill markers"
d="m 47.818359,18 2.542969,2.630859 c -2.531091,-2.605911 -6.371601,-0.420022 -6.429687,-0.386718 l -0.0039,0.002 -7.783203,4.49414 c -0.03804,0.02206 -3.86275,2.252383 -2.888672,5.746094 l 0.002,0.01172 0.0059,0.01563 3.027344,10.585937 C 33.755122,44.16501 31.7167,47.65852 30.302828,51.455131 l -10.679687,2.671875 c -3.549895,0.894185 -3.550781,5.380768 -3.550781,5.380859 v 8.984376 c 0,9.1e-5 0.001,4.493173 3.558593,5.382812 l 10.671875,2.669922 c 1.413872,3.79649 3.452294,7.288523 5.988282,10.353516 l -3.027344,10.585937 -0.0059,0.01758 c -1.79e-4,6.36e-4 1.79e-4,0.0013 0,0.002 -0.9887,3.517182 2.886719,5.755862 2.886719,5.755862 l 7.783203,4.49414 c 0,0 0.0038,0.002 0.0039,0.002 0.02177,0.0125 3.888449,2.23357 6.43164,-0.38867 L 47.818359,110 l 2.548829,-2.63477 7.652343,-7.914058 c 1.945156,0.325909 3.942752,0.494141 5.980469,0.49414 2.037713,0 4.035313,-0.168231 5.980469,-0.49414 l 7.65039,7.912108 0.002,0.002 2.548829,2.63477 -2.544922,-2.63281 c 2.522803,2.60122 6.349136,0.43583 6.43164,0.38867 l 7.78711,-4.49609 c 0,0 3.87542,-2.23868 2.886719,-5.755864 v -0.002 l -0.0059,-0.01758 -3.027344,-10.585937 c 2.536165,-3.064993 4.574289,-6.557026 5.988282,-10.353516 L 108.37109,73.875 c 3.55762,-0.889648 3.55664,-5.382812 3.55664,-5.382812 v -8.984376 c 0,10e-7 9.8e-4,-4.493163 -3.55664,-5.382812 L 97.697266,51.455078 C 96.283273,47.658406 94.245149,44.164957 91.708984,41.099609 l 3.027344,-10.585937 0.0059,-0.01563 0.002,-0.01172 c 0.976385,-3.502191 -2.869106,-5.73477 -2.888672,-5.746094 l -7.783203,-4.49414 c -9.1e-5,-5.2e-5 -0.0038,-0.0019 -0.0039,-0.002 -0.05432,-0.03116 -3.897327,-2.220492 -6.429687,0.386718 L 80.181641,18 l -2.550782,2.636719 -7.65039,7.912109 C 68.035313,28.223033 66.037713,28.054688 64,28.054688 c -2.037717,0 -4.035313,0.168337 -5.980469,0.49414 l -7.65039,-7.912109 z M 64,36 A 27.999999,27.999997 0 0 1 92,64 27.999999,27.999997 0 0 1 64,92 27.999999,27.999997 0 0 1 36,64 27.999999,27.999997 0 0 1 64,36 Z" /><path
d="m 47.818363,18 -15.564456,8.986326 4.037106,14.113285 c -2.535988,3.065348 -4.574404,6.558856 -5.988276,10.355467 l -14.230472,3.558595 v 17.972654 l 14.230472,3.558592 c 1.413872,3.79649 3.452288,7.288524 5.988276,10.353516 L 32.253907,101.01367 47.818363,110 58.019531,99.451172 c 1.945156,0.325909 3.942754,0.494135 5.980471,0.494135 2.037713,0 4.035311,-0.168226 5.980467,-0.494135 L 80.181641,110 95.746094,101.01367 91.708984,86.898435 c 2.536165,-3.064992 4.57429,-6.557026 5.988283,-10.353516 L 111.92774,72.986327 V 55.013673 L 97.697267,51.455078 C 96.283274,47.658406 94.245149,44.164959 91.708984,41.099611 L 95.746094,26.986326 80.181641,18 69.980469,28.548828 c -1.945156,-0.325795 -3.942754,-0.494143 -5.980467,-0.494143 -2.037717,0 -4.035315,0.16834 -5.980471,0.494143 z M 64.000002,36 A 27.999999,27.999997 0 0 1 92,63.999998 27.999999,27.999997 0 0 1 64.000002,91.999996 27.999999,27.999997 0 0 1 36,63.999998 27.999999,27.999997 0 0 1 64.000002,36 Z" /><path
id="Y"
style="fill:none;stroke:#282000;stroke-width:8;stroke-linecap:round;stroke-dasharray:none"
d="M 64.000002,62.00022 50.000001,48.000008 m 13.999997,38.000215 4e-6,-24.000003 m -4e-6,0 14.000001,-14.000212 m -13.999997,38.000215 -4e-6,-24.000003" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -2,9 +2,9 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="96"
height="96"
viewBox="0 0 96 96"
width="128"
height="128"
viewBox="0 0 128 128"
version="1.1"
id="svg1"
xml:space="preserve"
@@ -15,7 +15,7 @@
id="icon"><path
id="cog"
style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:8.00001;stroke-dasharray:none;paint-order:stroke fill markers"
d="m 31.818314,2 2.542969,2.630859 C 31.830192,2.024948 27.989682,4.210837 27.931596,4.244141 l -0.0039,0.002 -7.783203,4.49414 c -0.03804,0.02206 -3.86275,2.252383 -2.888672,5.746094 l 0.002,0.01172 0.0059,0.01563 3.027344,10.585937 c -2.535988,3.065348 -4.57441,6.558858 -5.988282,10.355469 L 3.623096,38.127006 c -3.549895,0.894185 -3.550781,5.380768 -3.550781,5.380859 v 8.984376 c 0,9.1e-5 0.001,4.493173 3.558593,5.382812 l 10.671875,2.669922 c 1.413872,3.79649 3.452294,7.288523 5.988282,10.353516 l -3.027344,10.585937 -0.0059,0.01758 c -1.79e-4,6.36e-4 1.79e-4,0.0013 0,0.002 -0.9887,3.517182 2.886719,5.755862 2.886719,5.755862 l 7.783203,4.49414 c 0,0 0.0038,0.002 0.0039,0.002 0.02177,0.0125 3.888449,2.23357 6.43164,-0.38867 L 31.818314,94 l 2.548829,-2.63477 7.652343,-7.914058 c 1.945156,0.325909 3.942752,0.494141 5.980469,0.49414 2.037713,0 4.035313,-0.168231 5.980469,-0.49414 l 7.65039,7.912108 0.002,0.002 2.548829,2.63477 -2.544922,-2.63281 c 2.522803,2.60122 6.349136,0.43583 6.43164,0.38867 l 7.78711,-4.49609 c 0,0 3.87542,-2.23868 2.886719,-5.755864 v -0.002 l -0.0059,-0.01758 -3.027344,-10.585937 c 2.536165,-3.064993 4.574289,-6.557026 5.988282,-10.353516 L 92.371045,57.875 c 3.55762,-0.889648 3.55664,-5.382812 3.55664,-5.382812 v -8.984376 c 0,10e-7 9.8e-4,-4.493163 -3.55664,-5.382812 L 81.697221,35.455078 C 80.283228,31.658406 78.245104,28.164957 75.708939,25.099609 l 3.027344,-10.585937 0.0059,-0.01563 0.002,-0.01172 c 0.976385,-3.502191 -2.869106,-5.73477 -2.888672,-5.746094 l -7.783203,-4.49414 c -9.1e-5,-5.2e-5 -0.0038,-0.0019 -0.0039,-0.002 -0.05432,-0.03116 -3.897327,-2.220492 -6.429687,0.386718 L 64.181596,2 l -2.550782,2.636719 -7.65039,7.912109 c -1.945156,-0.325795 -3.942756,-0.49414 -5.980469,-0.49414 -2.037717,0 -4.035313,0.168337 -5.980469,0.49414 l -7.65039,-7.912109 z m 16.181641,18 a 27.999999,27.999997 0 0 1 28,28 27.999999,27.999997 0 0 1 -28,28 27.999999,27.999997 0 0 1 -28,-28 27.999999,27.999997 0 0 1 28,-28 z" /><path
d="m 47.818363,18 -15.564456,8.986326 4.037106,14.113285 c -2.535988,3.065348 -4.574404,6.558856 -5.988276,10.355467 l -14.230472,3.558595 v 17.972654 l 14.230472,3.558592 c 1.413872,3.79649 3.452288,7.288524 5.988276,10.353516 L 32.253907,101.01367 47.818363,110 58.019531,99.451172 c 1.945156,0.325909 3.942754,0.494135 5.980471,0.494135 2.037713,0 4.035311,-0.168226 5.980467,-0.494135 L 80.181641,110 95.746094,101.01367 91.708984,86.898435 c 2.536165,-3.064992 4.57429,-6.557026 5.988283,-10.353516 L 111.92774,72.986327 V 55.013673 L 97.697267,51.455078 C 96.283274,47.658406 94.245149,44.164959 91.708984,41.099611 L 95.746094,26.986326 80.181641,18 69.980469,28.548828 c -1.945156,-0.325795 -3.942754,-0.494143 -5.980467,-0.494143 -2.037717,0 -4.035315,0.16834 -5.980471,0.494143 z M 64.000002,36 A 27.999999,27.999997 0 0 1 92,63.999998 27.999999,27.999997 0 0 1 64.000002,91.999996 27.999999,27.999997 0 0 1 36,63.999998 27.999999,27.999997 0 0 1 64.000002,36 Z" /><path
id="Y"
style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-dasharray:none"
d="M 48.000002,46.00022 34.000001,32.000008 m 13.999997,38.000215 4e-6,-24.000003 m -4e-6,0 14.000001,-14.000212 m -13.999997,38.000215 -4e-6,-24.000003" /></g></g></svg>
d="M 64.000002,62.00022 50.000001,48.000008 m 13.999997,38.000215 4e-6,-24.000003 m -4e-6,0 14.000001,-14.000212 m -13.999997,38.000215 -4e-6,-24.000003" /></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

@@ -1,3 +0,0 @@
{
"only-arches": ["x86_64"]
}

View File

@@ -26,24 +26,21 @@
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="5.6568542"
inkscape:cx="38.802485"
inkscape:cy="83.261824"
inkscape:zoom="2"
inkscape:cx="37.25"
inkscape:cy="109"
inkscape:window-width="1876"
inkscape:window-height="1025"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="icon" /><defs
inkscape:current-layer="layer1" /><defs
id="defs1" /><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><g
id="icon"
inkscape:label="icon"
inkscape:export-filename="icon.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"><g
inkscape:label="icon"><g
id="chip"
inkscape:label="chip"
style="stroke-width:0;stroke-dasharray:none"><path
@@ -153,8 +150,8 @@
inkscape:label="dot" /></g><path
id="cog"
style="display:inline;fill:#282000;fill-opacity:1;stroke:none;stroke-width:8.00001;stroke-dasharray:none;paint-order:stroke fill markers"
inkscape:label="cog"
d="M 47.818359 18 L 50.361328 20.630859 C 47.830237 18.024948 43.989727 20.210837 43.931641 20.244141 L 43.927734 20.246094 L 36.144531 24.740234 C 36.106488 24.762299 32.281781 26.992617 33.255859 30.486328 L 33.257812 30.498047 L 33.263672 30.513672 L 36.291016 41.099609 C 33.755028 44.164957 31.716606 47.658467 30.302734 51.455078 L 19.623047 54.126953 C 16.073152 55.021138 16.072266 59.507721 16.072266 59.507812 L 16.072266 68.492188 C 16.072266 68.492279 16.073278 72.985361 19.630859 73.875 L 30.302734 76.544922 C 31.716606 80.341412 33.755028 83.833445 36.291016 86.898438 L 33.263672 97.484375 L 33.257812 97.501953 C 33.257633 97.502589 33.257991 97.50327 33.257812 97.503906 C 32.269112 101.02109 36.144531 103.25977 36.144531 103.25977 L 43.927734 107.75391 C 43.927734 107.75391 43.931579 107.75582 43.931641 107.75586 C 43.953413 107.7684 47.82009 109.98943 50.363281 107.36719 L 47.818359 110 L 50.367188 107.36523 L 58.019531 99.451172 C 59.964687 99.777081 61.962283 99.945313 64 99.945312 C 66.037713 99.945312 68.035313 99.777081 69.980469 99.451172 L 77.630859 107.36328 L 77.632812 107.36523 L 80.181641 110 L 77.636719 107.36719 C 80.159522 109.96841 83.985855 107.80302 84.068359 107.75586 L 91.855469 103.25977 C 91.855469 103.25977 95.730889 101.02109 94.742188 97.503906 L 94.742188 97.501953 L 94.736328 97.484375 L 91.708984 86.898438 C 94.245149 83.833445 96.283273 80.341412 97.697266 76.544922 L 108.37109 73.875 C 111.92871 72.985352 111.92773 68.492188 111.92773 68.492188 L 111.92773 59.507812 C 111.92773 59.507813 111.92871 55.014649 108.37109 54.125 L 97.697266 51.455078 C 96.283273 47.658406 94.245149 44.164957 91.708984 41.099609 L 94.736328 30.513672 L 94.742188 30.498047 L 94.744141 30.486328 C 95.720526 26.984137 91.875035 24.751558 91.855469 24.740234 L 84.072266 20.246094 C 84.072175 20.246042 84.068504 20.244224 84.068359 20.244141 C 84.01404 20.212982 80.171032 18.023649 77.638672 20.630859 L 80.181641 18 L 77.630859 20.636719 L 69.980469 28.548828 C 68.035313 28.223033 66.037713 28.054688 64 28.054688 C 61.962283 28.054688 59.964687 28.223025 58.019531 28.548828 L 50.369141 20.636719 L 47.818359 18 z M 64 36 A 27.999999 27.999997 0 0 1 92 64 A 27.999999 27.999997 0 0 1 64 92 A 27.999999 27.999997 0 0 1 36 64 A 27.999999 27.999997 0 0 1 64 36 z " /><path
d="m 47.818363,18 -15.564456,8.986326 4.037106,14.113285 c -2.535988,3.065348 -4.574404,6.558856 -5.988276,10.355467 l -14.230472,3.558595 v 17.972654 l 14.230472,3.558592 c 1.413872,3.79649 3.452288,7.288524 5.988276,10.353516 L 32.253907,101.01367 47.818363,110 58.019531,99.451172 c 1.945156,0.325909 3.942754,0.494135 5.980471,0.494135 2.037713,0 4.035311,-0.168226 5.980467,-0.494135 L 80.181641,110 95.746094,101.01367 91.708984,86.898435 c 2.536165,-3.064992 4.57429,-6.557026 5.988283,-10.353516 L 111.92774,72.986327 V 55.013673 L 97.697267,51.455078 C 96.283274,47.658406 94.245149,44.164959 91.708984,41.099611 L 95.746094,26.986326 80.181641,18 69.980469,28.548828 c -1.945156,-0.325795 -3.942754,-0.494143 -5.980467,-0.494143 -2.037717,0 -4.035315,0.16834 -5.980471,0.494143 z M 64.000002,36 A 27.999999,27.999997 0 0 1 92,63.999998 27.999999,27.999997 0 0 1 64.000002,91.999996 27.999999,27.999997 0 0 1 36,63.999998 27.999999,27.999997 0 0 1 64.000002,36 Z"
inkscape:label="cog" /><path
id="Y"
style="fill:none;stroke:#282000;stroke-width:8;stroke-linecap:round;stroke-dasharray:none"
d="M 64.000002,62.00022 50.000001,48.000008 m 13.999997,38.000215 4e-6,-24.000003 m -4e-6,0 14.000001,-14.000212 m -13.999997,38.000215 -4e-6,-24.000003"

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -1,5 +1,5 @@
project('yafi',
version: '0.6',
version: '0.5',
meson_version: '>= 1.0.0',
default_options: [ 'warning_level=2', 'werror=false', ],
)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -8,7 +8,7 @@
version="1.1"
id="svg1"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="splash.svg"
sodipodi:docname="spash.svg"
inkscape:export-filename="splash.png"
inkscape:export-xdpi="180"
inkscape:export-ydpi="180"
@@ -27,11 +27,11 @@
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showguides="false"
inkscape:zoom="2.8284271"
inkscape:cx="118.26361"
inkscape:cy="131.87541"
inkscape:window-width="1876"
inkscape:window-height="1025"
inkscape:zoom="2"
inkscape:cx="36.25"
inkscape:cy="178.75"
inkscape:window-width="1920"
inkscape:window-height="1052"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
@@ -127,79 +127,79 @@
x="0"
y="0" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 0,117.875 H 23.874996 L 43.75,97.999992 H 76"
id="path4"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 0,97.875016 H 23.874996 L 43.75,78.000008 H 76"
id="path4-4"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 0,77.875008 H 23.874996 L 43.75,58 H 76"
id="path4-9"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 0,57.875008 H 23.874996 L 43.75,38 H 76"
id="path4-2"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 97.999999,0 V 16.000001"
id="path5"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 118,0 V 16.000001"
id="path5-8"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 138.00001,0 V 16.000001"
id="path5-4"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 157.99999,0 V 16.000001"
id="path5-89"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 256,117.87502 H 232.125 L 212.25,98.000008 H 180"
id="path4-1"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 255.625,97.875035 H 231.75 L 211.875,78.000023 H 180"
id="path4-1-5"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 255.625,77.875012 H 231.75 L 211.875,58 H 180"
id="path4-1-6"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 255.625,57.875012 H 231.75 L 211.875,38 H 180"
id="path4-1-63"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="m 192.16536,142.16357 -9.15729,-9.15728 H 163.00629 L 158.00001,128 l 0,-8"
id="path9" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="m 147.1875,143.0625 v -5.875 L 138.00001,128 l 0,-8"
id="path10" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="M 119.98796,141.81833 118,139.83037 V 128 120"
id="path11" />
<path
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"
style="fill:none;stroke:#ffcc00;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;paint-order:normal"
d="m 101,142.125 -3.000001,-3 V 128 120"
id="path12" />
<text
@@ -232,7 +232,7 @@
<g
id="icon"
inkscape:label="icon"
transform="translate(63.999984,4)">
transform="translate(63.999998,4)">
<g
id="chip"
inkscape:label="chip"
@@ -364,8 +364,8 @@
<path
id="cog"
style="display:inline;fill:#282000;fill-opacity:1;stroke:none;stroke-width:8.00001;stroke-dasharray:none;paint-order:stroke fill markers"
inkscape:label="cog"
d="m 47.818359,18 2.542969,2.630859 c -2.531091,-2.605911 -6.371601,-0.420022 -6.429687,-0.386718 l -0.0039,0.002 -7.783203,4.49414 c -0.03804,0.02206 -3.86275,2.252383 -2.888672,5.746094 l 0.002,0.01172 0.0059,0.01563 3.027344,10.585937 C 33.755122,44.16501 31.7167,47.65852 30.302828,51.455131 l -10.679687,2.671875 c -3.549895,0.894185 -3.550781,5.380768 -3.550781,5.380859 v 8.984376 c 0,9.1e-5 0.001,4.493173 3.558593,5.382812 l 10.671875,2.669922 c 1.413872,3.79649 3.452294,7.288523 5.988282,10.353516 l -3.027344,10.585937 -0.0059,0.01758 c -1.79e-4,6.36e-4 1.79e-4,0.0013 0,0.002 -0.9887,3.517182 2.886719,5.755862 2.886719,5.755862 l 7.783203,4.49414 c 0,0 0.0038,0.002 0.0039,0.002 0.02177,0.0125 3.888449,2.23357 6.43164,-0.38867 L 47.818359,110 l 2.548829,-2.63477 7.652343,-7.914058 c 1.945156,0.325909 3.942752,0.494141 5.980469,0.49414 2.037713,0 4.035313,-0.168231 5.980469,-0.49414 l 7.65039,7.912108 0.002,0.002 2.548829,2.63477 -2.544922,-2.63281 c 2.522803,2.60122 6.349136,0.43583 6.43164,0.38867 l 7.78711,-4.49609 c 0,0 3.87542,-2.23868 2.886719,-5.755864 v -0.002 l -0.0059,-0.01758 -3.027344,-10.585937 c 2.536165,-3.064993 4.574289,-6.557026 5.988282,-10.353516 L 108.37109,73.875 c 3.55762,-0.889648 3.55664,-5.382812 3.55664,-5.382812 v -8.984376 c 0,10e-7 9.8e-4,-4.493163 -3.55664,-5.382812 L 97.697266,51.455078 C 96.283273,47.658406 94.245149,44.164957 91.708984,41.099609 l 3.027344,-10.585937 0.0059,-0.01563 0.002,-0.01172 c 0.976385,-3.502191 -2.869106,-5.73477 -2.888672,-5.746094 l -7.783203,-4.49414 c -9.1e-5,-5.2e-5 -0.0038,-0.0019 -0.0039,-0.002 -0.05432,-0.03116 -3.897327,-2.220492 -6.429687,0.386718 L 80.181641,18 l -2.550782,2.636719 -7.65039,7.912109 C 68.035313,28.223033 66.037713,28.054688 64,28.054688 c -2.037717,0 -4.035313,0.168337 -5.980469,0.49414 l -7.65039,-7.912109 z M 64,36 A 27.999999,27.999997 0 0 1 92,64 27.999999,27.999997 0 0 1 64,92 27.999999,27.999997 0 0 1 36,64 27.999999,27.999997 0 0 1 64,36 Z" />
d="m 47.818363,18 -15.564456,8.986326 4.037106,14.113285 c -2.535988,3.065348 -4.574404,6.558856 -5.988276,10.355467 l -14.230472,3.558595 v 17.972654 l 14.230472,3.558592 c 1.413872,3.79649 3.452288,7.288524 5.988276,10.353516 L 32.253907,101.01367 47.818363,110 58.019531,99.451172 c 1.945156,0.325909 3.942754,0.494135 5.980471,0.494135 2.037713,0 4.035311,-0.168226 5.980467,-0.494135 L 80.181641,110 95.746094,101.01367 91.708984,86.898435 c 2.536165,-3.064992 4.57429,-6.557026 5.988283,-10.353516 L 111.92774,72.986327 V 55.013673 L 97.697267,51.455078 C 96.283274,47.658406 94.245149,44.164959 91.708984,41.099611 L 95.746094,26.986326 80.181641,18 69.980469,28.548828 c -1.945156,-0.325795 -3.942754,-0.494143 -5.980467,-0.494143 -2.037717,0 -4.035315,0.16834 -5.980471,0.494143 z M 64.000002,36 A 27.999999,27.999997 0 0 1 92,63.999998 27.999999,27.999997 0 0 1 64.000002,91.999996 27.999999,27.999997 0 0 1 36,63.999998 27.999999,27.999997 0 0 1 64.000002,36 Z"
inkscape:label="cog" />
<path
id="Y"
style="fill:none;stroke:#282000;stroke-width:8;stroke-linecap:round;stroke-dasharray:none"

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

@@ -1,6 +1,6 @@
[project]
name = "yafi"
version = "0.6"
version = "0.5"
authors = [
{ name="Steve-Tech" }
]

View File

@@ -1,14 +0,0 @@
{
"name": "python3-cros_ec_python",
"buildsystem": "simple",
"build-commands": [
"pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"cros_ec_python\" --no-build-isolation"
],
"sources": [
{
"type": "file",
"url": "https://files.pythonhosted.org/packages/33/11/c23a7acaa333589921a2f524517eb719dfb72628153ae22fcdf2e9052ac6/cros_ec_python-0.2.0-py3-none-any.whl",
"sha256": "d38e493fbcaf23bc4b613d1342a036cecc6506284afc74f37013a3eac85a01b9"
}
]
}

View File

@@ -27,24 +27,17 @@ import cros_ec_python.exceptions as ec_exceptions
class HardwarePage(Gtk.Box):
__gtype_name__ = 'HardwarePage'
hw_als = Gtk.Template.Child()
hw_als_label = Gtk.Template.Child()
hw_chassis = Gtk.Template.Child()
hw_chassis_label = Gtk.Template.Child()
hw_fp_pwr = Gtk.Template.Child()
hw_fp_pwr_en = Gtk.Template.Child()
hw_fp_pwr_dis = Gtk.Template.Child()
hw_priv_cam = Gtk.Template.Child()
hw_priv_cam_sw = Gtk.Template.Child()
hw_priv_mic = Gtk.Template.Child()
hw_priv_mic_sw = Gtk.Template.Child()
hw_lid_open = Gtk.Template.Child()
hw_lid_open_sw = Gtk.Template.Child()
hw_pwr_btn = Gtk.Template.Child()
hw_pwr_btn_sw = Gtk.Template.Child()
hw_fp_pwr = Gtk.Template.Child()
hw_fp_pwr_en = Gtk.Template.Child()
hw_fp_pwr_dis = Gtk.Template.Child()
def __init__(self, **kwargs):
super().__init__(**kwargs)
@@ -73,13 +66,7 @@ class HardwarePage(Gtk.Box):
GLib.timeout_add_seconds(1, self._update_hardware, app)
def _update_hardware(self, app):
# Memmap (ALS and Lid Open)
als = ec_commands.memmap.get_als(app.cros_ec)
self.hw_als_label.set_label(f"{als[0]} lux" if als[0] != 65535 else "MAX")
switches = ec_commands.memmap.get_switches(app.cros_ec)
self.hw_lid_open_sw.set_active(switches["lid_open"])
self.hw_pwr_btn_sw.set_active(switches["power_button_pressed"])
success = False
# Chassis
if not ec_commands.framework_laptop.EC_CMD_CHASSIS_INTRUSION in app.no_support:
try:
@@ -95,6 +82,8 @@ class HardwarePage(Gtk.Box):
self.hw_chassis.set_subtitle(
"Currently " + ("Open" if ec_chassis_open else "Closed")
)
success = True
except ec_exceptions.ECError as e:
if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_COMMAND:
app.no_support.append(
@@ -115,6 +104,8 @@ class HardwarePage(Gtk.Box):
)
self.hw_priv_cam_sw.set_active(ec_privacy["camera"])
self.hw_priv_mic_sw.set_active(ec_privacy["microphone"])
success = True
except ec_exceptions.ECError as e:
if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_COMMAND:
app.no_support.append(
@@ -125,4 +116,4 @@ class HardwarePage(Gtk.Box):
else:
raise e
return app.current_page == 4
return app.current_page == 4 and success

View File

@@ -27,8 +27,6 @@ import cros_ec_python.exceptions as ec_exceptions
class LedsPage(Gtk.Box):
__gtype_name__ = 'LedsPage'
first_run = True
led_pwr = Gtk.Template.Child()
led_pwr_scale = Gtk.Template.Child()
@@ -37,30 +35,27 @@ class LedsPage(Gtk.Box):
led_advanced = Gtk.Template.Child()
led_pwr_colour = Gtk.Template.Child()
led_chg_colour = Gtk.Template.Child()
def __init__(self, **kwargs):
super().__init__(**kwargs)
def setup(self, app):
# Power LED
try:
def handle_led_pwr(scale):
value = int(abs(scale.get_value() - 2))
ec_commands.framework_laptop.set_fp_led_level(app.cros_ec, value)
self.led_pwr.set_subtitle(["High", "Medium", "Low"][value])
try:
current_fp_level = ec_commands.framework_laptop.get_fp_led_level(
app.cros_ec
).value
self.led_pwr_scale.set_value(abs(current_fp_level - 2))
self.led_pwr.set_subtitle(["High", "Medium", "Low"][current_fp_level])
except ValueError:
# LED isn't a normal value
current_fp_level = ec_commands.framework_laptop.get_fp_led_level_int(
app.cros_ec
)
self.led_pwr.set_subtitle(f"Custom ({current_fp_level}%)")
current_fp_level = ec_commands.framework_laptop.get_fp_led_level(
app.cros_ec
).value
self.led_pwr_scale.set_value(abs(current_fp_level - 2))
self.led_pwr.set_subtitle(["High", "Medium", "Low"][current_fp_level])
self.led_pwr_scale.connect("value-changed", handle_led_pwr)
except ec_exceptions.ECError as e:
if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_COMMAND:
@@ -89,38 +84,31 @@ class LedsPage(Gtk.Box):
self.led_kbd.set_visible(False)
# Advanced options
if (
ec_commands.general.get_cmd_versions(
app.cros_ec, ec_commands.leds.EC_CMD_LED_CONTROL
)
and self.first_run
if ec_commands.general.get_cmd_versions(
app.cros_ec, ec_commands.leds.EC_CMD_LED_CONTROL
):
# Advanced: Power LED
led_pwr_colour_strings = self.led_pwr_colour.get_model()
all_colours = ["Red", "Green", "Blue", "Yellow", "White", "Amber"]
led_names = {
ec_commands.leds.EcLedId.EC_LED_ID_BATTERY_LED: "Battery LED",
ec_commands.leds.EcLedId.EC_LED_ID_POWER_LED: "Power LED",
ec_commands.leds.EcLedId.EC_LED_ID_ADAPTER_LED: "Adapter LED",
ec_commands.leds.EcLedId.EC_LED_ID_LEFT_LED: "Left LED",
ec_commands.leds.EcLedId.EC_LED_ID_RIGHT_LED: "Right LED",
ec_commands.leds.EcLedId.EC_LED_ID_RECOVERY_HW_REINIT_LED: "Recovery LED",
ec_commands.leds.EcLedId.EC_LED_ID_SYSRQ_DEBUG_LED: "SysRq LED",
}
leds = {}
for i in range(ec_commands.leds.EcLedId.EC_LED_ID_COUNT.value):
try:
led_id = ec_commands.leds.EcLedId(i)
leds[led_id] = ec_commands.leds.led_control_get_max_values(
def add_colours(strings, led_id):
# Auto and Off should already be present
if strings.get_n_items() <= 2:
supported_colours = ec_commands.leds.led_control_get_max_values(
app.cros_ec, led_id
)
except ec_exceptions.ECError as e:
if e.ec_status == ec_exceptions.EcStatus.EC_RES_INVALID_PARAM:
continue
else:
raise e
for i, colour in enumerate(all_colours):
if supported_colours[i]:
strings.append(colour)
# Power LED does not support Blue, even though Intel models think they do
leds[ec_commands.leds.EcLedId.EC_LED_ID_POWER_LED][2] = 0
try:
add_colours(
led_pwr_colour_strings, ec_commands.leds.EcLedId.EC_LED_ID_POWER_LED
)
except ec_exceptions.ECError as e:
self.led_pwr_colour.set_sensitive(False)
def handle_led_colour(combobox, led_id):
colour = combobox.get_selected() - 2
@@ -144,20 +132,30 @@ class LedsPage(Gtk.Box):
100,
ec_commands.leds.EcLedColors(colour_idx),
)
for led_id, supported_colours in leds.items():
if any(supported_colours):
combo = Adw.ComboRow(title=led_names[led_id])
model = Gtk.StringList.new(["Auto", "Off"])
for i, colour in enumerate(all_colours):
if supported_colours[i]:
model.append(colour)
combo.set_model(model)
combo.connect(
"notify::selected",
lambda combobox, _, led_id=led_id: handle_led_colour(
combobox, led_id
),
)
self.led_advanced.add_row(combo)
self.first_run = False
self.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_chg_colour_strings = self.led_chg_colour.get_model()
try:
add_colours(
led_chg_colour_strings,
ec_commands.leds.EcLedId.EC_LED_ID_BATTERY_LED,
)
except ec_exceptions.ECError as e:
self.led_chg_colour.set_sensitive(False)
self.led_chg_colour.connect(
"notify::selected",
lambda combo, _: handle_led_colour(
combo, ec_commands.leds.EcLedId.EC_LED_ID_BATTERY_LED
),
)
else:
self.led_advanced.set_visible(False)

View File

@@ -105,7 +105,7 @@ class YafiApplication(Adw.Application):
("LEDs", LedsPage()),
("Battery", BatteryPage()),
("Battery Limiter", BatteryLimiterPage()),
("Sensors", HardwarePage()),
("Hardware", HardwarePage()),
("About", None),
)
@@ -135,15 +135,14 @@ class YafiApplication(Adw.Application):
about = Adw.AboutDialog(
application_icon="au.stevetech.yafi",
application_name="Yet Another Framework Interface",
comments="YAFI is another GUI for the Framework Laptop Embedded Controller.\n\n"
+ "It is written in Python with a GTK4 Adwaita theme, and uses the CrOS_EC_Python library to communicate with the EC.\n\n"
+ "YAFI is not affiliated with Framework Computer Inc. in any way.",
comments="YAFI is another GUI for the Framework Laptop Embedded Controller.\n"
+ "It is written in Python with a GTK3 theme, and uses the `CrOS_EC_Python` library to communicate with the EC.",
copyright="© 2025 Stephen Horvath",
developer_name="Stephen Horvath",
developers=["Stephen Horvath https://github.com/Steve-Tech"],
issue_url="https://github.com/Steve-Tech/YAFI/issues",
license_type=Gtk.License.GPL_2_0,
version="0.6",
version="0.5",
website="https://github.com/Steve-Tech/YAFI",
)
about.add_acknowledgement_section(None, ["Framework Computer Inc. https://frame.work/"])

View File

@@ -2,7 +2,7 @@
<!-- Created with Cambalache 0.96.1 -->
<interface>
<!-- interface-name hardware.ui -->
<!-- interface-description The Sensors page for YAFI -->
<!-- interface-description The Hardware page for YAFI -->
<!-- interface-copyright Steve-Tech -->
<requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.0"/>
@@ -15,15 +15,7 @@
<child>
<object class="AdwActionRow">
<property name="selectable">False</property>
<property name="title">Sensors</property>
</object>
</child>
<child>
<object class="AdwActionRow" id="hw_als">
<property name="title">Ambient Light Sensor</property>
<child>
<object class="GtkLabel" id="hw_als_label"/>
</child>
<property name="title">Hardware Status</property>
</object>
</child>
<child>
@@ -34,30 +26,6 @@
</child>
</object>
</child>
<child>
<object class="AdwActionRow" id="hw_fp_pwr">
<property name="title">Fingerprint</property>
<property name="visible">False</property>
<child>
<object class="GtkBox">
<property name="halign">end</property>
<property name="homogeneous">True</property>
<property name="spacing">5</property>
<property name="valign">center</property>
<child>
<object class="GtkButton" id="hw_fp_pwr_en">
<property name="label">Enable</property>
</object>
</child>
<child>
<object class="GtkButton" id="hw_fp_pwr_dis">
<property name="label">Disable</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow" id="hw_priv_cam">
<property name="subtitle">Use Privacy Switch</property>
@@ -97,35 +65,23 @@
</object>
</child>
<child>
<object class="AdwActionRow" id="hw_lid_open">
<property name="title">Lid Open</property>
<object class="AdwActionRow" id="hw_fp_pwr">
<property name="title">Fingerprint</property>
<property name="visible">False</property>
<child>
<object class="GtkBox">
<property name="halign">end</property>
<property name="homogeneous">True</property>
<property name="spacing">5</property>
<property name="valign">center</property>
<child>
<object class="GtkSwitch" id="hw_lid_open_sw">
<property name="active">True</property>
<property name="sensitive">False</property>
<object class="GtkButton" id="hw_fp_pwr_en">
<property name="label">Enable</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow" id="hw_pwr_btn">
<property name="title">Power Button Pressed</property>
<child>
<object class="GtkBox">
<property name="halign">end</property>
<property name="homogeneous">True</property>
<property name="valign">center</property>
<child>
<object class="GtkSwitch" id="hw_pwr_btn_sw">
<property name="active">True</property>
<property name="sensitive">False</property>
<object class="GtkButton" id="hw_fp_pwr_dis">
<property name="label">Disable</property>
</object>
</child>
</object>

View File

@@ -69,6 +69,52 @@
<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">When using these options, the power LED may not turn off with the computer.</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">Power Button LED</property>
<child>
<object class="AdwComboRow" id="led_pwr_colour">
<property name="model">
<object class="GtkStringList">
<items>
<item>Auto</item>
<item>Off</item>
</items>
</object>
</property>
<property name="title">Colour</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup">
<property name="description">When using these options, the charging indicator will no longer indicate charging.</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">Charging Indicators</property>
<child>
<object class="AdwComboRow" id="led_chg_colour">
<property name="model">
<object class="GtkStringList">
<items>
<item>Auto</item>
<item>Off</item>
</items>
</object>
</property>
<property name="title">Colour</property>
</object>
</child>
</object>
</child>
</object>
</child>
<style>

View File

@@ -4,8 +4,8 @@
<cambalache-project version="0.96.0" target_tk="gtk-4.0">
<ui template-class="YafiWindow" filename="yafi.ui" sha256="9d1b2f030e4a816eb0b1aa53ae1d80c5b50a2f4646e32c7a64803eb6f6ed3947"/>
<ui template-class="ThermalsPage" filename="thermals.ui" sha256="e301e65649005315ff60d250b60a47f6250ad6feb27db104051fcf0143cde173"/>
<ui template-class="LedsPage" filename="leds.ui" sha256="abc3ee759974a5c92feb48cc258dbe7271d0402facf71fd5e779f2bb1a277e16"/>
<ui template-class="LedsPage" filename="leds.ui" sha256="0350d22d570de039d63602ba40925f17fff6680fd5909d2ebf19600f351eb0f2"/>
<ui template-class="BatteryLimiterPage" filename="battery-limiter.ui" sha256="b5d41b19cb1fb7ca5b4bcfae43244e54111f5e8d8c51d95448d6a92b5185d2c4"/>
<ui template-class="HardwarePage" filename="hardware.ui" sha256="37ea282198d9f60435f80e4adf8256cd2249e590dcad4b63af634d828673f1bf"/>
<ui template-class="HardwarePage" filename="hardware.ui" sha256="f4deec4e38e683fde97656802dbfb2a638ab46a0e36af5c9a37f277f49e2aabb"/>
<ui template-class="BatteryPage" filename="battery.ui" sha256="d495280cb543a26cdee1c2939e5af980d8d3878c326e360eeab4f05195cdbdc9"/>
</cambalache-project>

Binary file not shown.