Plasmoide CPU Frequency Control: governor, limiti, EPP, boost e profili per task
Widget KDE Plasma 6 (org.enne2.cpufreq) per pilotare il profilo energetico della CPU: governor, limiti min/max, energy_performance_preference, boost/turbo, quattro profili pronti (Silenzioso, Risparmio, Bilanciato, Performance) e task con profilo dedicato che ripristina lo stato precedente alla fine del comando. Privilegi separati: il widget resta non privilegiato e l'unica operazione root passa da un helper a interfaccia ristretta in /usr/local/libexec/enne2-cpufreq/ (comandi a elenco chiuso, argomenti validati su sysfs, rilettura di verifica), invocato via pkexec con l'azione polkit dedicata org.enne2.cpufreq.set. La regola in /etc/polkit-1/rules.d/ concede il consenso senza prompt a utenti locali in sessione attiva nel gruppo wheel; senza la regola la policy chiede la password. Dettagli verificati su frigate (Plasma 6.7.5, kernel 7.2, amd-pstate-epp): - con boost disattivato cpuinfo_max_freq scende alla frequenza nominale, quindi il tetto hardware si legge da amd_pstate_max_freq e i profili applicano il boost prima dei limiti; - scrittura dei limiti in ordine sicuro (mai min > max intermedio); - baseline e contatore di riferimento per i task paralleli; - syncControls protetto da uiReady e try/catch: un ReferenceError su un id della rappresentazione non deve interrompere l'aggiornamento dello stato; - implicitWidth/Height costanti, altrimenti il containment riduce il widget a 68x68. Include install.sh/uninstall.sh (widget, backend, dry-run), README con modello di sicurezza e diagnostica, screenshot docs/widget.png. Licenza MIT.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
/* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* enne2-cpufreq — consenso senza prompt per l'helper del plasmoide.
|
||||
*
|
||||
* Il permesso riguarda UNA sola azione (org.enne2.cpufreq.set) e quindi un solo
|
||||
* programma: /usr/local/libexec/enne2-cpufreq/cpufreq-helper, con gli argomenti
|
||||
* validati al suo interno. Condizioni: utente locale, sessione attiva, gruppo
|
||||
* wheel. Senza questa regola la .policy chiede la password a ogni modifica
|
||||
* (allow_active=auth_admin_keep): basta eliminare questo file per tornare al
|
||||
* comportamento con prompt.
|
||||
*/
|
||||
polkit.addRule(function (action, subject) {
|
||||
if (action.id !== "org.enne2.cpufreq.set") {
|
||||
return;
|
||||
}
|
||||
if (!subject.local || !subject.active) {
|
||||
return;
|
||||
}
|
||||
if (subject.isInGroup("wheel")) {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE policyconfig PUBLIC
|
||||
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
|
||||
<!--
|
||||
org.enne2.cpufreq.set — azione polkit dedicata all'helper privilegiato del
|
||||
plasmoide CPU Frequency Control (org.enne2.cpufreq).
|
||||
|
||||
L'annotazione exec.path fa sì che pkexec usi QUESTA azione (e non la generica
|
||||
org.freedesktop.policykit.exec) solo quando esegue l'helper indicato: nessun
|
||||
altro programma eredita il permesso.
|
||||
-->
|
||||
<policyconfig>
|
||||
<vendor>enne2</vendor>
|
||||
<vendor_url>https://git.enne2.net/enne2/kde-cpufreq-dashboard</vendor_url>
|
||||
|
||||
<action id="org.enne2.cpufreq.set">
|
||||
<description>Configurare governor, limiti di frequenza e boost della CPU</description>
|
||||
<message>Per modificare governor, limiti di frequenza, EPP o boost della CPU è necessaria l'autorizzazione di amministratore.</message>
|
||||
<icon_name>cpu</icon_name>
|
||||
<defaults>
|
||||
<allow_any>no</allow_any>
|
||||
<allow_inactive>no</allow_inactive>
|
||||
<allow_active>auth_admin_keep</allow_active>
|
||||
</defaults>
|
||||
<annotate key="org.freedesktop.policykit.exec.path">/usr/local/libexec/enne2-cpufreq/cpufreq-helper</annotate>
|
||||
</action>
|
||||
</policyconfig>
|
||||
Reference in New Issue
Block a user