Files
ags/widget/modules/Storage.tsx
T
2025-03-10 21:51:05 +07:00

33 lines
957 B
TypeScript

import { Variable } from "astal";
import GTop from 'gi://GTop';
const computeStorage = (): string => {
try {
const currentFsUsage = new GTop.glibtop_fsusage();
GTop.glibtop_get_fsusage(currentFsUsage, '/');
const total = currentFsUsage.blocks * currentFsUsage.block_size;
const available = currentFsUsage.bavail * currentFsUsage.block_size;
const used = total - available;
const storagestring = " " + Math.floor(used / total * 100) + "%"
return storagestring
} catch (error) {
console.error('Error calculating RAM usage:', error);
return "";
}
};
export default function Storage() {
const storage_usage = Variable<string>("").poll(5000, () =>
computeStorage())
return <box className="storage">
<label
className="Storage"
onDestroy={() => storage_usage.drop()}
label={storage_usage()} />
</box>
}