Add Framework laptop controls and monitoring with hardware-aware discovery

This commit is contained in:
ajp_anton
2026-09-11 10:29:27 +00:00
parent 787231cb03
commit 8719402d97
50 changed files with 3611 additions and 9 deletions
@@ -0,0 +1,18 @@
[Unit]
Description=Framework Laptop Tools saved CPU profiles
After=tuned.service
ConditionPathExists=/etc/framework-laptop-tools/cpu.json
[Service]
Type=notify
ExecStart=/usr/libexec/framework-laptop-tools-cpu
WatchdogSec=15
TimeoutStartSec=20
NoNewPrivileges=yes
ProtectHome=yes
PrivateTmp=yes
ProtectSystem=full
RestrictAddressFamilies=AF_UNIX
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,13 @@
[Unit]
Description=Restore saved Framework fan settings after sleep
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/true
ExecStop=/usr/libexec/framework-laptop-tools-fan --resume
[Install]
WantedBy=sleep.target
@@ -0,0 +1,20 @@
[Unit]
Description=Framework Laptop Tools fan override
After=systemd-modules-load.service
Conflicts=sleep.target
Before=sleep.target
[Service]
Type=notify
ExecStart=/usr/libexec/framework-laptop-tools-fan
ExecStopPost=/usr/libexec/framework-laptop-tools-fan --restore
WatchdogSec=10
TimeoutStopSec=5
NoNewPrivileges=yes
ProtectHome=yes
PrivateTmp=yes
ProtectSystem=full
RestrictAddressFamilies=AF_UNIX
[Install]
WantedBy=multi-user.target
@@ -0,0 +1 @@
{"command": ["/usr/bin/framework-laptop-tools"]}
@@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Framework Laptop Tools
Comment=Monitor and configure supported Framework laptops
Icon=computer-laptop
Exec=framework-laptop-tools
Categories=Qt;KDE;Settings;HardwareSettings;
@@ -0,0 +1,13 @@
[Domain]
Name=Framework Laptop Tools
Icon=computer-laptop
[se.ajpanton.frameworktools.inspect]
Name=Read Framework firmware settings
Description=Read the battery charge limit and power-button brightness
Policy=yes
[se.ajpanton.frameworktools.configure]
Name=Configure Framework laptop hardware
Description=Change Framework laptop lighting, cooling, charging or CPU limits
Policy=auth_admin