I am not using other OS X apps while working in ubuntu which is anyway my main OS. I decided to go for virtualbox since I can take full advantage of the power saving features of OS X and still use the builtin webcam, the audio system, and USB devices in ubuntu.
I am running virtualbox (at this point 5.1.26) on a Macbook 2015 (OS X 10.11.6) with 8GB RAM and CPU capable of running 4 threads. The default settings were not the best (when playing back videos on the VM) and I needed some tweaking. I am using xubuntu (currently 16.04). I have assigned 3 CPUs despite the warning in VBox and about half of the RAM.
The most annoying tweak is the fact that xubuntu does not like the high native screen resolution. I am using the scripts below to reduce resolution on the OS X side. This works very well and does not give the pixelish appearance of downscaling in virtualbox.
Here is the code you'll need - thanks to those who wrote it:
Create yourself e.g. a BASH script called set_1440x900.sh
/Users/myusername/Apps/setgetscreenres/setgetscreenres 1440 900
which would set to 1440x900, a perfect resolution for 10 inch Retina macbooks (e.g. 2015 model).
You can also create an AppleScript application to call the script using the OS X Script Editor in Utilities. You can save this as "Application" and then add it to the dock.
do shell script"/Users/myusername/Apps/setgetscreenres/set_1440x900.sh"
After rebooting OS X, which I rarely do, I just click once on this application, and the screen resolution is (smoothly) reduced. It will look blurred for a while, but after a while, you will no longer miss the Retina native resolution, if you work in Xubuntu. If you want to go back to native retina resolution, you can choose any of the modes from the "System Preferences" > "Display". You would probably do this if you would like to work with a native OS X application.
Videos in fullscreen mode now will run smoothly in xubuntu. If you close your macbook, you will send the virtualbox to "save the machine state" in the background, which is exactly what you will want to do on a laptop. This conveniently happens after a while of inactivity in closed state, i.e. for shorts pauses, you will not have "wake up breaks". You can get through a full day with some breaks with a single battery charge (5-6 hours). If you're at a meeting and want to save on battery, slightly dim the display and remove one of the 3 CPUs from the VBox configuration. You might experience some video flickering, but for using google drive, libreoffice, etc., everything will run smoothly.
Using this setup you
-get a long battery life
-can use native drivers for all hardware
-have no issues inside VBox with drivers for linux concerning Mac hardware
-can run other virtual OS in a 2nd and 3rd VBox and exchange data between all OSes easily, including the host OS X
-don't need to like or be familiar with OS X. You barely don't need to touch it. However, it might come in handy to run some non-free applications, be some firmware updater for a device and alike.
-can transfer your "favorite working linux configuration" easily to any other standard PC, laptop, server, etc. with the same CPU architecture
-even control homebuilt hardware based on e.g. arduino and ESP32 from inside virtualbox in a hassle-free manner.
-do not need to purchase any software license on top of what you get with the computer itself.