This is now at http://techbase.kde.org/Projects/KWin/4.0-release-notes .
svn path=/trunk/KDE/kdebase/workspace/; revision=787981
This commit is contained in:
parent
1927a283b3
commit
ca5cc5c034
1 changed files with 0 additions and 248 deletions
248
NOTES_4_0
248
NOTES_4_0
|
@ -1,248 +0,0 @@
|
|||
KWin release notes for KDE4.0
|
||||
=============================
|
||||
|
||||
= Introduction =
|
||||
|
||||
KWin, the standard KDE window manager, in KDE4.0 ships with the first version
|
||||
of built-in support for compositing, making it also a compositing manager.
|
||||
This allows KWin to provide advanced graphical effects, like for example with Compiz,
|
||||
while also providing all the features from previous KDE releases (such as very good
|
||||
intergration with the rest of KDE, advanced configurability, focus stealing prevention,
|
||||
well-tested window manager, robust handling of misbehaving applications/toolkits, etc.).
|
||||
Unlike Compiz, KWin still functions even when no system support for compositing is
|
||||
available, with only compositing features not being available in such case.
|
||||
|
||||
Previous KWin versions in later KDE3.x releases included a standalone compositing
|
||||
manager called kompmgr, based on the xcompmgr compositing manager. Kompmgr was only
|
||||
loosely tied with KWin, used only XRender for rendering and provided only basic
|
||||
features like transparency, shadows and fade in/out animations. Compositing manager
|
||||
in KWin in KDE4.0 is integrated with the rest of KWin, can use either OpenGL or XRender
|
||||
for rendering and has a framework for compositing effects, all these allowing KWin
|
||||
to provide a much wider range of features.
|
||||
|
||||
Note, however, that compositing support in KWin in KDE4.0 is still considered experimental,
|
||||
for several reasons. System support for compositing is often being problematic (various bugs
|
||||
in X, drivers or other parts of the system), manual configuration of X may be required
|
||||
for proper results (see below), some applications may not be prepared and work well
|
||||
with compositing, the performance may not be adequate, and other problems.
|
||||
Also, while KWin's compositing support is considered usable and reasonably stable, it
|
||||
is relatively new code and has been tested only on a limited range of hardware.
|
||||
|
||||
Therefore, compositing support in KWin is disabled by default, and needs to be explicitly
|
||||
enabled. If there will be any problems, you can disable it again (see below for troubleshooting)
|
||||
and report a bug with all relevant information about the problem.
|
||||
|
||||
|
||||
= Setting up =
|
||||
|
||||
Compositing support is enabled in KWin's configuration. Press Alt+F3 and select 'Configure Window
|
||||
Behavior'. In the configuration module, select page 'Desktop Effects' and enable checkbox
|
||||
'Enable desktop effects'. After accepting the changes, a dialog with a timeout will appear,
|
||||
asking to confirm enabling of compositing support. If you do not confirm within the timeout,
|
||||
compositing support will be disabled again, therefore, if enabling compositing triggers
|
||||
any problems, it should be sufficient to wait several seconds before the changes are reverted.
|
||||
Note that after enabling or disabling compositing it is recommended to restart your KDE
|
||||
session in order to ensure that all applications detect the change.
|
||||
|
||||
If you cannot enable desktop effects, it may be because either your KDE is not built
|
||||
with necessary support, or more probably because your system is not capable of providing
|
||||
compositing support. See file
|
||||
http://websvn.kde.org/*checkout*/trunk/KDE/kdebase/workspace/kwin/COMPOSITE_HOWTO
|
||||
for some instructions on setting up your system. Note that there may be other factors
|
||||
affecting whether you do or do not have compositing support.
|
||||
|
||||
|
||||
= Usage =
|
||||
|
||||
A quick overview of features provided by compositing manager in KWin:
|
||||
|
||||
- Ctrl+F9 (and Ctrl+F10 for windows from all desktops) shows an overview of all windows
|
||||
and allows activating one of them. The feature can be also activated by moving the mouse
|
||||
into the top-left screen corner. A window can be activated by clicking it or by using arrows
|
||||
and Enter key. You can also type text to filter the list of windows.
|
||||
- Ctrl+F8 shotcut activates a desktop grid - all your virtual desktops will be arranged
|
||||
on the screen (as an enlarged pager) - you can select and activate desktops using
|
||||
a number, a function key, by clicking on it or by using arrows and Enter key,
|
||||
you can move windows by dragging them or by right-clicking on them.
|
||||
- The DesktopGrid effect also provides animations when switching between virtual desktops (can
|
||||
be turned off).
|
||||
- The window switcher (Alt+Tab by default) provides live thumbnails of windows.
|
||||
- Windows blocked by modal dialogs are dimmed.
|
||||
- Screen can be zoomed in and out using Win+<equals>, Win+<minus> and reset using Win+0 (
|
||||
it is currently not possible to use mouse wheel, but this feature is planned). Note that
|
||||
because of input transformation not being yet available in X the zoomed screen has to move
|
||||
around to keep the mouse pointer at the same place like it would be when not zoomed.
|
||||
- Screen can be shown with inverted colors by pressing Ctrl+Win+I (accessibility feature,
|
||||
Invert effect is not enabled by default).
|
||||
- There are fade animations during login and logout.
|
||||
- Windows fade in and out.
|
||||
- Minimize animation to/from taskbar.
|
||||
- Windows have shadows.
|
||||
|
||||
There are more features that are not enabled by default and need to be explicitly enabled
|
||||
in the configuration.
|
||||
|
||||
There are various videos showing various compositing features of KWin. For example,
|
||||
search for 'kwin_composite' at youtube.com (please keep in mind that many of those windows
|
||||
are old and show testing or demo effects).
|
||||
|
||||
|
||||
= Using KWin without KDE desktop =
|
||||
|
||||
Just like with older KWin versions it is possible to use KWin also with other desktop
|
||||
environments or even as a standalone window manager, as long as required KDE libraries
|
||||
are installed. Please note that KWin is a pure window manager and does not provide a panel
|
||||
or handle desktop background like some window managers do. KWin's compositing features
|
||||
work in the standalone mode, with some functionality missing (because of missing taskbar,
|
||||
for example), and, while this has not been tested, it is expected that compositing
|
||||
features will work also when running in other desktop environments, possibly with some
|
||||
functionality missing again. Reports on using KWin with other desktop environments
|
||||
are welcome.
|
||||
|
||||
|
||||
= Performance =
|
||||
|
||||
Compositing internally works by redirecting window drawing to offscreen memory and composing
|
||||
it on the screen in an additional drawing pass. This means that in general composited desktop
|
||||
on average has worse performance that non-composited desktop (although in some cases it
|
||||
may perform better, be that real improvement or just perceived one due to animations, better
|
||||
synchronization or similar factors). For example, binding window pixmaps to OpenGL textures
|
||||
(that is, preparing window contents for drawing) can be a relatively costly operation
|
||||
with large windows, making things like animations in Plasma desktop window or page scrolling
|
||||
in a maximized browser window jerky. Heavy system load can also cause the compositing manager
|
||||
not repaint often enough, resulting in lagging or jerky screen redrawing.
|
||||
|
||||
KWin in KDE4.0 is also relatively new code and has not been extensively optimized yet,
|
||||
therefore its performance may not be in some areas comparable with performance of other
|
||||
compositing managers. In such cases performance should be improved with newer versions.
|
||||
|
||||
Note that current XRender implementations (in X/drivers) often perform rather poorly and
|
||||
therefore the OpenGL mode usually should have much better performance. See below for notes
|
||||
on XRender mode.
|
||||
|
||||
Tip: Performance/smoothness with nVidia cards: Smoothness of KWin rendering
|
||||
can be improved by setting env.variable KWIN_NVIDIA_HACK to 1 (e.g. append
|
||||
"export KWIN_NVIDIA_HACK=1" to your ~/.profile file). This sets __GL_YIELD=NOTHING
|
||||
for KWin, letting KWin use more CPU time for OpenGL operations, however
|
||||
at the expense of affecting performance of other applications. This is
|
||||
therefore disabled by default. This setting may be removed in the future
|
||||
if the negative impact becomes insignificant. See section "OPENGL YIELD BEHAVIOR"
|
||||
in README.txt for nVidia cards.
|
||||
|
||||
|
||||
= Troubleshooting =
|
||||
|
||||
As already said, compositing support in KWin is considered usable and reasonably stable,
|
||||
but due to several reasons it may not work properly for you.
|
||||
|
||||
If there are any problems with compositing support, the simplest option is to disable
|
||||
it again. KWin will normally continue functioning, only not providing compositing features.
|
||||
If you cannot normally turn off compositing support (for example because the screen
|
||||
is corrupted), you can turn it off using one of these ways:
|
||||
- run command 'kwriteconfig --file kwinrc --group Compositing --key Enabled false' from
|
||||
the command line
|
||||
- set environment variable 'KWIN_COMPOSE' to 'N' (append 'export KWIN_COMPOSE=N' at the end
|
||||
of your ~/.profile), this affects compositing only temporarily
|
||||
You will probably need to switch to text mode or start failsafe session from KDM to be
|
||||
able to perform this.
|
||||
|
||||
See file http://websvn.kde.org/*checkout*/trunk/KDE/kdebase/workspace/kwin/COMPOSITE_HOWTO
|
||||
for some issues with various graphics cards.
|
||||
|
||||
|
||||
= XRender mode =
|
||||
|
||||
It is possible to use XRender for compositing instead of the default OpenGL.
|
||||
XRender mode in general has less features, however at the moment it is also considered
|
||||
unstable - it has not received as much testing as OpenGL mode, some features may be incomplete
|
||||
and it is recommended to use the OpenGL mode if possible. Also note that current XRender
|
||||
implementations (in X/drivers) often perform rather poorly.
|
||||
|
||||
|
||||
= Developers =
|
||||
|
||||
KWin provides support for writing compositing effects that may be loaded into KWin as
|
||||
plugins. These effects communicate with KWin core using C++ API specially designed for this
|
||||
purpose, making effects not directly dependent on KWin core and changes in it.
|
||||
|
||||
At the time of the KDE4.0 release, since compositing support is still under heavy development,
|
||||
this API is considered unstable and subject to change. If you write your own effect plugin,
|
||||
you may need to recompile it after KWin update. KWin will however detect incompatible
|
||||
versions and will not load such plugins (automatic, you do not need to provide any code for it).
|
||||
As the compositing support will become more stabilized, this API will be kept backwards and
|
||||
binary compatible, just like with other KDE libraries.
|
||||
|
||||
At the time of the KDE4.0 release, API for compositing effects is unfortunately only sparsely
|
||||
documented. Developers interested in writing compositing effects for KWin are suggested
|
||||
to use source code of effects shipped with KWin (the Howto effect as the starting point)
|
||||
and/or ask on the KWin mailing list.
|
||||
|
||||
Links to various KWin-related documents are available at http://techbase.kde.org/Projects/KWin .
|
||||
|
||||
= FAQ =
|
||||
|
||||
== Why not Compiz? ==
|
||||
|
||||
It is possible to use Compiz instead of KWin with KDE, however KWin remains the default window manager.
|
||||
The option of replacing KWin with Compiz had been evaluated before work on compositing features
|
||||
of KWin started and the conclusion was, in short, that it would lead to a lot of work and duplicated
|
||||
effort.
|
||||
|
||||
To answer in more detail, several technical things need to be explained. Both KWin and Compiz
|
||||
are a combined window manager and compositing manager. Window manager functionality takes care
|
||||
of all aspects of handling windows, such as their placement, selecting the active one as so on.
|
||||
This functionality is crucial for a desktop - without a window manager it would be very difficult
|
||||
to perform most operations with windows. Compositing manager functionality, on the other hand,
|
||||
can be considered optional - while it brings many new features, it is still possible very well
|
||||
to use a desktop (such as with KWin in KDE3).
|
||||
|
||||
The reasons to add compositing support to KWin instead of using Compiz include:
|
||||
|
||||
- Compiz at the present time is very likely the most advanced compositing manager with many features,
|
||||
with a headstart when compared with KWin, however, this cannot be said about Compiz as the window manager,
|
||||
where KWin has the advantage of being a much more tested codebase, providing more stable, well-tested
|
||||
and robust window manager, with many features. Given that, as said above, window manager functionality
|
||||
is considered to be more important, it would be unwise to force all KDE users to a change that
|
||||
would likely mean regressions in many aspects.
|
||||
|
||||
These regressions would include lesser integration with KDE, visual and behavioral changes
|
||||
(the 'KDE window decorator' shipped with Compiz only mimics the look of KWin's decorations,
|
||||
but does not provide the same functionality, even the Alt+F3 popup menu visibly differs),
|
||||
possible introduction of problems that have already been fixed in KWin, missing features
|
||||
that have already been implemented in KWin, and so on. Developing, testing and bugfixing a window
|
||||
manager can be a very demanding work and repeating all the work done on KWin again for Compiz would
|
||||
presumably require a lot of effort. As such, claims that KWin is 'reinventing the wheel' are missing
|
||||
the point, since Compiz, being a relatively new window manager, is reinventing at least as much,
|
||||
if not more, from other window managers including KWin,
|
||||
|
||||
Also, given that there can be only one window manager and one compositing manager at a time,
|
||||
there would not be possibly a way to remedy these problems by somehow running Compiz and KWin together.
|
||||
|
||||
- Compiz currently does not work at all when compositing is not possible, thus requiring a fallback
|
||||
window manager for such case. This in practice would mean that KDE developers would be required
|
||||
to work on improving Compiz and would have to keep KWin at least for maintenance as the fallback
|
||||
for Compiz, thus having two window managers for KDE. Besides the developer work of taking care
|
||||
of two window managers this would also bring many user problems resulting from two different
|
||||
window managers, with differences in the look and feel, feature sets and bugs.
|
||||
|
||||
It should be also noted that Metacity, GNOME's window manager, has not been dropped in favour of Compiz
|
||||
either, but is still, to our knowledge, under development and adding compositing features to it
|
||||
is a work in progress.
|
||||
|
||||
|
||||
== Why not use plugins from Compiz? ==
|
||||
|
||||
This option was considered in the past as well. After examination of Compiz code the conclusion was
|
||||
that this is technically almost impossible. Compiz plugins appear to be merely parts of Compiz
|
||||
that are separated from its core, but which still heavily depend on it - there are even plugins
|
||||
that appear to copy and paste parts of Compiz core and modify it. Making it possible to use such
|
||||
plugins from KWin would essentially require KWin to become Compiz.
|
||||
|
||||
|
||||
== Why add compositing support to KWin when Compiz is better ? ==
|
||||
|
||||
There can be different ideas about what better means, but regardless of that, the main aim of KWin
|
||||
is not to replace Compiz. Many users have asked for compositing support in KDE, and, as explained
|
||||
in 'Why not Compiz?', the best way to achieve that is considered to be adding compositing
|
||||
support to KWin. KWin aims to provide compositing support, focusing on providing useful compositing
|
||||
features and basic visual effects, while keeping its other strengths.
|
Loading…
Reference in a new issue