|
|
|
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/.trinity)
|
|
|
|
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.
|
|
|
|
|