feat!: migrate to ags v3, redesign styles
This commit is contained in:
@@ -1,58 +1,56 @@
|
||||
import { GLib, Variable } from "astal";
|
||||
import GTop from "gi://GTop";
|
||||
import Wp05 from "gi://Wp";
|
||||
import GTop from "gi://GTop"
|
||||
|
||||
type Snapshot = {
|
||||
total: number;
|
||||
user: number;
|
||||
sys: number;
|
||||
idle: number;
|
||||
};
|
||||
total: number
|
||||
user: number
|
||||
sys: number
|
||||
idle: number
|
||||
}
|
||||
|
||||
export function get_cpu_snapshot() {
|
||||
const cpu = new GTop.glibtop_cpu();
|
||||
GTop.glibtop_get_cpu(cpu);
|
||||
const cpu = new GTop.glibtop_cpu()
|
||||
GTop.glibtop_get_cpu(cpu)
|
||||
return {
|
||||
total: cpu.total,
|
||||
user: cpu.user + cpu.nice,
|
||||
sys: cpu.sys,
|
||||
idle: cpu.idle,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export function calc_cpu_usage(a: Snapshot, b: Snapshot) {
|
||||
const total_diff = b.total - a.total;
|
||||
const active_diff = b.user + b.sys - (a.user + a.sys);
|
||||
return Math.round(total_diff > 0 ? (100 * active_diff) / total_diff : 0);
|
||||
const total_diff = b.total - a.total
|
||||
const active_diff = b.user + b.sys - (a.user + a.sys)
|
||||
return Math.round(total_diff > 0 ? (100 * active_diff) / total_diff : 0)
|
||||
}
|
||||
|
||||
export function get_ram_info() {
|
||||
const mem = new GTop.glibtop_mem();
|
||||
GTop.glibtop_get_mem(mem);
|
||||
const mem = new GTop.glibtop_mem()
|
||||
GTop.glibtop_get_mem(mem)
|
||||
return {
|
||||
total: mem.total,
|
||||
used: mem.total - mem.free - mem.cached - mem.buffer,
|
||||
free: mem.free,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function format_bytes(bytes: number) {
|
||||
let units = ["B", "KiB", "MiB", "GiB", "TiB"];
|
||||
let i = 0;
|
||||
let num: number = bytes;
|
||||
let units = ["B", "KiB", "MiB", "GiB", "TiB"]
|
||||
let i = 0
|
||||
let num: number = bytes
|
||||
while (num >= 1024 && i < units.length - 1) {
|
||||
num /= 1024;
|
||||
i++;
|
||||
num /= 1024
|
||||
i++
|
||||
}
|
||||
|
||||
return `${num.toFixed(2)}${units[i]}`;
|
||||
return `${num.toFixed(2)}${units[i]}`
|
||||
}
|
||||
|
||||
export function get_disk_space() {
|
||||
const usage = new GTop.glibtop_fsusage();
|
||||
GTop.glibtop_get_fsusage(usage, "/");
|
||||
const usage = new GTop.glibtop_fsusage()
|
||||
GTop.glibtop_get_fsusage(usage, "/")
|
||||
|
||||
const free_bytes = usage.bavail * usage.block_size;
|
||||
const free_bytes = usage.bavail * usage.block_size
|
||||
|
||||
return format_bytes(free_bytes);
|
||||
return format_bytes(free_bytes)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user