Commit Graph

10578 Commits

Author SHA1 Message Date
Emmanuel Lepage Vallee 9db62b824c gears.matcher: Add `fallback` rules.
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.
2021-10-22 22:26:12 -07:00
Emmanuel Lepage Vallee 005c2d61a0 gears.matcher: Fix `rule_every`.
It really didn't do the right thing and didn't work anyway.
2021-10-22 22:26:12 -07:00
Emmanuel Lepage Vallée 8541637a85
Merge pull request #3475 from Elv13/fix_626
Another doc upgrade.
2021-10-21 15:07:54 -07:00
Emmanuel Lepage Vallee b2603f6a86 doc: Add images for awful.client.* functions. 2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee cbec148540 doc: Make sure all client.focus functions are in the same section.
Some were in the @staticfct and some in the @function sections.
2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee ae71158093 doc: Add documentation for the client "window factor" related functions
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.
2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee 62685c661d doc: Modernize the tag documentation... again...
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.
2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee a8d2fa0297 doc: Add a large number of `client` examples.
Backfill some under-documented APIs with yet more shiny images.
2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee 93283a9885 doc: Undocument internal client `urgent` and `shape` methods.
There is already some permissions to change the behavior. I don't
think there is valid user-facing use cases for these "methods".
2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee c7df6757ec titlebar: Add `urgent` colors.
Just the bg/fg/bgimage, not all buttons. the reason is for consistency
with the tasklist or border_color.
2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee 73625168f2 doc: Improve the `awful` template.
* Support client shape
 * Support titlebar colors
 * Only render clients part of the selected tag(s).
2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee fd8401a399 shims: Send the property:: signal for the client class. 2021-10-18 14:38:37 -07:00
Emmanuel Lepage Vallee 56256d0c38 shims: Add client.first_tag. 2021-10-16 17:07:18 -07:00
Emmanuel Lepage Vallee 667a0dfc18 tests: Add tests for swapping a client. 2021-10-15 20:20:24 -07:00
Emmanuel Lepage Vallee 785ca98337 client: Turn client.setslave/setmaster into properties.
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
2021-10-15 20:00:23 -07:00
Emmanuel Lepage Vallee e40ad11ec0 shims: Implement client:swap(). 2021-10-15 19:50:22 -07:00
Emmanuel Lepage Vallee 028d01590a doc: Add a client.border_width example. 2021-10-15 19:50:03 -07:00
Emmanuel Lepage Vallee c1d25cd70d doc: Improve the `awful` template client widget.
It was incorrectly sized.
2021-10-15 19:45:05 -07:00
Emmanuel Lepage Vallee 203d0638be background: Improve the fallback rendering accuracy.
While it has a little aliasing problem, it actually correctly
renders the border using a mask like the normal code path.
2021-10-15 19:42:48 -07:00
Emmanuel Lepage Vallee 206bc7e5de doc: Fix client.border_color example rendering. 2021-10-15 17:47:03 -07:00
Emmanuel Lepage Vallee 80515c2225 doc: Fix rendering of `client:swap()`. 2021-10-15 14:27:30 -07:00
Emmanuel Lepage Vallée 1d55ae09aa
Merge pull request #3464 from Elv13/fix_3388
Fix an assert in the layoutlist code
2021-10-14 20:51:51 -07:00
Emmanuel Lepage Vallee 2a65d8ade1 tests: Fix the layoutlist popup example.
`gears.table.cycle_value` returns 2 values. That accidentally
passed the second one to `awful.layout.set`, which didn't like
it at all.
2021-10-14 14:09:47 -07:00
Emmanuel Lepage Vallee 213bfbc9bd doc: Fix a syntax issue in the layoutbox doc. 2021-10-14 14:09:47 -07:00
Emmanuel Lepage Vallee 01020a197d layoutlist: Support scrollwheel by default.
It acts like the default `rc.lua` tag/tasklist widgets.

