[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwin
Subject:    Proposal to add engine support to KWin
From:       Christoph Feck <christoph () maxiom ! de>
Date:       2010-09-26 14:02:19
Message-ID: 201009261602.20023.christoph () maxiom ! de
[Download RAW message or body]

Hi,

not sure if this should be moved to a Wiki or if it can be discussed here. I 
shortly talked to Martin, and we agreed that KWin needs support for engines 
other than Aurorae.

I added Craig to CC list, because I am not sure if he is on this list (Thomas 
is, for sure :)

Christoph Feck (kdepepo)

Here is the text:

Proposal to add deKorator to KWin

    "deKorator" is used here as a placeholder for any other themeable
    KWin decoration engine, such as deKorator, Smaragd, Qamelion,
    IceWM, QtCurve?, Bespin?, ...
    This name is used so that one can see where and how the engine
    name shows up.

Current issues

    Aurorae engine is hardcoded into the KCM
    deKorator ...
        ... cannot use the KWin theme list (new in 4.5)
        ... can cause empty decorations when applyed without installed theme
        ... cannot share the KWin GHNS dialog

Proposal (without adding new binary  API)

1. Engine informs KWin about themes

    In deKorator.desktop:
    X-KDE-Themes=deKorator/themes/*
        This is the "glob" that KWin uses to scan installed themes, relative
        to the KDE "data" directory. This allows pre-installed themes, as well
        as user installed themes.

        Each entry contains one theme, either a file, or a directory.

        For Aurorae: aurorae/themes/*/metadata.desktop
        For Smaragd: smaragd/themes/*.emerald

    X-KDE-NewStuff=deKorator.knsrc
        ProvidersUrl=
        Categories=
        TargetDir=deKorator/themes
        Uncompress=

        The .knsrc file contains information from where to get new themes.

        The Uncompress Type may be "never" for theme files like .emerald,
        that cannot be decompressed to the download directory.

2. KWin informs engine which theme to use

    In kwinrc:
    [Style]
    PluginLib=kwin_deKorator
    Theme=entry
        "entry" is one of the entries from the "glob" mentioned above

        For themeable engines (i.e. those that have a X-KDE-Themes glob)
        the Theme=entry is guaranteed to be one of those found by the glob.

        If no theme was found, kwin refuses to select this engine and falls
	back to the default decoration (Oxygen).

3. Outstanding Issues

    For Aurorae, the selected theme is written to the auroraerc file.
    I am not sure which is better. Engines usually only read from their own
    configuration file.

    Aurorae appearently supports per-theme button and border sizes.
    I haven't checked if/how that can be generalized.

    Currently, KNS3 cannot merge multiple knsrc files into the same
    dialog, but that can be worked on. As a workaround, the
    "Get New Themes..." button gets a drop down menu where the
    user selects the engine he wants to download themes for.
_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic