I've seen lots of discussions floating around the internet, talking about people attempting to install Windows Live Writer. Some are using Mono, others the .NET Framework - all of them are using Wine. In this article I'll explain How I Did It.
In this case the limits of Wine and Mono become visible. The .NET frameworks work partially in Wine so relying on them is useless (to be precise: all the external libraries needed in this case screw up this valiant attempt).
In the other corner we have Mono. Because WLW is in fact a Win32 executable, we have to use Mono in Wine (install the Windows version of Mono using Wine) but even the big anti-Microsoft framework fails here.
To be honest, Mono keeps failing every time for me. This is because Mono can run managed (byte-code only) executables fine, even the ones compiled for .NET (unless I'm mistaken). However, the windows in a GUI program are drawn using a native interface for .NET, one that Mono does not have as it uses a cross-platform windowing toolkit called GTK#. In short: any program that is used in a modern desktop environment and which is designed for .NET will not run on Mono. Thanks for the effort there guys...
So WLW on Linux is a no-go. And every other blogging tool out there for the Linux platform pretty much sucks or costs muchos dineros. I still have hopes for KBlogger but after 3 months its still at alpha 2 - so I stopped hoping that would be any help any time soon. I was using Bleezer before but it keeps screwing up source code which I am trying to post (I am hoping WLW will do this a LOT better). But how do we get out of this dark age, you might wonder? The solution? VirtualBox!
Yes I am aware that VirtualBox is an emulation program and has got nothing to do with blogging. It, however, has an interesting capability: it can run Windows! And now the frosting on the cake: it can display windows from the emulated environment in the native one. Are you getting the picture?
For the sceptics out there: yes, I am desperate enough to install Windows in a virtual machine just to use one program.
- One Windows XP image or CD, any language and/or Service Pack will do.
- Service Pack 3 from the Microsoft site for the Windows version you have on CD/image (optional but recommended)
- nLite, get it here: nLite
- VirtualBox 1.6.0, get it from the site (OSE or binary - either is fine).
- Some free space, a computer running Windows and some time.
Warning: If you aren't skilled in Windows installations, handling ISO's and modifying Windows CD's you might want to skip this bit and you will only need a Windows XP CD and VirtualBox.
We begin in Windows because Linux can't run nLite (or the slipstreaming programs). Start by installing nLite, running it and selecting your Windows installation medium (the CD or ISO containing the i386 folder).
After nLite is done extracting the files, you can select the operations you want. I selected to modify Service Pack, Components and Bootable ISO. The latter is needed to be able to boot from the new CD.
Select the Service Pack executable when nLite asks for it and wait for the slip-streaming process to finish. Next select the components you need to keep in Windows to prevent the de-selection of a critical part in the next screen. I suggest you leave some of the items on, like Internet Explorer. Crap like ATM stuff and Faxes, Printers or Scanners can go. In the next screen, check all components you want to delete.
Note that you can be pretty thorough in stuff you don't want - just make sure you leave the critical components (for example I left Dutch and English packages and deleted all others). When you are done, select next until you get in the last screen where you can set the ISO options. In this case we will be using the Windows setup in VirtualBox so there is no need to physically write the installation to CD. Just make sure you generate a bootable ISO and give it a name you can remember.
Now we go back to Linux. Copy the fresh ISO to the Linux machine and fire up VirtualBox. If you skipped the nLite section, just use the normal ISO or CD instead.
Create a new virtual machine, give it a sparse (not pre-allocated) 5GB disk, or how much you are willing to spend on it. Set the amount of memory to 256 and make sure the Windows XP ISO or CD is hooked up to the virtual machine.
In my case, the Windows XP CD was 250MB in size (after editing) and the installation completed in 15 minutes. After activating Windows you have to install the VirtualBox guest additions (from the VirtualBox menu when the machine is running) and you are set!
Now open Internet Explorer, download Windows Live Writer and install it. Press Host+L (normally Right Ctrl + L) and behold, Windows Live Writer in Linux!
I docked the Windows XP task bar on the top side of the screen so it won't interfere with the KDE task bar. I added WLW to the Quick Bar and that's it. Another benefit: when visiting Windows Internet Exploder Only site (like Exact Online) I can now use Internet Explorer.
This whole solution has only 2 small down sides: first, you need to allocate memory for the virtual machine just to run one program. Personally, I have 2GB memory, I can spare the 256MB.
Secondly, the windows are blitted from the full desktop. Because VirtualBox will only for into full screen mode on one screen, your Windows programs need to stay on that screen as well.