blob: a8064882455177fa3af548f2f1e383f426a008da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# network
Wired and wifi in one module, because a connected `eth0` must not mask the
wifi state.
The tile is a globe, and each active link shows a green dot, its name and its
local IPv4 address. The address comes from `ip -j -4 addr show`, because the
Networking API exposes only the MAC; it is refreshed on link change and on a
slow timer while a link is up. When both wired and wifi are up the tile shows
both: the API exposes no route metric, so it does not guess which link
carries traffic.
The page lists managed wired devices, then a wifi radio switch and list. A
row click connects; a secured network that is not yet known reveals an inline
password field. Known networks offer Forget, the connected one Disconnect.
## Service lifetime
`alwaysActive: true`, and truthfully: the `Quickshell.Networking` backend
pushes and there is no poll to gate. There is no `Service.qml`, unlike sound's
`Service.qml` or vm's `Virsh.qml`, because there is no loop to own.
Referencing `Networking` in `NetworkModule.qml` is what instantiates it at
shell start.
The backend is empty for about two seconds after launch and then fills. Every
binding repaints when it arrives; nothing caches the first paint.
## Not built
Joining a hidden network. It would need a NetworkManager settings profile
built from scratch, and `NMSettings` is not in QML scope (`typeof` is
`undefined`), so there is no way to construct one from QML. Enterprise and
802.1x networks are out for the same class of reason.
Disconnect and forget failures. Neither backend exposes a failure signal for
them, so a failure shows only as the list not changing. Noted rather than
faked.
|