* Check the correct variable
* Fix table access
In every other use of _private.keybindings in this file, the key is a
string, not an awful.key
* Simplify code
key.key is always defined
* Add tests
* add(spec) add_keybinding unit test
* Revert "Add tests"
This reverts commit 808b17cd5c.
Co-authored-by: Aire-One <aireone@aireone.xyz>
the actual key is BackSpace, not Backspace, so this translation was always unused
Co-authored-by: Lucas Schwiderski <4508454+sclu1034@users.noreply.github.com>
The constraint:set_width function listed ‘height’ as a required parameter; the constraint:set_height function listed ‘width’ as a required parameter. Swapped those around.
Also, fix the fitting logic so that the result width and height are fitted in the available space. Previously the result dimensions can be larger than the input, but cropped in e7a21947e6/lib/wibox/widget/base.lua (L547). But still it can cause problems e.g. when used inside wibox.container.place.
It looked horrible/buggy when combined. Now it looks like people would
expect it to work. Another problem was the `bar_border_width` look
when `ticks` was `true.
luajit was failing to GC the notification about 5% of the time. This
commit stores all widget notifications in a weak table and don't let
any lambda access the parent object notification object.
Each of those changes reduces the failure rate. There might still be
a couple in there, but the test passed 200x on my laptop with 100%
success rate.
The old behavior would move the client when `nil` was passed by
an almost arbitrary value. It would most of the time go off screen.
While this is a behavior change, what it replaces was so broken I
doubt anybody actually used `nil` in `relative_move`.
When the theme variables were moved to the backend instead of `rc.lua`,
some magic was added to disable them if the user set the border. However,
some undocumented `awful.placement` code also set them and turned off
the theme variables. So it worked *once* then stopped working.
If client client was tiled, the `fallback` could be
`theme.border_color_normal`, but if the client was
tiled, this fallback was never tried.
Now it tests for both "floating" and "active" fallbacks.
This problem actually affects the default theme.
Right now, all rules are additive, they are squashed into one big
array of properties. This is normally fine, but sometime you want
explicit rules for some objects, but also default rules if nothing
matches.
While this can be expressed in the current system by overriding
*all* properties, this require more effort than having "special"
and "fallback" rules.
It might be a good idea to deprecate them and move them to the tag
class. However, these APIs are not exactly well designed, so
moving them wont solve that. Some day the dynamic client layout will
hopefully be merged and send these functions to the heap of smelly
bad ideas trash.
The last time this page had a refresh was in parallel with another
massive whole-doc project. Thus, this page still had older
conventions which everything else had already removed.
It also no longer use the master/slave name. In this case, it kinds
of make sense since, for example, of the tag `master_count` is greater
than the number of clients, calling `client.setslave` move the client
to another "master" slot.
Closes#626
By fixing some suspend bugs a few weeks ago, I "regressed" this
a little. By that, I mean there were bugs in the suspend code
which caused `ignore_suspend` to work simply because suspend
globally failed rather than `ignore_suspend` being implemented
correctly.
Fix#3465
There is more into that table than just screens. If `get_by_id` was
called with an invalid notification (or a "future" one in case of
suspended / do_not_disturb), it would explode.
thread at PR 3448. PR 3448 involves changes to expand the content
(screenshot) API. Originally, I added both root.content() and and
screen.content to the C source, as client.content has always been
handled. However, screen.content in effect takes a root screenshot and
returns a crop of it. This can just as easily be done through Lua.
When this quick update was implemented in github, the code added to
awful.screen.lua was not quite correct. These changes represent the
debugged version. Users can now call s.content for a screen object, s,
and the screenshot will work transparently.
Signed Off: Brian Sobulefsky <brian.sobulefsky@protonmail.com>
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.
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.