IS:WindowSnapper

Contents
What is WindowSnapper?
WindowSnapper is an open source Picture-in-Picture solution for Inner Space. Although configuration is not simplified by this particular solution, it does make instant Picture-in-Picture easy.
Future versions or custom modifications could include an in-game user interface window to help with configuration.
Features
- WindowSnapper does these things on a per session basis
- Automatically instantly resizes and positions the window, including always on top) when it is no longer the active foreground window (the window "snaps to" this position and back to what it was).
- Size and position of the switched window is configurable both during run-time and when launched
- CTRL+ALT+P hotkey (configurable) causes snapper to ignore the next time the window is sent to the background (press again to change your mind)
- CTRL+ALT+O hotkey (configurable) causes snapper to "snap to" with a border for easy dragging and resizing the snap to position. Press again when finished to complete the process and store the new position.
- Provides an instant rollover zoom feature for snapped windows (video of rollover feature) with an optional rollup/rolldown over time effect (video of rollover with effect]) -- feature can be disabled, and the zoom level can be configured as well
- Includes an autolayout (EzMode!) feature that can automatically dock snapped windows to an inside or outside edge of the screen in popular form (outside is for dual monitor setups, specifically where dragging the window to another monitor will not provide a performance hit, such as with a single video card on Windows Vista). This feature covers the vast majority of WindowSnapper setups!
- Optionally provides wheelswitcher functionality, allowing you to hold down a key (such as Ctrl) and use the mouse wheel to quickly switch through windows
How fast is "Instant"?
See this youtube video for a demonstration
Installing WindowSnapper
- Make sure you have Inner Space build 4759 or later (you can hover your mouse over the icon in the system tray to find out)
- Download the latest version: windowsnapper-20081107.zip
- Extract to the Scripts folder of your Inner Space installation
Launching WindowSnapper
Ez-Mode with AutoLayout
- Per Inner Space session you want to snap, enter the following command in the console
run windowsnapper
- Followed by the following command
autolayout
That's it! Go play! If you don't like the default AutoLayout, it is easy to try another AutoLayout. See the AutoLayout command below for syntax and examples.
Advanced
- Per Inner Space session you want to snap, enter the following command in the console
run windowsnapper
- This will spit out the following information
WindowSnapper: Window will snap to 800,0 with size 320x240 To change snap position, enter command (e.g.) snappos 123,456 To change snap size, enter command (e.g.) snapsize 640x480 WindowSnapper also accepts -size 640x480 and -pos 123,456 as parameters, such as run windowsnapper -size 640x480 -pos 123,456
- To launch WindowSnapper with a custom snap-to size, pass a -size parameter as follows (180x120 is only an example size)
run windowsnapper -size 180x120
- To launch WindowSnapper with a custom snap-to position, pass a -pos parameter as follows (100,100 is only an example position)
run windowsnapper -pos 100,100
- To launch WindowSnapper with both a custom snap-to position and size, pass both parameters as follows
run windowsnapper -size 180x120 -pos 100,100
WindowSnapper also takes any of the other parameters used by the SnapSet command described below.
Changing configuration during run-time
- To change the snap-to position while WindowSnapper is running, use the snappos command as follows
snappos 100,100
- To change the snap-to size while WindowSnapper is running, use the snapsize command as follows
snapsize 180x120
Using AutoLayout
The AutoLayout feature of WindowSnapper is a snap to use! Simply launch WindowSnapper without parameters (run windowsnapper) -- or with parameters configuring rollover, wheelswitcher, or hotkeys if you prefer -- and then use the autolayout command (just type autolayout in the console and hit enter). That's pretty much it!
When used without parameters, AutoLayout will detect whether you have a widescreen, or standard screen ratio, and line snapped windows along the bottom (widescreen) or right (standard screen) edges of the screen, with enough room for 5 windows. If you want to change the number of windows, or the edge of the screen, it is very easy to specify! See the AutoLayout command below for syntax and examples.
Keybinds
- Keybinds are always configurable, but by default, the following keybinds are provided
- CTRL+ALT+P: Ignore the next time this window goes inactive, so as to not "snap to". This keeps the window in full size mode.
- CTRL+ALT+O: Toggle draggable mode, allowing you to configure the snap-to size and position by dragging with the mouse.
Commands
SnapSet
Syntax: SnapSet [OPTIONS ...] Options may be one or more of the following:
- -size #x#: Specify the snap-to size. Example: -size 320x240
- -pos #,#: Specify the snap-to position. Example: -pos 800,0
- -norollover: Disable RollOver functionality
- -rollover: Enable RollOver functionality (default)
- -rolloverscale #.##: Specify the zoom level for RollOver functionality. For example, 1.5 means a 50% increase (150% scale), or 2 means a 100% increase (200% scale). Example: -rolloverscale 1.5. Default is 1.5.
- -rolloverframes #: Specify the number of frames (as in, frames per second) to take scaling the window up or down (for rollup/rolldown over time). Example: -rolloverframes 10. Default is 1.
- -dragkey <combo>: Specify a key combination to enable draggable mode. Example: -dragkey "CTRL+ALT+O". Default is CTRL+ALT+O.
- -ignorekey <combo>: Specify a key combination to ignore the next window deactivation (so the window will not snap to, when you switch away). Example: -dragkey "CTRL+ALT+P". Default is CTRL+ALT+P.
- -wheelswitcher <key>: Specify a key (not a combination) that, when held, will allow you to scroll the mouse wheel to switch sessions. Example: -wheelswitcher Ctrl.
- -nowheelswitcher: Disable wheelswitcher functionality (default)
SnapPos
Syntax: SnapPos <X>,<Y>
- Examples
snappos 100,100 snappos 800,0
SnapSize
Syntax: SnapSize <Width>x<Height>
- Examples
snapsize 320x240 snapsize 640x480
SnapDrag
Controls the draggable mode for this session. When in draggable mode, the snap-to size and position will be configurable by simply dragging the window.
Syntax: SnapDrag on|off|toggle
- Examples
snapdrag on snapdrag off snapdrag toggle
SnapDock
Docks the snap-to position to the top, bottom, left or right of the current window's snap-to position. The snap-to size will be copied exactly.
Syntax: SnapDock <other session name> top|bottom|left|right
- Examples
snapdock is2 bottom snapdock is3 right snapdock is4 left snapdock is5 top
AutoLayout
Positions the snap-to position for this session in its rightful position according to an automatic layout format
- Syntax 1
- AutoLayout
Used without parameters, AutoLayout will auto-detect which edge of the screen will best fit, for 5 snapped windows. For widescreen, this will be the bottom edge. For standard screen, this will be the right edge.
- Syntax 2
- AutoLayout [#] [outer] <EDGE>
- Parameters
- # - Optional. Number of windows to make room for (the lower the number, the larger the screens, so if you only want 2, you might also try leaving this default or 4 or so, depending on how large you want the windows). If this parameter is not provided, defaults to 5. Ideally your desktop resolution should be evenly divisible by this number.
- outer - Optional. If "outer" is specified, windows will be lined on the outside of the monitor instead of making room on the inside (used for dual monitor setups that allow moving the window between monitors, without performance hit -- e.g. single video card, on Windows Vista or certain XP setups)
- EDGE - Required. Can be left, right, top, or bottom.
- Examples
autolayout 5 left autolayout 4 right autolayout bottom autolayout outer right autolayout 6 top
Release history
- 2008-11-07 (To download this specific version: windowsnapper-20081107.zip)
- Fixed bug in Draggable mode when the window is left in this mode and loses focus. When the window loses focus while in Draggable mode, now saves and goes un-draggable
- Added optional mousewheel session switching. When enabled, allows you to hold a specified key (e.g. Ctrl) and scroll the mouse wheel to switch sessions
- Added AutoLayout, a nearly-idiot-proof method of configuring window sizes and positions. Should work well for most people.
- Added rollover effect, enabled by default. Rollup/rolldown over time functionality is available, but is currently synced with game rendering and thusly may not appear smooth, so by default, rollover effect is instantaneous.
- New commands: AutoLayout and SnapSet
- 2008-11-02 (To download this specific version: windowsnapper-20081102.zip)
- Added ability to drag to move or resize to set the snap-to position. New default CTRL+ALT+O bind toggles this special mode, using the new snapdrag command
- Added snapdock command
- 2008-10-31 (To download this specific version: windowsnapper-20081031.zip)
- Window frame style is now stored and restored, instead of always snapping back to a thick frame (resizable window)
Join us on IRC
We are on irc.lavishsoft.com in channel #isboxer, the best place to talk about and get help with all of the tools for multi-boxing with Inner Space! Whether you are already using it, or just have some questions for people who are, please feel free to stop by.
If you do not know how to join IRC, click here to join us via your browser!