I will digress a little bit and write a few notes about setting up a Linux test system.
Setting up a Linux test system
1. At present this requires setting up a parallel mono development environment with mono 2.11.2
2. There are great instructions here.
3. Important caveats: if possible avoid using gnome as your window manager. gnome makes heavy use of C# / mono, and you may find that you have to replicate a lot of additional libraries. Actually, avoid using KDE as well, to avoid any potential adverse interactions, use the simplest possible window manager you can find: E.g. openbox, or if you are like me and want your compositing as well, go for Compiz.
4. I found adding the following to the environment setup was necessary:
5. Quick description of the Compiz set-up on Arch Linux:
Install the following:
setxkbmap -layout uk
#if using vmware
# This shell script is run before Compiz launches.
# Environment variables set here are passed to the Compiz session.
# Set a background color
if which hsetroot >/dev/null 2>&1; then
if which esetroot >/dev/null 2>&1; then
if which xsetroot >/dev/null 2>&1; then
test -z $BG || $BG -solid "#202020"
if which dbus-launch >/dev/null 2>&1 && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
eval `dbus-launch --sh-syntax --exit-with-session`
# Run XDG autostart things. By default don't run anything desktop-specific
# See xdg-autostart --help more info
if which /usr/bin/xdg-autostart >/dev/null 2>&1; then
xrdb -merge ~/.Xresources
xrdb -merge ~/.Xresources &
xrandr -s 1280x800 &
thunar --daemon &
emerald --replace &
nitrogen --restore &
PS: On Arch Linux with open-vmware-tools you can set in the VMware machine settings, 3D acceleration to yes, and you will get compositing and more.
You can also add archlinux bashrun, and compiz-boxmenu and compiz-deskmenu - though the menu set-up is slightly buggy: I ended up configuring the menu with the compiz-deskmenu tool, and then using that config file with compiz-boxmenu (using option-alt-m to launch the menu through ccsm commands).
Oh, and I m using a pure 32-bit machine:
[mono] ~ @ uname -a
Linux 3.4.4-2-ARCH #1 SMP PREEMPT Sun Jun 24 17:28:37 UTC 2012 i686 GNU/Linux
[mono] ~ @ mono -V
Mono JIT compiler version 2.11.2 (master/a7e01ca Tue Jun 19 21:41:42 BST 2012)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)