CONTENTS:
=========


1. Pre-configuring window-specific settings





1. Pre-configuring window-specific settings
===========================================

Window-specific settings is a feature of KWin that allows specifying some
settings only for a specific window or windows. See the Window-specific
settings section in the KWin configuration and the Special settings
menu entries in Alt+F3/Advanced menu.

One aspect of window-specific settings is the ability to specify various
workarounds for (usually broken) applications that otherwise don't work
properly with KWin. This section describes how to create additional
window-specific settings that will be automatically used by all users
without any need of manual configuration.

Example case:

Application FooBar does not specify any maximum size for its main window,
but when resized to larger size than 1600x1200 it crashes because of a bug.
Manual configuration of a window-specific setting that avoids this problem
is opening and activating this window, selecting
Alt+F3/Advanced/Special window settings, activating tab Workarounds, enabling
setting Maximum size, changing it to Force and entering "1600,1200" as
the maximum size, which will make KWin force this size as the maximum size.

To create such window-specific setting automatically without a need of doing
it manually for every user (for example when doing a large deployment), follow
these steps:

- Back up your $KDEHOME/share/config/kwinrulesrc ($KDEHOME usually being $HOME/.kde)
 and remove it
- Run 'dcop kwin default reconfigure'
- Create manually all window-specific settings that should be included (see above)
- When done, check in Window-specific settings configuration module
 (Alt+F3/Configure window behavior/Window-specific settings) that all rules are
 included
- Create a copy of $KDEHOME/share/config/kwinrulesrc and restore the original one
- Rename the copy (i.e. the newly created kwinrulesrc) to have its unique name
 (e.g. foobar_fix_maxsize in this example case)
- Be careful with manual modifications of the file, especially make sure the count=
 field in the [General] group is updated if needed
- Create a file for kconfig_update like this (named kwin_foobar_fix_maxsize.upd
 in this example):

# kwin_foobar_fix_maxsize.upd start # 
Id=foobar_fix_maxsize
File=kwinrules_update
Group=Dummy
Options=overwrite
ScriptArguments=foobar_fix_maxsize
Script=kwin_update_default_rules

# kwin_foobar_fix_maxsize.upd end # 

- The kconfig_file (kwin_foobar_fix_maxsize.upd) is to be placed
 in $KDEDIR/share/apps/kconf_update/
- The file with the window-specific settings (foobar_fix_maxsize) is to be placed
 in $KDEDIR/share/apps/kwin/default_rules/


All KDE user accounts should have these new window-specific settings added
automatically during next KDE startup (or within few seconds if they are active).
They can be checked again in the Window-specific settings configuration module of KWin.

