So I have set up Ubuntu 14.04 on a new Lenovo E540 and choose the BIOS option to swap the Fn and Ctrl keys. This works well but there are some quirks.
It appears Lenovo has introduced some extra keyboard shortcuts at BIOS level in v2.13, such as Fn+S, Fn+B and Fn+P. Now with the Ctrl and Fn buttons switched in BIOS, the shortcuts are still triggered when pressing the physical Fn key (Ctrl key in software). This means pressing Ctrl+S is intercepted and interpreted as Fn+S by the BIOS, and my code isn't saved. Has anyone dealt with this issue? Waiting for Lenovo to update the BIOS with a fix could take years.
I think the only solution is to switch the buttons back in BIOS and learn to live with the keyboard layout.