Screenedges KCM is adjusted to build against Qt5. Most notable
changes:
* no longer links kworkspace as ScreenPreviewWidget got moved into
the KCM
* ui file is adjusted to not crash (see git log of kcmdesktop)
Removes the functionality for Plasma::Wallpapers as that doesn't exist
any more and is not needed by the Screenedges KCM. The KCM still has
way too many functionality, but that can stay for the moment as it's
probably best to reimplement the monitor and the actions in QML.
The ScreenPreviewWidget doesn't make much sense any more for the general
useage as it's not QML based and thus not suited for any usage in Plasma.
This means that features like previewing the Plasma wallpaper cannot
work any more.
The Widget is only used in a few KCMs (KDM, Screensavers, Screenedges).
Currently we expect that KDM and legacy X Screensavers won't make it into
the next release, it makes sense to just move the widget to screenedges
where it's still useful.
This change has been discussed with notmart.
Note to people compiling from source: it's only the default of the
cmake variable which got changed. You have to delete the variable
from the cache to get this change.
addImportPath prepends the path to importPathList so we must add our
paths in reverse order.
Based on the fix for kdeclarative.cpp in kdelibs
400b9f2e9d10386bb175b6123fe0cdaafeaffe61
REVIEW: 110670
It's an option doing pretty much the same as the highlight of selected
window option. But it is known to conflict especially with some Plasma
themes.
BUG: 310935
FIXED-IN: 4.11
REVIEW: 110140
and btw. replace legacy "ignoreposition" by "ignoregeometry"
this will allow to use "apply initially" as "force" used to act
(ignore position on placement) and "force" to prevent clients
from reconfiguring themselves (to not break a tabgroup or to just
not be annoying)
BUG: 311720
CCBUG: 252314
REVIEW: 109691
FIXED-IN: 4.11
REVIEW: 103948
BUG: 91703
BUG: 299245
FIXED-IN: 4.11
- The setting is ignored, the decoration always gets a "true" for it
- moving a maximized window requires breaking a "strong" snap (1/16 of screen height - unless you use quick maximization)
- all snapping is done towards the client, not the frame
- QuickTileMode is exported to the decoration (just as the maximizeMode) so that it can fix the bordersize alongside that.
Tried to build KWin with enable final: it doesn't work. So if nobody uses
it, we don't need it in the CMakeLists to make it work.
Also it's removed in KF5 which means that removing it right now removes
differences in the build system.
REVIEW: 109357
Many headers included KLocale to use i18n and co. But those methods are
defined in KLocalizedString and not in KLocale.
With KF5 klocale.h does no longer include KLocalizedString causing lots
of compile errors.
Messages in scripts are written to kwin_scripts.pot, messages in
scripting are written to kwin_scripting.pot. The cataloges are loaded in
the configuration interfaces and in main kwin.
REVIEW: 108975
Space is a valid shortcut part. E.g. "Volume Up".
KConfig update script for 4.11 is added to migrate existing and erroneous
rules taking into account that space is a valid key.
BUG: 305434
FIXED-IN: 4.11
REVIEW: 108942
The preview code still contained all the old logic for embedding the
preview into another widget. Most of the code had been dead for quite
some time.
The only preview rendering code now is the one to render into a pixmap.
This is actually changed to render the widget directly at the right
position obsoleting the previous widget positioning code.
The no preview available label is dropped as it did not get rendered into
the pixmap at all.
Last but not least we fake that compositing is on. This has always been
the case for Aurorae themes and just looks better. Especially on Oxygen I
had always had some corruption when rendering this preview with
compositing disabled.
REVIEW: 108777
Most windows use the hostname in WM_CLIENT_MACHINE, but there are windows
using the FQDN (for example libreoffice). So instead of "foo" it is
"foo.local.net" or similar. The logic so far has been unable to properly
determine whether windows with FQDN are on the local system.
In order to solve this problem the handling is split out into an own
class which stores the information of hostname and whether it is a local
machine. This is to not query multiple times. To determine whether the
Client is on the local system getaddrinfo is used for the own hostname
and the FQDN provided in WM_CLIENT_MACHINE. If one of the queried
names matches, we know that it is on the local machine. The old logic to
compare the hostname is still used and getaddrinfo is only a fallback in
case hostname does not match.
The problem with getaddrinfo is, that it accesses the network and by that
could block. To circumvent this problem the calls are moved into threads
by using QtConcurrent::run.
Obviously this brings disadvantages. When trying to resolve whether a
Client is on the local machine and a FQDN is used, the information is
initially wrong. The new ClientMachine class emits a signal when the
information that the system is local becomes available, but for some
things this is just too late:
* window rules are already gathered
* Session Management has already taken place
In both cases this is an acceptable loss. For window rules it just needs
a proper matching of the machine in case of localhost (remote hosts are
not affected). And the case of session management is very academic as it
is unlikely that a restoring session contains remote windows.
BUG: 308391
FIXED-IN: 4.11
REVIEW: 108235
BorderNoSides is what is known from Oxygen as "No Side Borders". The name
should indicate that there is only a border at the bottom. BorderNone is
a mode with no borders at all.
The new enums are added to KDecoration and the KCM so that all decos can
make use of it.
Aurorae is adjusted to support the new sizes for QML themes (it breaks
the old svg based themes) and Plastik makes use of it, by rendering a
one-pixel border around the window, which illustrates that it's still up
to the decoration to decide how to make use of the setting.
REVIEW: 108164
If the decoration listing gets initialized directly in the ctor as it
used to be, there is the chance of the list being not rendered in case
that there are multiple KCMs in one container and one has to switch to
the decoration KCM. This is the case for e.g. opening the KWin
configuration through the Alt+F3 menu. But that never happened when
going through Systemsettings as there (at least with English) it is
listed as the first module.
BUG: 310613
FIXED-IN: 4.10
Add an option to kcmcompositing in the 'Advanced' tab, to enable or
disable color correction. It is specified that it's experimental and it
needs Kolor Manager.
Before painting for a particular screen, ColorCorrection::setupForOutput
should be called.
A screen property is added for WindowPaintData.
In kwinglutils, The fragment shaders are intercepted before being
compiled and they get a couple of lines of code inserted in order to do
the color correction. This happens only when color correction is enabled, of
course.
For D-Bus communication with KolorServer, everything is async.
The implementation basically manages a set of color lookup tables for
different outputs and for different window regions. These are taken via
D-Bus. Each lookup table has around 700 KB.
This commit reintroduces the changes from the former merge with the
"color2" branch. In this form, it can be easily reverted.
REVIEW: 106141
This merge is incomplete and it does not include the review number of
the associated review request. It should have been pushed as a single
commit, because the merged commits were not intended to be published in
their form.
This reverts commit dcba90263069a221a5489b1915c5cf1ca39d090c, reversing
changes made to 50ae07525c7fde07794e7548c3d6e5a69cb1a89d.
Conflicts:
kwin/scene_opengl.cpp
kwin/scene_opengl.h
Plastik has been removed and the new Aurorae has the same requirement as
Oxygen. This fallback was anyway useless given that KWin nowadays uses
raster paint engine by default and hardly anything would work with such a
small QPixmap::defaultDepth().
REVIEW: 106613
Functionality had already been present for quite some time and now that
the category on kde-look exists, we can just show the button.
BUG: 296774
FIXED-IN: 4.9.3
REVIEW: 106963
Results in cleaner changes.
Put all the color correction stuff from SceneOpenGL in SceneOpenGL2.
Conflicts:
kwin/eglonxbackend.cpp
kwin/glxbackend.cpp
kwin/scene.h
kwin/scene_opengl.cpp
kwin/scene_opengl.h
If the decoration package contains a ui file in ui/config.ui and
and KConfigXT xml file in config/main.xml the configure dialog
is extended by the custom values.
For this the ui file is loaded and included in the dialog's
layout. To make this possible the AuroraeConfigForm is changed
to a VBoxLayout containing the so far used FormLayout.
The configuration settings are loaded using Plasma's ConfigLoader
and attached to the widget through a KConfigDialogManager.
Marking this commit as the one which implements QML support for
Aurorae themes:
REVIEW: 105751
REVIEW: 105768
BUG: 303810
FIXED-IN: 4.10
For each theme the setting can be enabled individually with the
default being enabled by default. It is completely handled
inside the MenuButton QML component so each QML theme benefits
from the option automatically, too.
BUG: 301327
FIXED-IN: 4.10
REVIEW: 106160
When the decoration is reset a signal is emitted that the config
might have changed which the decoration can connect to for
reloading its configuration. For this an invokable method is
added to Aurorae allowing to read a config value which just
returns the QVariant.
Proper support for border sizes are added by providing the enum
in DecorationOptions, so that QML themes can use the enum values
to decide which border size to use.
The kcm is adjusted to also support these config mechanisms and
to properly load and save the border sizes for QML based themes.
Model is extended to support QML based Aurorae themes as well
the preview is able to handle it. For this a new qml component
is added which loads the decoration preview.
The implementation consists of a class in libkwineffects.
There are some slight modifications in the compositor. Regions for
different outputs are drawn at different times.
Currently only per output color correction is implemented. However, the
grounds are prepared for implementing per window color correction
easily.
The ColorCorrection class needs to communicate via D-Bus with a KDED
module, KolorServer, which is a part of KolorManager.
The only visible part for the user consists of a check box in the
advanced tab for the compositing KCM.
The actual correction is done by injecting a piece of code in the
fragment shader, code that does a 3D lookup into a special color lookup
texture. The data for these textures is obtained from KolorServer. All
D-Bus calls are async.
Since the QML port the LayoutMode had been hardcoded to vertical
layout making it a completely useless code-path.
MinWidth/Height are nowadays completely controlled by the QML
theme. They were not read anywhere except in the kcm, but there
not even bound to a ui element.
The selectedItemLayoutName is also not used anymore with the
new themes.
* KDE/4.9:
Fix callback race in the session save and shutdown code.
Update for 4.9.0 release
SVN_SILENT made messages (.desktop file)
SVN_SILENT made messages (.desktop file)
Fix regression in QML shutdown menu. Ampersands should be removed from menu entries' text by default.
Fix typos in a message that broke string freeze.
Fix potential parallel build failure.
Conflicts:
CMakeLists.txt
so we don't mess up our plugins on reload
also invoke it by loadPlugin()
and fix some KLibrary memleaks
REVIEW: 105499
BUG: 303247
(cherry picked from commit fd272b06954029b554197be1d10e252b01f56502)
As discussed on the mailinglist [1] the tiling support is
removed from KWin. The main reasons for this step are:
* it is unmaintained
* it is a mode not used by any of the core KWin team
* original developer said at Akademy 2012 that he is not
interested in picking up the work again
* tiling has quite some bugs, e.g. multi screen not supported
* is conflicting with other concepts in KWin, e.g. activities
There is ongoing work to get tiling supported through a KWin
script, which is a preferred way as it does not influence the
existing C++ code base.
[1] http://lists.kde.org/?l=kwin&m=133149673110558&w=2
BUG: 303090
FIXED-IN: 4.10
REVIEW: 105546
Stop at bounds while flicking to have a list which behaves in a
natural way on the desktop and ensure that the scrollbar
handles cannot overshoot the list.
Next to the preview/configure button a GHNS button is included
as a simple button with icon only to not break the layout.
Currently the button is not shown as the category on kde-look
has not yet been created yet.
CCBUG: 297636
REVIEW: 104894
- adds the kcm rule option to set the activity - one or all option like
for virtual desktops
- makes the windows obey the rule
- makes the rule enforced even when the user tries to change the
window's activity via the alt+f3 menu
REVIEW:104972
Button currently not yet shown as the category on kde-look is
still missing. This means the code is also completely untested.
REVIEW: 104877
CCBUG: 296774
Effects can specify their minimum requirements in their
desktop file:
* OpenGL
* OpenGL 2 (GLSL required)
* Shaders (either ARB or OpenGL 2)
The configuration module uses this information in combination
with which backend KWin is currently using. So if e.g. OpenGL
is used and an effect requires OpenGL 2 a detailed error
message can be showed that OpenGL 2 is required.
BUG: 209213
FIXED-IN: 4.9.0
REVIEW: 104847
Additional TabBox Mode which allows to switch between all open
windows of the current selected application. By default Alt+tilde
is used which is on qwerty just one key above tab. For non-qwerty
layouts the shortcut is unfortunately not convenient.
REVIEW: 104730
FEATURE: 299308
FIXED-IN: 4.9.0
Instead of getting the information from CompositingPrefs
the running KWin instance is queried through D-Bus.
In general the running KWin should have more information
about whether Compositing will work or not.
This means the kcm no longer has to link OpenGL.
REVIEW: 104753
There is no need to have it driver specific any more.
All drivers seem to support it (only Intel had been
opt-ed out without any apparent reason shown in commit log).
This was the last driver specific setting which means that
the method applyDriverSpecificSettings() got dropped from
CompositingPrefs.
CompositingPrefs have only be used to get the default
value when reading whether the Compositing Enabled
config option.
But CompositingPrefs always returns true which makes
it useless to create an OpenGL context for this.
REVIEW: 104752
Some old restructuring caused -DKWIN_HAVE_OPENGLES to no longer be
passed to the compiler, causing OpenGL-specific code to be built
while the libraries to link it were not available.
REVIEW: 104558
This is useful for scripts controlled from other KCMs, like e.g.
DesktopChangeOSD which is controlled by the virtual desktop KCM
and should not be listed in the scripts section.
connecting to a kwindowsystem signal that causes instantiation of
kwindowsystemprivate breaks window focus.
this match makes it use internal kwin signals to track the embedding window geometry
REVIEW:104039
List view is replaced by KPluginSelector. This is not an optimal
solution as it makes it impossible to get the selected item and
reloading seems also not to work after a new script is installed.
This should become a proper Model based view.
Window Strip is only for Plasma Active, so we don't want to see
it in the UI for Window Switcher Layouts as it would not properly
work on the desktop anyway.
Accomplished by a simple property definition on the service file.
A new service type is introduced which is used by the KCM to find
all available window switcher layouts. This makes it finally possible
to have 3rd party window switchers.
Also the tabbox finds the packaged QML file through the service
definitions.
Desktop switcher is not yet in packaged version (UI to configure
is missing).
REVIEW: 103951
This allows to select whether TabBox should exclude minimized windows,
or only show minimized windows or just don't care about minimized windows.
This is the default and the behavior as it used to be.
Signed-off-by: Stefano Avallone <stavallo@unina.it>
REVIEW: 103698
Thanks to Nuno for providing the QML based scrollbar. Obviously
this does not improve the consistency with other widget styles, so
a proper solution is still required.
BUG: 291612
This includes the delegates, the layout configuration for the delegates
and the custom view for the TabBox.
This can now finally be done as desktop tabbox is based on QML, too.
Buttons are exported as a global "options" in the factory.
Additionally the theme's buttons are also exported. The thme decided
based on the custom button positions property which one to use.
In the kcm the button options are also exported.
This should be the last of the bunch...it was split up so it could be
easily reverted/looked at.
The idea is that all of this will improve searching functionality for a
lot of people using System Settings. That's the hope anyways.
In reality it doesn't help much *yet*, because somebody needs to make
the search functionality search for more .desktop files. It currently
only does main ones afik. I don't know if this is a technical
limitation, or just a minor oversight and perhaps something easy to fix.
Hopefully what I've done is towards a good direction though, of
improving search functionality in system settings...
This KCM has been implemented by Tamas Krutk in the scope of
Google Code-In.
It is a simple KCM just listing all available scripts and allowing
to import/export them.
This will be further extended alongside the planned scripting changes
in 4.9.
Replaced by a TabBox layout. The effect is still there as it
can be used for desktop switching (which is not yet ported to layouts)
and as a proxy effect for CoverSwitch.
The users who use BoxSwitch will be migrated to the new layout.
Reduces duplication of settings in different areas and was only
providing a small subset of the possible window switching capabilities.
With BoxSwitch being possible to be rendered as a "normal" window
switcher it does not make much sense anyway.
A new QML item "ThumbnailItem" is registered to the TabBox. The
C++ implementation finds the EffectWindow of the TabBox and adds
itself to the EffectWindow.
While rendering the EffectWindow the information for all registered
ThumbnailItems are extracted and the thumbnail is rendered on top
of the EffectWindow.
This has obvious limitations like you cannot put other QML items
on top of the thumbnail. Nevertheless it works well enough to
be a possible replacement for e.g. BoxSwitch effect.
When compositing is disabled an icon is rendered instead of the
Thumbnail.
One TabBox Layout inspired by BoxSwitch Effect is added. For the
KCM small pre-rendered items are used.
REVIEW: 103039
All the default layouts (informative, compact, text, small and big icons)
are rewritten in QML and replace the ListView used before. The old code
is still around for the desktop switching modes which are not yet ported.
Next steps include to update the configuration module to not show now
obsoleted settings as well as providing a better way to choose the layout.
REVIEW: 102948
Due to changes in build system we have always either OpenGL or OpenGL ES.
This allows to remove the KWIN_HAVE_OPENGL_COMPOSITING define. In the
effects the define is kept as KWIN_HAVE_OPENGL which can be used in
future to build also an XRender only effect system.
if both the GLES and EGL libs and headers are found.
Fold all the includes and libraries into 1 varaible each and use those.
in other words, you need to have both OpenGLES and EGL to do a successful build.
The advanced compositing option "direct rendering" could only
correctly be honored in the case of proprietary NVIDIA drivers.
In all other cases playing with the setting was most likely
harmful as it could result in inconsistent states and the
option not to be honored at all.
This patch resolves this issue by moving the detection whether
to use a direct rendering context completely into the hands of
the set environment variables or the helper program:
* if LIBGL_ALWAYS_INDIRECT is set, we use an indirect context
* if KWIN_DIRECT_GL is set, we use a direct context
* if none of the two are set, we use the helper program, if it
returns 0 we create a direct context, otherwise we set
LIBGL_ALWAYS_INDIRECT and create an indirect context
If a user really wants to influence the behavior the
environment variables can be used.
REVIEW: 102074
The desktop layout (number of rows) should be
controlled by the window manager as it is also
responsible for the number of desktops and the
names of them.
The setting for the rows is moved from the pager
UI to the virtual desktops KCM. The desktop layout
is set when KWin starts and updated by the KCM.
With this change there is no process claiming the
manager selection for pager any more. This means
the KDE Plasma Workspaces are no longer compliant
to the complete section of _NET_DESKTOP_LAYOUT in
the EWMH.
REVIEW: 102073
BUG: 277965
FEATURE: 105779
FEATURE: 213353
FIXED-IN: 4.8.0
Since the TabBox functionality is not feasible for any platform KWin is
used on (e.g. tablet PCs), a build option is added to decide, if the
TabBox functionality should be build or not.
REVIEW: 101511
@Sebastian: Martin wanted me to let you know that it is now possible
to disable building Tabbox
CCMAIL: sebas@kde.org
Removes the last bits of the self-check at compositing startup.
It seems like they were only added to XRender because they were
in OpenGL and there they are not available for quite some time.
Also removes the now obsolete disable functionality checks from UI.
REVIEW: 101756
Drawbound was nowadays only used when compositing is disabled.
For the composited case, the drawbound was replaced by the resize
effect and in fact we should always just use the resize effect.
REVIEW: 101411
Well we don't have another choice if half of the drivers crash kwin
whenever you watch a fullscreen flash video or use a screen saver.
Unredirect Fullscreen Window was quite useful in case you used
to play heavy OpenGL games, but pretty useless for anything else.
For the game and hd video usecase we nowadays have the better way
of really suspending compositing (either by the client indicating or
with a window specific rule). The plus of suspending compositing is
that the driver doesn't crash.
And yes we are "supposed" to no longer workaround driver bugs.
Good joke, I like to redirect my inbox to everyone who things we
are not allowed to workaround driver bugs.
CCBUG: 252817
Also add a usable "doesn't work why" info and WARN! the user about clicking the rearm button.
Merge "OpenGLIsUnsafe" and "CheckIsSafe" config keys
Move the entire checking into CompositingPrefs
BUG:250865
FIXED-IN:4.7
Because:
* We have a bug in our scripts that makes extracomment not work (will try to fix this asap)
* Makes sense to be a comment since we want it to be a disambiguation text
* KUIT markers (e.g. @label) need to be in comment
Make the edit area disabled until the user selects he wants custom
positions.
Its a source of confusion if the user can edit the positions but doesn't
see anything happen in his decorations upon apply. This gives immediate
feedback that the checkbox should be enabled.
Conflicts:
kwin/kcmkwin/kwindecoration/buttonsconfigdialog.cpp
Second part of cleaning up the lib directory: the effects library
now lives in libkwineffects/ directory.
For existing effects nothing changes as the install path is unchanged.
The change obsoletes the lib/ directory.
As glplatform.h has not yet been exported I dared to export it and
adjust the places where it is used.
CCMAIL: kwin@kde.org
The shadow effect is known to be broken since at least 4.5.
It is unfortunately in a state which makes it difficult to maintain
and the architecture has some serious drawbacks. Therefore it is the
best solution to replace the effect with a new and better
implementation. For more information about the new implementation
please see the discussion on KWin mailinglist:
http://lists.kde.org/?l=kwin&m=129607406517609&w=2
This also "fixes" all existing bug reports about the shadow effect.
Most of the bugs will really be fixed when the new shadow system is
implemented, if not it is a new bug and a new report should be created
for it.
Please excuse that we go this unnormal approach to mark bugs as
fixed with code removal.
BUG: 164084
BUG: 160948
BUG: 189241
BUG: 229164
BUG: 258663
BUG: 216709
BUG: 243890
FIXED-IN: 4.7.0
Our primary target is Texture From Pixmap and it is supported
by all important drivers nowadays. If a driver is not able to
support TFP using OpenGL at all is probably no good idea and
XRender is more suited.
svn path=/trunk/KDE/kdebase/workspace/; revision=1213663
The following changes were in SVN, but were removed from git:
M wallpapers/Air/metadata.desktop
M wallpapers/Autumn/metadata.desktop
M wallpapers/Blue_Wood/metadata.desktop
M wallpapers/Grass/metadata.desktop
M wallpapers/Hanami/metadata.desktop
M wallpapers/Horos/metadata.desktop
M wallpapers/Media_Life/metadata.desktop
M wallpapers/Plasmalicious/metadata.desktop
M wallpapers/Quadros/metadata.desktop
svn path=/trunk/KDE/kdebase/workspace/; revision=1207957
The following changes were in SVN, but were removed from git:
M wallpapers/Autumn/metadata.desktop
M wallpapers/Blue_Wood/metadata.desktop
M wallpapers/Grass/metadata.desktop
M wallpapers/Hanami/metadata.desktop
M wallpapers/Horos/metadata.desktop
svn path=/trunk/KDE/kdebase/workspace/; revision=1207224
The following changes were in SVN, but were removed from git:
M wallpapers/Ethais/metadata.desktop
M wallpapers/Grass/metadata.desktop
M wallpapers/Horos/metadata.desktop
svn path=/trunk/KDE/kdebase/workspace/; revision=1206942
The following changes were in SVN, but were removed from git:
M wallpapers/Horos/metadata.desktop
svn path=/trunk/KDE/kdebase/workspace/; revision=1204063
The following changes were in SVN, but were removed from git:
M wallpapers/Autumn/metadata.desktop
M wallpapers/Blue_Wood/metadata.desktop
M wallpapers/Grass/metadata.desktop
M wallpapers/Hanami/metadata.desktop
* typo fix: brightning -> brightening.
* you'll -> you will (see the HIG note on contractions I mentioned in the
previous edit)
* some grammar changes, adding a period at the end of the final message,
and fixing the fragmented sentence beginning '(From..'.
CCMAIL: kde-i18n-doc@kde.org
svn path=/trunk/KDE/kdebase/workspace/; revision=1203511
Avoid contractions, in this case "you'll". See the HIG for more details:
http://techbase.kde.org/Projects/Usability/HIG/Contractions
(I also changed 'have to try' to 'have to try it', to make it clearer what
it was that needed to be tried. Though, I have to admit, even I would not
have changed the string for that alone... ;). )
CCMAIL: kde-i18n-doc@kde.org
svn path=/trunk/KDE/kdebase/workspace/; revision=1203508
svn path=/trunk/KDE/kdebase/workspace/; revision=1201667
The following changes were in SVN, but were removed from git:
M wallpapers/Autumn/metadata.desktop
M wallpapers/Grass/metadata.desktop
M wallpapers/Plasmalicious/metadata.desktop
svn path=/trunk/KDE/kdebase/workspace/; revision=1196577
The following changes were in SVN, but were removed from git:
M wallpapers/Aghi/metadata.desktop
M wallpapers/Air/metadata.desktop
M wallpapers/Autumn/metadata.desktop
M wallpapers/Blue_Wood/metadata.desktop
M wallpapers/Ethais/metadata.desktop
M wallpapers/Evening/metadata.desktop
M wallpapers/Grass/metadata.desktop
M wallpapers/Hanami/metadata.desktop
M wallpapers/Media_Life/metadata.desktop
M wallpapers/Quadros/metadata.desktop