filbo wrote:
Unfortunately this does not solve the problem I was trying to solve, which is: make the FreeBSD console window very small, but completely visible, without doing OS/X window-size dragging. Because: I'm doing FreeBSD kernel development and crashing the VM a lot. Each time it reboots, VMware VBIOS resets the mode, which undoes my window-size dragging.
The 80x25, 8x14 mode helps a bit -- it's slightly smaller than the default 8x16.
Sadly, 80x25, 8x8 doesn't help. Someone, and I think it's VMware, is line-doubling the 8x8 cell. So I get all the massive ugliness of 8x8 chars plus all the space consumption of 8x16.
Can someone @VMware please do something about the 640x200 (80x25 8x8) text mode being line-doubled? Is there a seekrit .vmx file option that makes it stop?
It would also be nice if windows remembered their manually dragged position and scaling. I'm doing kernel/network development with a network of three VMs. I want their consoles neatly arranged one above the other, drag-scaled down about 30% so they all fit nicely with no overlap. I can *do* the positioning and scaling, but every time I reboot the VMs I get to manually re-scale their console windows.
If you're referring to resizing and positing the VM's window from the OS X side of things then here is what I'd do to avoid manual receptive tasks.
I have AppleScript preferences set to show the Script menu in the Apple menu bar so as to have quick access to a handful of scripts that I use daily...
Start VMware Fusion and the target Virtual Machine position the VM's window how/where you want it and then open AppleScript.
Now copy and paste the command below in the AppleScript Editor and then change "Name_of_VM_window" to the appropriate name of the window. Now click the Run button and then look at the Replies in the Event Log for the bounds of the window.
tell application "VMware Fusion" to get bounds of window "Name_of_VM_window"
Now copy and paste the command below in the AppleScript Editor and then change "Name_of_VM_window" to the appropriate name of the window and then copy and paste the appropriate bounds from get bounds output for the window. Now delete the get bounds line as it's no longer needed. Save the script to ~/Library/Scripts and it will be available on the Scripts menu on the Apple menu bar.
tell application "VMware Fusion" to set bounds of window "Name_of_VM_window" to {0, 0, 0, 0}
From then on when you start the VM, let it do the dance it does, and then you can click the script to automatically have the window positioned and sized the way you want it to be! This way it's only two mouse clicks to automatically get it where on the screen and the size you want it vs. manually having to drag it and resize it etc.
Message was edited by: WoodyZ - Added testing info a code example.
As a test, I created 3 VM's using Core Image from the The Core Project and after starting each I rearranged the 3 windows so that were stacked above one another and the same size to the left side of the Desktop, got the bounds information for each by replicating the first line of code above. I the copied and pasted the appropriate block of code from the Results and modified is accordingly while adding a Try block so as to avoid any errors if I click it accidentally on the Script menu and those VM's are not running. I then saved it so it would be on the Scripts menu on the Apple menu bar. I named it "Arrange Core VM's".
tell application "VMware Fusion" try set bounds of window "Core 1" to {1686, 26, 2369, 460} set bounds of window "Core 2" to {1686, 467, 2367, 900} set bounds of window "Core 3" to {1686, 908, 2365, 1339} end try end tell
To test it, I moved all three VM's to different places on the Desktop and changed the sizes. When I clicked "Arrange Core VM's" from the Scripts menu on the Apple menu bar they all snapped into place, stacked nicely above each other and lined up on the left side of the Desktop.
If you want it to keep from accidentally opening VMware Fusion then add some additional code to check if it's running.
on is_running(appName) tell application "System Events" to (name of processes) contains appName end is_running set isfRunning to is_running("VMware Fusion") if isRunning then tell application "VMware Fusion" try set bounds of window "Core 1" to {1686, 26, 2369, 460} set bounds of window "Core 2" to {1686, 467, 2367, 900} set bounds of window "Core 3" to {1686, 908, 2365, 1339} end try end tell end if