Repository navigation
feat(network): edit NetworkManager connections from Settings - #3727
Conversation
|
Thanks for the review, I will address all the requested changes tomorrow. |
|
@bbedward thanks for the review, all seven comments are addressed in the new commit:
I also went over the whole PR once more and fixed a few things of the same kind: Enter moves through the enterprise form again, error toasts say what failed, and dropdowns go back to the real value after a rejected change. Still open questoin: Should I make the Wi-Fi password prompt movable again (like the Polkit dialog)? It was switched from a floating window to a modal in #2651, which feels weird now that it can be a pretty big window. |
|
@apollo79 thanks for the design feedback, I'm looking into it. I'll fix what I can and then maybe raise a discussion in the dms-design channel, since frontend design isn't my greatest strength. |
No worries, just general guidelines that can be tweaked post PR. |
|
@apollo79 thanks again for the design pass, I went over the forms. Changes:
What I left as is:
|
|
Thank you @Conava for working on the design! It looks a lot better now. What could be another inspiration is this kind of popup (also exists for window rules): Another suggestion: Make the "Add account" (and log out) action a FAB like on other pages Last thing: It should not be possible for the popup to become bigger than the settings window. This is also a thing that current popups already do. |
|
I like the page more ngl |
|
I am voting for the smaller popup since it aligns with what we already have in other parts of the settings like window rules etc and I am for standardization / unification. |
|
I also like the page a lot more, maybe the window rules need a change :) |
|
I went with option 2 (the settings page) and pushed it, since I like it a lot more. I do have the other version ready locally so if the maintainers disagree that a super quick change. |
I have no problem with the page, would like some unification then though throughout the settings. Problem is that for very short forms it doesn't really make sense but for example the keybind / window rule forms are also quite long so it would fit there. And for short ones it is also not too bad probably. |
|
Yes thats a valid point. |
|
I almost forgot about this one but it's a good one imo. @Conava I know you aren't available right now but we need to finalize this (except if the devs don't like it) |
What do you think is needed to finalize here? The page vs popup would need a maintainer decision imo but apart from that I dont have any open todos in my notes regarding this PR. |
I will need to clone this and take a look to give feedback on the UI. Then maybe another review from Claude / the maintainers and a decision if they want this and the subpage vs popup. |
|
/claude review |
Claude review8 issues to fix. The PR also conflicts with master: the rebase must port 19f3e58 (OpenVPN challenge prompts, now in
Checked: Go network editor, codec, enterprise, wifi/vpn/hotspot/ethernet backends, tailscale manager and handlers, the QML/Go socket protocol, QML services, ConnectionEditor.js, settings pages and dialogs, deprecated shims, raw views, generated mocks, i18n. Model: claude-opus-5-5. |
Claude review3 new issues to fix. The earlier hotspot address comment still applies:
Checked: Go editor codec, update and enterprise code, the NM wifi/vpn/hotspot/ethernet/priority/agent backends, Tailscale manager, handlers and operator, APIVersion and the QML gates, the Go/QML socket protocol, mocks, QML services, ConnectionEditor.js, settings pages and indices, Wi-Fi/enterprise forms, control center details, deprecated shims, raw views, i18n. Model: claude-opus-5-5. |
|
@purian23 @bbedward I revisited this PR: merged master, fixed the issues Claude foundand went over a few decisions again. My initial goal was parity with NetworkManager's GUI and TUI tools. I reconsidered that and removed the profile types that have little practical use on a graphical desktop or belong to technology that is largely obsolete:
Profiles of those types still show up under Connections and offer to be opened in nm-connection-editor or nmtui instead of the Settings. Each removal is its own commit, so if you disagree with one of them it can be brought back. The PR is smaller for it, with less to maintain and less work for the translators. Other changes since the last round:
The PR description and screenshots have all been updated to reflect the newest version. @apollo79 The UI also got some upgrades and improvements, so now you can use the most recent version if you still want to go over the UI. |
Claude reviewNo issues found. The three findings from the last round are fixed: Connections page Disconnect now calls |
|
The one unresolved issue from last round (The hotspot address one) doesn't apply: gonetworkmanager's |
9225309 to
2e384b4
Compare
Claude review1 issue to fix. It comes from 2e384b4, which made plugin VPNs partial in the editor while this PR still hides their credentials panel. The PR description also still says plugin VPN, Bluetooth and cellular profiles can be created and edited in Settings.
Checked: 2e384b4 on top of the earlier full-PR rounds: the trimmed Go signature table against every key the remaining QML sections and new-profile templates write, |
|
|
||
| DActionButton { | ||
| anchors.verticalCenter: parent.verticalCenter | ||
| visible: root.canExpand && !(root.showsEditButton && !root.isTransient) |
There was a problem hiding this comment.
Plugin VPNs (OpenVPN, OpenConnect, ...) can't have their credentials edited anywhere now. This hides the expand panel, which holds the username/password/save-credentials fields, whenever the editor is supported, in both the control center and the Settings VPN tab. But since 2e384b4 the editor treats vpn as partial: it only shows General and IP, plus "Open in …", and that row only appears if nm-connection-editor or nmtui is installed.
Example: an OpenVPN profile on master can save a username and password from the expand panel. On this branch, the row only shows Edit, and the editor has no credential fields.
Fix: show Edit instead of expand only for WireGuard, and keep the expand panel for the other VPN types.
| visible: root.canExpand && !(root.showsEditButton && !root.isTransient) | |
| visible: root.canExpand && !(root.showsEditButton && !root.isTransient && root.profile?.type === "wireguard") |
(Do the same for the Edit button's visible at line 104, or show both buttons for plugin VPNs.)
Claude reviewNo issues found. The last finding is fixed: plugin VPNs keep their credentials panel, and only WireGuard profiles, which the editor fully covers, hide it in favor of Edit. Transient profiles keep the panel as before. |













Description
This PR adds a connection editor for NetworkManager profiles to the network settings. Ethernet, Wi-Fi, WireGuard, plugin VPN, Bluetooth and cellular profiles can be created and edited there, including 802.1X and most other kinds of enterprise network configs.
I wanted to set up eduroam for my university without reaching for nmcli or nm-connection-editor, and kept going until the network settings covered pretty much everything.
I just did a big rework of this PR today, see more in comments.
What it adds
Included bug fixes
Notes
Type of change
Related issues
Closes #2964, closes #1461, closes #2403, closes #3940. Related to #2632 and #2965.
Partially fixes #4204: the control center part, where the VPN panel now opens the editor. The AnyConnect login failure is a separate problem.
Screenshots / video
Checklist
I18n.tr()with translator context, reusing existing terms where possiblemake fmt, added/updated tests,make testpasses, andgo mod tidyis cleanmake lint-qmlwith no new warnings