• Diff for "Plugins/Freewins"
  • Immutable Page
  • Info
  • Attachments
Differences between revisions 1 and 10 (spanning 9 versions)
Revision 1 as of 2008-01-18 00:24:48
Size: 1015
Editor: cpe-76-189-178-118
Comment:
Revision 10 as of 2008-04-19 13:03:41
Size: 7227
Editor: CPE-58-161-138-188
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[Card(Plugin align=right, name=Freewins, icon=plugin-unknown.png, pack=None, cat=Effects, hist=Started as a simple way to rotate windows - now with more functionality added by SmSpillaz,)]] <<Card(Plugin align=right, name=Freely Transformable Windows, icon=plugin-freewins.png, pack=None, cat=Effects, hist=Started as a simple way to rotate windows—now with more functionality added by !SmSpillaz,)>>
Line 3: Line 3:
'''Freewins''' allows you to rotate your windows in 3d, as well as scale them. At this time, rotated or scaled windows are not usable, but once input redirection is finally up and running you will be able to interact with your "free" windows. The '''Freely Transformable Windows''' plugin allows windows to be rotated, slanted, and scaled.
Line 5: Line 5:
[[TableOfContents]] <<TableOfContents>>
Line 7: Line 7:
== Using Freewins == == 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.
Line 15: Line 17:
{i} 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.
Line 17: Line 23:
Configuration options for Freewins include setting the manual rotation and scale values, animation speed, and whether windows snap to certain orientations. This section contains an explanation of every option available to this plugin, presented in the same order as they appear in '''[[CCSM]]'''.

=== Free Transformation ===

|| <<Anchor(mouse_sensitivity)>> ''Mouse sensitivity'' || How sensitive the transformation should be to mouse movement. ||
|| <<Anchor(snap)>> ''Snap'' || Should the window snap to a certain pattern of angles as it's being transformed? ||
|| <<Anchor(snap_threshold)>> ''Snap Threshold'' || The distance between each angle to snap to. ||

==== Helper Options ====

|| <<Anchor(circle_color)>> ''Helper Circle Color'' || The colour of the filled part of the circle when you toggle the ''[[#toggle_axis|axis help]]''. ||
|| <<Anchor(line_color)>> ''Helper Line Color'' || The colour of the circle when you toggle the ''[[#toggle_axis|axis help]]''. ||
|| <<Anchor(cross_line_color)>> ''Helper Cross Line Color'' || The colour of the crosshair when you toggle the ''[[#toggle_axis|axis help]]''. ||

==== Rotation ====

|| <<Anchor(z_axis_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 ||
|| <<Anchor(3d_percent)>> ''3D Rotation Percentage'' || How much of the window should be for 3D rotation ||
|| <<Anchor(auto_zoom)>> ''Auto Zoom'' || Zoom out from the window as it is rotated to ensure it does not take up a large screen area ||

==== Scaling ====

|| <<Anchor(scale_mode)>> ''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||
|| <<Anchor(allow_negative)>> ''Allow negative'' || Should windows be scalable until their size is negative? Windows with negative size look inverted. ||
|| <<Anchor(scale_uniform)>> ''Maintain aspect ratio'' || Keep a window's aspect ratio intact when scaling. ||
|| <<Anchor(min_scale)>> ''Minimum scale'' || The minimum size a window is allowed to be unless the ''[[#allow_negative|Allow negative]]'' option is enabled. ||

=== Manual Transformation ===

==== Rotation ====

|| <<Anchor(rotate_increment_amount)>> ''Rotate increment amount'' || How far to rotate per press of a rotation key binding. ||
|| <<Anchor(rotate_increment_time)>> ''Rotate increment time'' || How long it should take for each incremental rotation to finish animating. ||

==== Scaling ====

|| <<Anchor(scale_increment_amount)>> ''Scale increment amount'' || How much to grow or shrink a window per press of a scaling key binding. ||
|| <<Anchor(scale_increment_time)>> ''Scale increment time'' || How long it shoudl take for each incremental scaling to finish animating. ||

=== Misc ===


|| <<Anchor(reset_time)>> ''Reset animation time'' || How long the reset animation should last. ||

==== Helper Options ====

|| <<Anchor(circle_color)>> ''Helper Circle Color'' || The colour of the filled part of the circle when you toggle the ''[[#toggle_axis|axis help]]''. ||
|| <<Anchor(line_color)>> ''Helper Line Color'' || The colour of the circle when you toggle the ''[[#toggle_axis|axis help]]''. ||
|| <<Anchor(cross_line_color)>> ''Helper Cross Line Color'' || The colour of the crosshair when you toggle the ''[[#toggle_axis|axis help]]''. ||
|| <<Anchor(show_circle)>> ''Show 3D Rotation Circle'' || Show the 3D rotation area ||
|| <<Anchor(show_cross)>> ''Show crosshair'' || Show window origin crosshair ||
|| <<Anchor(show_region)>> ''Show input regions'' || Show which areas are clickable for the window||

==== Input Prevention ====

|| <<Anchor(shape_window_types)>> ''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]]''' ||
|| <<Anchor(shape_input)>> ''Shape input'' || The transformed window will have it's input prevented entirely, while still being able to be moved around via click & drag.<<BR>><<BR>> <!> ~-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]]''' {i} 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 ==

||||<tablewidth="100%" (>Window Rotation With Freewins.||<rowspan=6 width="1%"> {{attachment:freewins.png}} ||

Freely Transformable Windows

plugin-freewins.png

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

{i} 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 {i} 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.

freewins.png

Plugins/Freewins (last edited 2008-04-19 13:03:41 by CPE-58-161-138-188)