Gnome 3.10 breaks switching between wired network configurations by design
A while ago started building a virtual machine with Ubuntu 14.04 LTS that I could pass on to interested parties when needed. As I am not a big fan of the standard installation (I'll write a separate article on what was needed to make that somewhat acceptable), this time I went straight for the latest GNOME LTS Ubuntu as I generally like the UI. It took a little bit of adjustment moving from Gnome 2 to Gnome 3, but in the end I found the move to be an improvement yielding a decent desktop environment with nice eye candy.
Having done the basic setup of the system, there seemed to be a minor bug, as the network indication wasn't displayed anymore in the top right corner. Ass the standard DHCP connection mode worked at this time, I did not give it any further attention and moved on.
To be usable for embedded development the network configuration again returns to the centre of attention. Working with an external board, I want to use at least tftp and NFS services from the host. The easiest way to achieve this without a lot of configuration is to use bridged mode for the guest network adapter allowing incoming connections to the VM. Now as developers usually do not control the DHCP server, it is common practice to use static IP addresses from one of the private ranges (usually the 192.168/16 net) for the client and the server.
All of this is easily done with the help of nm-connection-editor. Just create a DHCP and a Static IP configuration and right clicking on the wired connection icon allows fast and easy switching between the profiles.
Or at least this is how it used to work. This time however the network icon simply did not appear. Bummer. Opening the Network section from the System Settings shows the connections, but there is simply no way to activate one of the shown profiles. Double-clicking just opens the Options dialog.
After some head scratching I decided to refresh my knowledge on how to control network manager from the command line and indeed quickly found a workaround. Activating either configuration can be done with one of these commands:
nmcli con up id DHCP nmcli con up id "Static IP"
Documenting this was enough to move on and so I made a mental note to return and investigate the situation more closely once time permitted.
Over several weeks I returned briefly to the problem, but was not able to get to the root of the problem. Web searches yielded a lot of hits but they all pivoted on nm-applet not showing up and possible solutions to fix this. While none of the descriptions or solutions matched my problems, I was kind of blocked for quite some time trying to find out why no nm-applet was running on my system and why even starting it by hand did not change anything.
Having wasted more time running down dead ends (simply reinstall component ... and triple checking the network manager configuration), at a certain stage I found the interesting information that Gnome 3.10 doesn't even use nm-applet anymore but instead integrates the functionality into gnome-shell. Ok, that explained why I barked up the wrong tree for too long and swiftly led me to the real story behind the problem: Not showing the icon is a deliberate design decision.
Realising that the original workaround turned out to be the only way for something that was easy in Gnome 3.8 is kind of shocking. Ok, maybe there is something to be said for not wasting display real estate for static information, but declaring a use case very much central to embedded development as unimportant did not go down easily with me.
So in the future I hope that it will again be easier to do what I want, but until then explaining to people why I like Gnome 3 has gotten a great deal more difficult.