Ok, after 8+ hours of trolling the forums and testing I finally got it what I wanted working.
These are the steps I took:
1. Tell VB you want 2 monitors:
Code: Select all
VBoxManage modifyvm XP-vrdpmulticon on
VBoxManage modifyvm XP -monitorcount 2
2. Tell Windows you want 2 monitors:
Start the VM using the gui, right click the desktop, go to preferences and attach the second monitor. Chage the size at this point to the monitor size you want it to be. You might have to redo this resizing, but this was a critical step at some point for me.
3. Tell linux where to place the windows. This step was essential for me becasue rdesktop -f wouldn't work, ie. it would be full screen on one monitor, but just black out the other monitor. I tried all the rdesktop flags I could think of to get fullscreen to only work on a single monitor but nothing worked. Instead try changing the compiz settings: System -> Preferences -> Advanced Desktop Effects Settings
- 1. Get Rid of the Borders on all rdesktop windows.
Goto: Window Decoration (make sure it is enabled)
Decoration windows: any & !(class=rdesktop)
Shadow windows: any & !(class=rdesktop)
2. Set the windows rules for all rdesktop windows.
Goto: Window Rules (make sure it is enabled)
Skip taskbar: title=rdesktop - localhost
Skip pager: title=rdesktop - localhost
No ARGB visuals: title=rdesktop - localhost
Non movable windows: title=rdesktop - localhost
Non minimizable windows: title=rdesktop - localhost
Non maximizable windows: title=rdesktop - localhost
Non closable windows: title=rdesktop - localhost
3. Tell where to load each rdesktop screen. I have two screens 1280x1024. Adjust the numbers accordingly.
Goto: Place Windows (make sure it is enabled)
Under Fixed Window Placement, Add Windows with fized positions:
title=screen1, X position=0, Y position=0
title=screen2, X position=1280, Y position=0
4. Optional, if you want to be able to switch desktops by rotating the cube.
Goto: Rotate Cube (make sure it is enabled)
check Edge Flip Pointer
Note: my X configuration file was setup to use TwinView. I used [/i]
5. Start the VM headless, and
wait for it to boot.
6. Change the video size. I used 999 because I have a 1280x1024 monitor with only one 24pixel toolbar at the top. Subtract another 24 if you have two toolbars.
Code: Select all
VBoxManage controlvm XP setvideomodehint 1280 999 32 0
7. Open rdesktop
Code: Select all
rdesktop -d @1 -D -T screen1 -u mishkin localhost:3389 &
8. Make sure windows has the resolution of your second monitor correct. Go to preferences and make sure it is attach and change the size to match the first monitor (in my case 1280x999). If your VM is crashing at this point, ie. with rdesktop, then I found I had to change my desktop backroung in Windows. Sounds silly I know, but it worked. I changed mine to just a solid color.
9. Restart the VM. Shutdown the VM, so the setting in windows save properly so you don't have to do Step 9 everytime. I also did a restart of my X server at this point to make sure all VBox process were killed. Ctrl-alt-backspace.
10. Get everything to run with this script:
Code: Select all
#!/bin/bash
# Run VM in headless mode
VBoxHeadless -s XP &
# Set Video size
VBoxManage controlvm XP setvideomodehint 1280 999 32 0
# Wait for it to boot
sleep 15
# Run first screen
rdesktop -d @1 -D -T screen1 -u mishkin localhost:3389 &
#can't launch the second screen right away or it crashes
sleep 5
# Run second screen
rdesktop -d @2 -D -T screen2 -u mishkin localhost:3389 &