I'm using a virtual machine running Windows for development purposes inside a Ubuntu host (I also use the Ubuntu part for my regular activities, but not both at the same time). As I need to compile on Windows regularly, I want to increase the performance of the VM as much as I can. Therefore I want to use a "minimal" version of my desktop environment: if possible, I want only my VM running, in fullscreen. Is it possible to use such a minimal system? If yes, what is it, or how can I achieve this setup myself? An environment chooser on my login screen would be great, but optional.
Programs that aren't doing anything will get swapped out. So you don't need to go for minimalistic on RAM usage.
Do avoid background programs that aren't paused waiting for user input. For example, don't open a web browser that automatically refreshes some pages, or an email client that checks for incoming messages periodically.
One reason to look for a minimalistic window manager is to let the virtual machine get all key presses: a window manager that reserves keyboard shortcuts like Alt+Tab can be annoying if your VM doesn't grab the keyboard. Conversely, if your VM does grab the keyboard in a convenient way, this isn't a concern.
Ubuntu comes with oodles of minimalist window managers out of which choice is a matter of personal preference. I'm not going to list them all. I personally use Sawfish, which is not minimalistic, but still small compared to modern desktop environments, and is extremely flexible (it's programmable in a Lisp dialect).
On the display manager (the program where you log in in graphical mode), you can choose between session types. Ubuntu lacks a “custom” session type out of the box, but you can tie your minimal session to the small window manager of your choice or define a custom session type. Alternatively, you can log in to text mode (press Ctrl+Alt+F1 to switch to a text console, Ctrl+Alt+F7 to go back to the GUI login screen or the session started there) and run the command
startx to start a session, e.g.
startx -- :1
which runs the file
~/.xinitrc (typically a shell script where you start whatever you want in your session). If you want to run only the VM emulator and nothing else, you can pass its full path to
startx plus command line options, e.g.
startx /usr/bin/vm-run 'My VM' -geometry 1920x1080+0+0
but note that without a window manager, you won't be able to do so much as resize a window.
A lighter DE is certainly an easy way to free up system resources for a VM.
Depending on how light you need/want to go, will guide what DE to choose. Have you looked at the
XFCE desktop? they are both full featured DEs and will run significantly lighter than Unity, and are simple to setup in a basic Ubuntu installation.
If you need to go lighter, you can begin to look at tiling WMs like
i3, but you'll be giving up some of the feature-set of the other DEs.