screenshots at the root window and screen levels. A call to the
root.content() method will return a screenshot as a Cairo surface of the
entire root window (generally all physical screens). Getting the
screen.content property will return a screenshot as a Cairo surface of the
screen object (generally a physical screen) just as client.content will for
a client object.
Sample usage - the traditional API supported focused client screenshot as:
c = client.focus
if c then
gears.surface(c.content):write_to_png("/path/to/screenshot.png")
end
Similarly, this API extension adds:
s = awful.screen.focused()
if s then
gears.surface(s.content):write_to_png("/path/to/screenshot.png")
end
for the screen class and:
gears.surface(root.content()):write_to_png("/path/to/screenshot.png")
for the root window. Note that the example shows how to get a screenshot
of the focused screen, but this is not a limitation. A lua script could
call it on any screen object.
Signed off by Brian Sobulefsky <brian.sobulefsky@protonmail.com>
It uses a stylesheet for the colors. This is not "as good" as the
old one because it only supports 16:9 aspect ratio. However, the
old wallpaper function doesn't fit great in the new model. The
widget doesn't know the screen, so it cannot pass it to a function.
It's possible to stretch the wallpaper.
This exposes the `librsvg` DPI and Stylesheet properties. This
is a groundwork commit to port the xresources theme to use a SVG
wallpaper instead of hardcoded Cairo code to generate the colorfar
logo.
CMake uses quotes and semicolon in its internal list datatype.
Previously, all double quotes were converted to single quotes to
avoid this problem. Semicolors were interpreted as newlines in
ldoc.
With this commit, both of them render fine. This was required
because a new example uses CSS and XML where those symbols have
a specific meanning.
It makes the shims impossible to implement without a double free,
a memory leak or a crash. Using `capi` should not require to
destroy the LGI wrappers.
Another example, not fixed in this commit, are the client shapes.
`gears.wallpaper` is a flat API (that doesn't even belong in gears) and
is neither well integrated with the other AwesomeWM concepts, nor well
documented or easy to understand for newcomers.
This module adds an object oriented, declarative, module with properties
for the most common wallpaper types. It also integrates with
`awful.placement` and the `wibox` module.
The design attempts to make the wallpaper a "wibox like" object like
the titlebars. It is non-interactive, but still allows the widgets. Note
that this is slow and should be avoided for dynamic content. It is why
the widgets are never updated unless manually reloaded. The objects also
attempt to be disposable rather than persistent. Thus they are immutable
by default to prevent accidental abuse.
Fix#3428#2596
Previously, it was really hard to get the image to do one *or* the
other. The `resize` property set both at the same time.
While it could, this does not deprecate the old `resize` property
since 99% of the user wan't to lock both.
Previously, only a filename was returned. Getting the path was
inconvinient when used within a declarative construct.
It was also misbehaving then the directory didn't exist. Finally,
the extention list now accept extension names starting with a dot.
If a config with naughty.layouts.box crashes at startup and the
fallback config uses naughty.layouts.legaxy, it is possible their
will be some lookup for an object which isn't tracked by the legacy
module.
Two calls to gdebug.print_warning() in run_with_keybindings use an
argument that concatenates a fixed string with the result returned by a
call to gdebug.dump(). gdebug.dump() is the debug library function for
immediate printing. It has no return value. This causes the correct
message in print_warning to not be printed, and also causes a
naughty.notify box to appear warning of an attempt to concatenate to an
empty variable.
The call to gdebug.print_warning should have an argument made by
concatenating to gdebug.dump_return(). Incidentally, this is in fact the
function used internally by gdebug.print().
Signed off by: Brian Sobulefsky <brian.sobulefsky@protonmail.com>