Experimental network management GUI added. This may be broken.
This commit is contained in:
1 parent
f18b6955a9
commit
f3a082219a
5 files changed
+1110
No files matched your search
@@ -37,6 +37,7 @@ Optional features use these packages when installed:
|
||||
- libnotify: For sending notifications
|
||||
- magic-wormhole: [optional] for file sharing with magic-wormhole GUI
|
||||
- notification-daemon: To handle notifications
|
||||
- networkmanager: [optional] for the Network panel, including libnm's GObject introspection data.
|
||||
- pamixer: for the mute-unmute script
|
||||
- pcmanfm: [optional] Graphical file manager.
|
||||
- playerctl: music controls
|
||||
@@ -110,6 +111,82 @@ Personal (if configured), and Bypass modes; check existing mode sounds and
|
||||
Cthulhu's native mode speech. Also check battery status, OCR, and USB alerts if
|
||||
enabled. Automated checks do not prove audible output or physical key behavior.
|
||||
|
||||
## Network Panel (Optional)
|
||||
|
||||
Press Control+Alt+Tab, then Shift+N to open the accessible wired/Wi-Fi panel.
|
||||
It requires NetworkManager/libnm 1.30 or newer and its `NM-1.0` introspection
|
||||
data, plus I38's existing Python/PyGObject/GTK 3 dependencies. On Stormux,
|
||||
connection management requires membership in `network` in the current session
|
||||
and an appropriate polkit policy. The GUI never elevates or requests an
|
||||
administrator password. If permissions or its process-specific protection
|
||||
against authentication prompts are unavailable, it remains usable for viewing
|
||||
connection information. No group membership or policy is changed by the panel.
|
||||
|
||||
Try the source directly before updating your installation:
|
||||
|
||||
```bash
|
||||
python3 -B scripts/network.py
|
||||
```
|
||||
|
||||
Use the arrows to select a connection; Tab to Connect, Disconnect, Refresh,
|
||||
Details, or Close. Selection alone does not connect or disconnect. Type a
|
||||
case-insensitive name prefix to filter. Escape clears the filter, then closes
|
||||
the window. Nearby access points with the same SSID and security are combined
|
||||
per adapter, while distinct saved profiles remain selectable. Existing rows
|
||||
retain their order and selection when scans change. Signal strength is available
|
||||
in Details; fluctuations do not rewrite the focused row.
|
||||
|
||||
New personal Wi-Fi networks use an accessible GTK password dialog. Remember
|
||||
password saves through NetworkManager with the system-wide profile, under its
|
||||
access controls. Without remembering, a new profile is saved without its
|
||||
password and with autoconnect disabled. Existing profiles can request another
|
||||
password, including after a wrong-password failure. Saving a replacement
|
||||
requires modification permission; otherwise it is used only for that attempt.
|
||||
I38 stores no passwords itself. Enterprise/hidden-network setup, VPN setup, and
|
||||
advanced IP/DNS editing are not included. Closing the window leaves established
|
||||
connections running. See the Network Connections section of the I38 guide.
|
||||
|
||||
For the installed binding, review the diff and regenerate your I38 configuration,
|
||||
then reload i3. `./i38.sh -u` copies scripts but does not add Shift+N to existing
|
||||
bindings. Regeneration uses your saved preferences; review them first.
|
||||
|
||||
Automated checks (no host connections are changed):
|
||||
|
||||
```bash
|
||||
dbus-run-session -- env I38_PRIVATE_NETWORK_TEST=1 python3 -B -m unittest discover -s tests -p test_network.py -v
|
||||
xvfb-run -a dbus-run-session -- env -u AT_SPI_BUS_ADDRESS I38_PRIVATE_NETWORK_GUI_TEST=1 python3 -B tests/native_network_gui.py -v
|
||||
```
|
||||
|
||||
For a native check against the running NetworkManager and polkit services, add
|
||||
`I38_NETWORK_LIVE_READONLY_TEST=1` to the second command's environment. It reads
|
||||
connection information, registers the panel's temporary agents, and checks that
|
||||
a polkit challenge for this process is declined when the local policy offers
|
||||
one. It does not activate, disconnect, scan, or modify connections or policy.
|
||||
|
||||
Before submission, review and test the changes as required by this project's
|
||||
AI-assisted contributions policy. For live testing with Cthulhu and Orca:
|
||||
|
||||
1. Open the source panel. Check initial selection, complete row announcements,
|
||||
prefix search, Tab/Shift+Tab, status review, Details, and Escape. Check Braille
|
||||
if available. Refresh must preserve focus and selection without repeated
|
||||
signal-strength announcements.
|
||||
2. Join a test Wi-Fi network. Check password masking, Show password, Remember
|
||||
password, cancellation, an incorrect password, a correct retry, and reopening
|
||||
the panel. Verify remembered credentials reconnect and an unremembered new
|
||||
profile requires its password again. No administrator dialog should appear.
|
||||
3. Check an existing wired connection and Wi-Fi, including both active together,
|
||||
disconnect/reconnect, Wi-Fi disabled/enabled, and hardware wireless blocking
|
||||
if available. Confirm normal networking still works after the panel closes.
|
||||
4. If a restricted test account is available, check that missing `network`
|
||||
membership or denied authorization leaves information readable and changes
|
||||
disabled. A policy change while a password dialog is open must be rechecked.
|
||||
5. After configuration regeneration, check Panel Mode Shift+N, existing lowercase
|
||||
`n` for Notes, F1 help, and the other panel bindings. Opening the network panel
|
||||
twice should focus its existing window.
|
||||
|
||||
Private GTK and D-Bus checks do not establish audible speech, Braille, physical
|
||||
key behavior, or successful live connection/password persistence.
|
||||
|
||||
## USB Connection Alerts (Optional)
|
||||
|
||||
Setup offers USB connection sounds and spoken device names separately from window
|
||||
|
||||
Reference in new issue
Block a user