mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
kwin: merge window rules into global rules config
prior to 93a4a9263b
it was done by a
separate program (kwin_update_default_rules)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
108f16a997
commit
96a522adbd
2 changed files with 16 additions and 38 deletions
|
@ -33,39 +33,8 @@ 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.
|
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
|
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
|
it manually for every user create file with the window-specific settings in
|
||||||
these steps:
|
$KDEDIR/share/apps/kwin/default_rules/
|
||||||
|
|
||||||
- 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
|
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).
|
automatically during next KDE startup (or within few seconds if they are active).
|
||||||
|
|
|
@ -21,12 +21,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include "rules.h"
|
#include "rules.h"
|
||||||
|
|
||||||
#include <fixx11h.h>
|
#include <fixx11h.h>
|
||||||
|
#include <QRegExp>
|
||||||
|
#include <QFile>
|
||||||
#include <kconfig.h>
|
#include <kconfig.h>
|
||||||
#include <KXMessages>
|
#include <KXMessages>
|
||||||
#include <QRegExp>
|
|
||||||
#include <ktemporaryfile.h>
|
#include <ktemporaryfile.h>
|
||||||
#include <QFile>
|
|
||||||
#include <ktoolinvocation.h>
|
#include <ktoolinvocation.h>
|
||||||
|
#include <kstandarddirs.h>
|
||||||
|
|
||||||
#ifndef KCMRULES
|
#ifndef KCMRULES
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
|
@ -973,13 +974,21 @@ void RuleBook::load()
|
||||||
deleteAll();
|
deleteAll();
|
||||||
KConfig cfg("kwinrulesrc", KConfig::NoGlobals);
|
KConfig cfg("kwinrulesrc", KConfig::NoGlobals);
|
||||||
int count = cfg.group("General").readEntry("count", 0);
|
int count = cfg.group("General").readEntry("count", 0);
|
||||||
for (int i = 1;
|
for (int i = 1; i <= count; ++i) {
|
||||||
i <= count;
|
|
||||||
++i) {
|
|
||||||
KConfigGroup cg(&cfg, QString::number(i));
|
KConfigGroup cg(&cfg, QString::number(i));
|
||||||
Rules* rule = new Rules(cg);
|
Rules* rule = new Rules(cg);
|
||||||
m_rules.append(rule);
|
m_rules.append(rule);
|
||||||
}
|
}
|
||||||
|
const QStringList kwinrules = KGlobal::dirs()->findAllResources("data", "kwin/default_rules/*.kwinrules");
|
||||||
|
foreach (const QString &kwinrule, kwinrules) {
|
||||||
|
KConfig cfg(kwinrule, KConfig::NoGlobals);
|
||||||
|
int count = cfg.group("General").readEntry("count", 0);
|
||||||
|
for (int i = 1; i <= count; ++i) {
|
||||||
|
KConfigGroup cg(&cfg, QString::number(i));
|
||||||
|
Rules* rule = new Rules(cg);
|
||||||
|
m_rules.append(rule);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RuleBook::save()
|
void RuleBook::save()
|
||||||
|
|
Loading…
Add table
Reference in a new issue