- AGS v3.1.0 (Astal/GTK3) Ghost Shell avec ghost mode (heartbeat + hover reveal) - Modules : clock, battery, volume (interactif), network, MPRIS, CPU/RAM, systray - Brain Power panel (Super + B) — lecture live focus/todos/session - tetardtek_ prompt avec curseur clignotant - Palette violet-chaton v2 documentée (Mitsuri Kanroji gradient magenta → green) - Autostart COSMIC via .desktop - Archive AGS v1 conservée pour référence
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import AstalNetwork from "gi://AstalNetwork"
|
|
import { createBinding } from "ags"
|
|
|
|
export default function Network() {
|
|
const net = AstalNetwork.get_default()
|
|
|
|
const text = createBinding(net, "primary")((type: AstalNetwork.Primary) => {
|
|
if (type === AstalNetwork.Primary.WIFI) {
|
|
const wifi = net.wifi
|
|
if (!wifi) return " offline"
|
|
const ssid = wifi.ssid || "wifi"
|
|
const strength = wifi.strength
|
|
let icon = ""
|
|
if (strength > 80) icon = ""
|
|
else if (strength > 60) icon = ""
|
|
else if (strength > 40) icon = ""
|
|
else if (strength > 20) icon = ""
|
|
return `${icon} ${ssid}`
|
|
}
|
|
if (type === AstalNetwork.Primary.WIRED) return " eth"
|
|
return " offline"
|
|
})
|
|
|
|
const cls = createBinding(net, "primary")((type: AstalNetwork.Primary) => {
|
|
if (type === AstalNetwork.Primary.WIFI) return "network wifi"
|
|
if (type === AstalNetwork.Primary.WIRED) return "network wired"
|
|
return "network disconnected"
|
|
})
|
|
|
|
return <label class={cls} label={text} />
|
|
}
|