Idea from https://github.com/awesomeWM/awesome/issues/3388
2021-10-14 14:09:47 -07:00
Emmanuel Lepage Vallee 1d5af8e8ad widget.common: Allow buttons to be replaced later.
So far, they could only be set in the constructor.
2021-10-14 14:09:47 -07:00
Emmanuel Lepage Vallee 9c042fcb79 layoutlist: Fix an assert when `buttons` are specified.
Fix #3388
2021-10-14 14:09:47 -07:00
Emmanuel Lepage Vallee cd2e961fcb layoutlist: Remove the duplicate `buttons` property from doc. 2021-10-14 14:09:47 -07:00
Emmanuel Lepage Vallée 5a27eaa973
Merge pull request #3455 from Elv13/token
ci: Cleanup the previous test commits.
2021-10-14 12:06:09 -07:00
Yauhen Kirylau aedcd0c05c
test(screenshots, spawn): require exact major gtk/gdk versions (#3460) 2021-10-09 16:36:17 -07:00
Emmanuel Lepage Vallée d487d1010e
Merge pull request #3443 from Elv13/fix_3396
Improve suspending the notifications
2021-10-09 12:58:11 -07:00
Emmanuel Lepage Vallée 1f84dbef18
Merge pull request #3451 from Elv13/screenshot
Copy of  "Content (Screenshot) API Expansion"
2021-10-07 14:03:57 -07:00
Emmanuel Lepage Vallee 375738d609 tests: Test `naughty.get_by_id` with invalid ids. 2021-10-05 13:06:26 -07:00
Emmanuel Lepage Vallee d4a41184c4 tests: Test the naughty "suspended" mode. 2021-10-05 13:00:14 -07:00
Emmanuel Lepage Vallee 9c22b029eb naughty.layout.box: Make sure discarded boxes don't come back to life.
Previously, when resuming a notification for which the popup was closed,
it would re-appear.
2021-10-05 13:00:14 -07:00
Emmanuel Lepage Vallee 3458c89040 naughty: Suspend existing notifications.
Previously, it would just suspend new notification, but do nothing
about the existing ones.
2021-10-05 13:00:14 -07:00
Emmanuel Lepage Vallee 075935fd37 naughty: Do not call `request::display` when suspended.
Fix #3396
2021-10-05 12:59:39 -07:00
Emmanuel Lepage Vallee 0d1e977917 naughty: Fix getting a notification by id.
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.
2021-10-05 12:59:39 -07:00
Elyes HAOUAS f81723733c
lib/naughty/init.lua: Fix typo on "screen" (#3456)
Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr>
2021-10-05 12:13:33 -07:00
Aire-One eb89c3688c Update screen.lua 2021-10-04 19:49:22 -07:00
Brian Sobulefsky 4f0c3c5d90 Add tests for the new content API. This includes tests for root.content(),
screen.content, and client.content. Run with TESTS_SCREEN_SIZE set equal
to 1280x800. This test suite will be expanded once the more user
friendly awful.screenshot API is merged.

Signed off: Brian Sobulefsky <brian.sobulefsky@protonmail.com>
2021-10-04 19:49:22 -07:00
poisson-aerohead 7a786dab1d Update root.c
Remove unnecessary function variables width and height, as they do not add any real value, and rather pass these as all other arguments are (such as the connection), giving the routine a uniform look.

Signed Off: Brian Sobulefsky <brian.sobulefsky@protonmail.com>
2021-10-04 19:49:22 -07:00
poisson-aerohead 02e12f4cb4 Update screen.lua
Add DOC comments to the new screen.object.get_content property in lib/awful/screen.lua.

Signed Off: Brian Sobulefsky <brian.sobulefsky@protonmail.com>
2021-10-04 19:49:22 -07:00
poisson-aerohead b4cb3eae7b Debug the suggested changes to lib/awful/screen.lua per the discussion
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>
2021-10-04 19:49:22 -07:00
poisson-aerohead a9bf812c17 Update screen.c 2021-10-04 19:49:22 -07:00
poisson-aerohead 5f58bc3195 Apply suggestions from code review
Co-authored-by: Aire-One <aireone@aireone.xyz>
2021-10-04 19:49:21 -07:00
Brian Sobulefsky f6eef228e2 Updated API in the same interface as the client.content property to support
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>
2021-10-04 19:49:21 -07:00
Elyes HAOUAS 54a5a7dce5
Fix some spelling errors (#3450)
Signed-off-by: Elyes HAOUAS <ehaouas@noos.fr>
2021-10-04 19:20:03 -07:00
Lucas Schwiderski d755d9add3 ci: Fix the debug messages. 2021-10-04 18:19:52 -07:00
Emmanuel Lepage Vallee 4ef08f7339 ci: Cleanup the previous test commits. 2021-10-04 14:35:01 -07:00