65 lines
1.6 KiB
TypeScript

import { exec, GLib } from "astal"
const featureTest = () => {
// Check if awk is available
try {
exec( 'awk -V' );
exec( 'sed --version' );
enabled = true;
} catch ( e ) {
printerr( '[ SysInfo ] AWK or SED missing! No system info will be available' );
enabled = false;
return;
}
try {
exec( 'mpstat' );
} catch ( e ) {
availableFeatures.cpu = false;
printerr( '[ SysInfo ] Feature Test for CPU info failed. mpstat from the sysstat package missing!' );
}
// Screen brightness... CTL might be available, but no screen controllable
// Battery... acpi might be present, but potentially no bat
}
let enabled = false;
const availableFeatures = {
cpu: true,
ram: true,
bat: true,
net: false,
brightness: true,
}
const sysInfoFetcher = () => {
if ( enabled ) {
if ( availableFeatures.cpu ) {
const cpuUtil = exec( 'mpstat | awk "/all/ {print(100 - $NF)"}' );
}
if ( availableFeatures.ram ) {
const ramUtil = exec( `free | awk '/Mem/ { printf("%.2f\\n", ($3/$2)*100) }'` );
}
if ( availableFeatures.bat ) {
const acpi = exec( `acpi -i | grep 'Battery'` );
// TODO: Parse acpi output
}
// if ( availableFeatures.net ) {
// // Using ifstat or vnstat probably, get current network de
// }
if ( availableFeatures.brightness ) {
}
}
}
const SystemInfo = () => {
return <box></box>
}
export default {
SystemInfo
}