RAGS - v1.10.0
    Preparing search index...
    Note

    package dependency: network-manager This service is somewhat incomplete, feel free to open a PR to improve it

    • connectivity: "unknown" | "none" | "portal" | "limited" | "full"
    • primary: "wifi" | "wired"
    • wired: Wired
    • wifi: Wifi
    • vpn: Vpn
    • toggleWifi: () => void
    • ssid: string
    • strength: number 0..100
    • frequency: number
    • internet: "connected" | "connecting" | "disconnected"
    • enabled: boolean
    • access-points: AccessPoint
    • icon-name: string
    • state: string: NM.DeviceState as lowercase string
    • scan: () => void

    access points are not a GObjects, just a regular js objects meaning you can't bind to it or use notify::prop signal

    • bssid: string
    • address: string
    • lastSeen: number
    • ssid: string
    • active: boolean
    • strength: number
    • frequency: number
    • iconName: string icon name representing its signal strength
    • internet: "connected" | "connecting" | "disconnected"
    • state: "enabled" | "disabled" | "unknown"
    • state: string: NM.DeviceState as lowercase string
    • icon-name: string
    • connection-added: (uuid: string)
    • connection-removed: (uuid: string)
    • connections: VpnConnection[]
    • activated-connections: VpnConnection[]
    • getConnection: (uuid: string) => VpnConnection
    • uuid: string
    • id: string: The unique name of the connection
    • state: "connected" | "connecting" | "disconnecting" | "disconnected"
    • vpn-state: "unknown" | "prepare" | "needs_auth" | "connect" | "ip_config" | "activated" | "failed" | "disconnected"
    • icon-name: string
    • setConnection: (connect: boolean) => void
    const network = await Service.import("network");

    const WifiIndicator = () =>
    Widget.Box({
    children: [
    Widget.Icon({
    icon: network.wifi.bind("icon_name"),
    }),
    Widget.Label({
    label: network.wifi.bind("ssid")
    .as((ssid) => ssid || "Unknown"),
    }),
    ],
    });

    const WiredIndicator = () =>
    Widget.Icon({
    icon: network.wired.bind("icon_name"),
    });

    const NetworkIndicator = () =>
    Widget.Stack({
    children: {
    wifi: WifiIndicator(),
    wired: WiredIndicator(),
    },
    shown: network.bind("primary").as((p) => p || "wifi"),
    });