Jan Grulich

Introducing new KCM for network configuration

After several attempts trying to write a new KCM for network configuration and actually not finishing any of them, I decided to start one more time, but this time my goal was to simply transform the old editor into a bit nicer KCM and place it into system settings where this was missing for very long time. You can see my current result below.




This is still same editor as it was existing before as a standalone application, except the list of connections is now written in QML and is similar to the applet we have in systray. I also had to rewrite the editor widget a bit because it’s currently implemented as a dialog with a tabwidget inside where each tab is represented by one setting widget (e.g. Ipv4SettingWidget), For the new KCM we now have ConnectionEditorBase widget doing all the logic behind, like creating specific setting widgets based on connection type and so on. This widget alone doesn’t display anything and you have to actually subclass it and reimplement method taking care of layouting. This allows me to have e.g. ConnectionEditorTabWidget which just subclasses ConnectionEditorBase and reimplements addWidget() method to place setting widgets into QTabWidget. In future we can also simply write a new UI/layout on top ConnectionEditorBase widget and get rid of the tab layout.

Regarding functionality, it should be already almost on par with functionality of the editor. There are still some missing features (like import/export of VPN), but besides that I think everything else is going well. With the new KCM there are also some minor improvements, like you can now reset your not-saved changes you made to a connection. My plan is to get this into Plasma 5.9 which is supposed to be released in january so I still have plenty of time to finish missing features and address issues I made during this transition and of course time to take your comments into account and make this KCM as most usable for everyone I can :).

13 thoughts on “Introducing new KCM for network configuration

  1. Very nice overall. What I do not like too much are the connect(?)/disconnect/delete actions in the popup menu. It’s not comfortable to have to right-click every other UI element in a hope there’s some functionality hidden.

  2. Very nice. I agree with David though, I would go the way the systray handles it, by selecting it expanding/unhiding the buttons would be a lot nicer.

    Great (re)work anyway.. Thanks!

    1. I actually have something like this in my plan, I mean making the items in the view expandable and showing more stuff.

  3. PS: VDG probably has even better ideas, would be interesting which ones.

    Your blogs comment section is horrible on mobile 😉

    1. Unfortunately no, we use NetworkManager only as it’s used everywhere and at this point I don’t plan to add support for anything else.

      1. > only as it’s used everywhere

        sorry but you are wrong both lxqt and enlighenment use connman. The bad thing is i cant have installed both on my machine(nm conflicts with connman since connman provides a nm-compat).

        Even more funny powerdevil depends on nm so i have basically two choices ether use enligenment or lxqt without networkmanager or break kde by installing connman which remives powerdevil, and plasma-nm. the first one is no opinion since there is no nm-frontend in efl nor is there a qt-frontend for nm.

  4. Thanks for your work on this! Please make sure that the the systray applet isn’t removed until all its functionality is duplicated in this KCM.

    1. The apple won’t be removed, both the applet and the kcm will co-exist as there is no reason to remove the applet.

  5. Looks great! Kudos for this!
    I was wondering what the network section under “System preferences” would look like… I already have Preferences (Proxy, cache, cookies, etc.), Connectivity (samba settings) and Bluetooth, which is already a bit confusing. Is your plan to add yet another option?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll To Top