Release Vulpes OS 2.7-preview.24

This commit is contained in:
OverSu 2026-11-04 12:52:20 +01:00
commit 97ef99f827
135 changed files with 7717 additions and 2524 deletions

View file

@ -0,0 +1,49 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: MPL-2.0
"""Low-overhead, read-only battery and thermal sampler for a RAM trial."""
import json
from pathlib import Path
import time
def values(directory, names):
result = {}
for name in names:
try:
result[name] = (directory / name).read_text().strip()
except OSError:
pass
return result
def sample():
supplies = {}
for path in sorted(Path('/sys/class/power_supply').iterdir()):
supplies[path.name] = values(path, (
'type', 'status', 'online', 'capacity', 'current_now',
'voltage_now', 'power_now', 'charge_now', 'energy_now', 'temp'))
thermal = {}
for path in sorted(Path('/sys/class/thermal').glob('thermal_zone*')):
item = values(path, ('type', 'temp'))
if item:
thermal[path.name] = item
idle = {}
for path in sorted(Path('/sys/devices/system/cpu').glob('cpu[0-9]*/cpuidle/state*')):
item = values(path, ('name', 'time', 'usage', 'disable'))
if item:
idle[str(path.relative_to('/sys/devices/system/cpu'))] = item
return {'timeUnix': time.time(), 'timeMonotonic': time.monotonic(),
'powerSupplies': supplies, 'thermalZones': thermal, 'cpuIdle': idle}
def main():
output = Path('/run/tundra/battery-idle.jsonl')
output.parent.mkdir(parents=True, exist_ok=True)
with output.open('a', buffering=1) as stream:
while True:
stream.write(json.dumps(sample(), separators=(',', ':')) + '\n')
time.sleep(30)
if __name__ == '__main__':
main()