-
Notifications
You must be signed in to change notification settings - Fork 48
Quickshell.Network NetworkManager backend #96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Why are we linking nm? Should be entirely over dbus |
This reverts commit 8679f79.
NMWireless will be a property of Device (if DeviceType==Wifi). In the future if many org.freedesktop.networkmanager.Device.* are implemented, we can use the factory pattern to create an NMDevice with its subdevice properties and methods.
I'm not sure what stage of development you're at here and haven't checked code yet, but just so we're clear I'd like to expose this under I don't think I've made that clear so far. (If you've got any questions, @ me here or in the matrix/discord) |
9d41148
to
4b35d7b
Compare
525a933
to
bb206e3
Compare
Access point objects shouldn't be provided to the user. Instead, we should expose WifiNetworks which represent a set of APs with the same SSID. A WifiNetwork signal represents the maximum signal of its APs.
LastScan is still relevant to the NetworkManager backend to set the scanning state to false (completed), but doesn't need to be exposed to the frontend and isn't available in other backends
Added adapters to the Settings and Settings.Connections NetworkManager interfaces. Fixed the NetworkBackend constructor to wait for the ready status of each backend before trying the next.
Adds NMWirelessManager which merges identical NMWirelessNetworks (groups of APs with the same SSID) and NMConnectionAdapters (saved connection settings to wifi networks), and creates WifiNetworks on the frontend. The manager takes a similar approach to plasma-nm and nm-applet. Adds utilities to determine a connections security type and a networks best choice for security, in sync with nm_utils_security_valid from nmcli.
Really looking forward to this one! :) |
Removes the NMWirelessManager and moves its functionality to the NMWirelessDevice, which now extends NMDevice. NMWirelessNetworks hold all of the state of the APs and connections and signals the best settings for connection.
Still missing a secret agent for networks that require passwords. I've tested with nm-applet as the agent and everything seems to work. I completely separated the frontend and backend objects, with some nm-specific members in the frontend. Happy to do multi-backend in a different style though. I think this is enough features (+ agent) for most WiFi use cases, but there's a ton more functionality to add in the future:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry its taken so long but here's an initial review.
I'd appreciate if auto was used in more places, as well as whitespace following the existing code-style more as well.
There are a couple bits in here that look completely insane, but judging by the fact that they're on the NM api surface I'm going to assume it's NM's fault.
- Prefer bindables over connections for synced properties - Remove lambdas from ready and disappeared signal connections - Add namespaces to Q_PROPERTY definitions - Remove Network.wifi.defaultDevice (easy to add in userspace) - Add all devices to a ListView in network.qml
@outfoxxed Thanks for the feedback! I think this is ready for another review.
Yep. Unfortunately the api doesn't have any concept of wifi networks. Had to grab access points from one interface, "active" and "saved" connections from another, and then group them by SSID. It also doesn't give any useful security info, hence the copied code from nmcli. Other clients do something similar: |
Network service and NetworkManager backend.
Just the basics to:
Closes #74.