Freely Transformable Windows

Package

None

Category

Effects

Started as a simple way to rotate windows—now with more functionality added by SmSpillaz

The Freely Transformable Windows plugin allows windows to be rotated, slanted, and scaled.

Using Freely Transformable Windows

Freely Transformable Windows gives you the ability to rotate, slant, flip, and grow or shrink windows by scaling them. Unlike resizing a window normally, a scaled window's contents grow and shrink along with the window—text, buttons, and images inside the window will actually appear larger or smaller.

  • <Control><Shift>Left Click - Rotate or tilt window

  • <Control><Shift>Right Click - Scale window

  • <Control><Shift>W,A,S,D - Tilt window up, left, down, right, respectively

  • <Control><Shift>R - Reset window orientation

  • <Control><Shift>Q,E - Rotate window counter-clockwise and clockwise, respectively

At this time, you cannot interact normally with transformed windows due to technical limitations. This missing functionality will be implemented once input redirection becomes available in the X server. However, due to recent changes made to the architecture of the plugin, this is technically possible and there is a chance it may be implemented partially.

Configuration

This section contains an explanation of every option available to this plugin, presented in the same order as they appear in CCSM.

Free Transformation

Mouse sensitivity

How sensitive the transformation should be to mouse movement.

Snap

Should the window snap to a certain pattern of angles as it's being transformed?

Snap Threshold

The distance between each angle to snap to.

Helper Options

Helper Circle Color

The colour of the filled part of the circle when you toggle the axis help.

Helper Line Color

The colour of the circle when you toggle the axis help.

Helper Cross Line Color

The colour of the crosshair when you toggle the axis help.

Rotation

Rotation Type

Always 3D : The rotation of the window should always be on the X and Y Axis

-

Always 2D : The rotation of the window should always be on the Z axis and never the X and Y axis

-

Determine on Click : The rotation axis' will be X and Y if the click is within the region specified by 3D Rotation Percentage, otherwise it will be Z

-

Interchangeable : All 3 rotation Axis' are enabled and as the cursor moves closer to the edge of the window, the X and Y axis' are used less and the Z axis' more

3D Rotation Percentage

How much of the window should be for 3D rotation

Auto Zoom

Zoom out from the window as it is rotated to ensure it does not take up a large screen area

Scaling

Scale Mode

To Center : The window should scale down towards the center

-

To Opposite Corner : The window will scale towards the opposite corner, ALA Resize-Stretch mode

Allow negative

Should windows be scalable until their size is negative? Windows with negative size look inverted.

Maintain aspect ratio

Keep a window's aspect ratio intact when scaling.

Minimum scale

The minimum size a window is allowed to be unless the Allow negative option is enabled.

Manual Transformation

Rotation

Rotate increment amount

How far to rotate per press of a rotation key binding.

Rotate increment time

How long it should take for each incremental rotation to finish animating.

Scaling

Scale increment amount

How much to grow or shrink a window per press of a scaling key binding.

Scale increment time

How long it shoudl take for each incremental scaling to finish animating.

Misc

Reset animation time

How long the reset animation should last.

Helper Options

Helper Circle Color

The colour of the filled part of the circle when you toggle the axis help.

Helper Line Color

The colour of the circle when you toggle the axis help.

Helper Cross Line Color

The colour of the crosshair when you toggle the axis help.

Show 3D Rotation Circle

Show the 3D rotation area

Show crosshair

Show window origin crosshair

Show input regions

Show which areas are clickable for the window

Input Prevention

Prevented Input Window Types

Which window types to enable input prevention with. Some windows may not behave correctly with this enabled, so you may disable them here. To see how to specify them, see WindowMatching

Shape input

The transformed window will have it's input prevented entirely, while still being able to be moved around via click & drag.

<!> This feature is experimental and may not work correctly.

DBUS

Because of it's generic nature of simply rotating and scaling windows, Freely Transformable Windows can be accessed via DBUS and the ActionSystem:Compiz Action System The Plugins/DBUS:DBUS plugin must be enabled for DBUS control to occur.

Action Description

Action Name

Arguments

Set the rotation to angles specified

rotate

x : x Angle to set rotation to (double)

y : y Angle to set rotation to (double)

z : z Angle to set rotation to (double)

window : The X Window ID to transform (int)

Add rotation to a window

increment_rotate

x : x degrees to add to rotation (double)

y : y degrees to add to rotation (double)

z : z degrees to add to rotation (double)

window : The X Window ID to transform (int)

Set the scale to scales specified

scale

x : x Scale factor to scale the window by (double)

y : y Scale factor to scale the window by (double)

window : The X Window ID to transform (int)

Screenshots

Window Rotation With Freewins.