Commit Graph

3891 Commits

Author SHA1 Message Date
Brian Sobulefsky 12a3fae456 This commit begins the development of a more appropriate user facing
screenshot API. It extends a prior commit which extended the lower level
content API, which had been a property of the client object but is now
available as a property of the screen object and a method of the root
object.

This commit creates a new screenshot module for the awful module. The
public functions include root(), screen(), client(), snipper(), and
snip(). These take root window, screen, and client window screenshots,
launch an interactive snip tool for cropped screenshots, and take a
cropped screenshot of a geometry passed by argument, respectively. The
init() function is also available for configuration. Using this library
is more appropriate for the average rc.lua.

Since the API is new, this commit does not include any changes to
rc.lua. The developers can modify rc.lua when there is sufficient
confidence in API stability and robustness.

lib/awful/init.lua is modified so that the awful module includes the new
lib/awful/screenshot.lua submodule.

Signed off: Brian Sobulefsky <brian.sobulefsky@protonmail.com>
2022-11-13 16:53:32 -08:00
Emily 5077c8381b
wibox.widget.slider: Add a handle cursor property (#3734)
* wibox.widget.slider: Add a handle cursor property
* wibox.widget.slider: Add a beautiful variable for handle_cursor
* wibox.widget.slider: Remove an unneeded or statement
* wibox.widget.slider: Move handle_cursor variable to the function it belongs in
2022-10-31 10:05:13 -07:00
Lily a436478731
fix floating snap (#3719)
makes snap & aerosnap respect padding & workarea, adds snapper_gap padding to build_placement subcalls using args
2022-10-22 14:38:52 -07:00
Emmanuel Lepage Vallée 26032bf018
shape: Add a "solid shadow" shape. (#3489)
This is an useful client shape to get "client side solid shadows".
2022-10-16 02:29:09 -07:00
David Kosorin b16f628620
Restore minimized sticky clients (#3709) 2022-09-29 23:12:13 -07:00
Aire-One db5ade48e4 doc(awful.titlebar): fix ldoc WARN 2022-09-18 18:22:52 +02:00
Aire-One 941bb72fa2 doc(awful.keygrabber): fix ldoc WARN 2022-09-18 18:22:02 +02:00
Actionless Loveless bde785ee64
fix(ruled: client: matching_rules): regression after 75019c3f6f (#3694) 2022-09-15 23:44:48 -07:00
Emmanuel Lepage Vallee 88c65a71dd textbox: Rename `align` to `halign`.
`halign` is used in multiple place in the API. Once upon a time,
Awesome only supported horizontal widgets, but this era has long
passed.

Fix #3640
2022-09-06 16:11:04 -07:00
Emmanuel Lepage Vallee d7f6410e09 textbox: Add 3 properties.
The textbox API reflects the Pango layout API circa 2011, time to
bring this to 2022. This adds:

 * indent
 * justify
 * line_spacing_factor

It doesn't add `spacing` because it doesn't seem to do anything.
It also doesn't add the `is_*` methods to know if the text wraps
or ellipsize. We could, but nobody asked for them. The line spacing
is a feature request from Posix on Discord.
2022-09-06 16:09:26 -07:00
Tonda Fischer c8d4f878a0
#3539: Make tool tips indicate the action that a click will acheive (#3657)
* #3539: Make tool tips indicate the action that a click will achieve.
2022-09-03 15:31:24 -07:00
Emmanuel Lepage Vallee 82a5fb6030 doc: Do not document the 16bit max widget size.
As pointed out by @aire-one, it does not provide much value.
2022-08-29 22:54:09 -07:00
Emmanuel Lepage Vallee 3c0d5b606f doc: Fix issues found by @aire-one. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee a18b40e12b wibox.widget.textclock: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 1eda8cdf93 wibox.widget.textbox: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 642fa3b66b wibox.widget.systray: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 5367513609 wibox.widget.slider: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 79496e9acc wibox.widget.separator: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee f9f04866b8 wibox.widget.progressbar: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee e63d867523 wibox.widget.piechart: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 95cd45942a wibox.widget.imagebox: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 8e16dc4412 wibox.widget.graph: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee ff9c89d005 wibox.widget.checkbox: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 1b726985de wibox.widget.calendar: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 1259c3ccc6 wibox.widget.base: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 926f0ff22f wibox.layout.stack: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee d05fc5dc8f wibox.layout.ratio: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee c963b16f90 wibox.layout.grid: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 13b792e42e wibox.layout.flex: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 285a8b23ff wibox.layout.fixed: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 1fa30c3195 wibox.layout.align: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 2e41211772 wibox.container.tile: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 4c06aaab4f wibox.container.scroll: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 1dafd25d93 wibox.container.rotate: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 6c84e83ccf wibox.container.radialprogressbar: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee f0482485fa wibox.container.place: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee bdec7eb516 wibox.container.mirror: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 534c2324ae wibox.container.margin: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 268c66584e wibox.container.constraint: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee d147899f86 wibox.container.background: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 73ec416287 wibox.container.arcchart: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 2c14e90a89 naughty.widget.title: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 0014785c85 naughty.widget.message: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 7149b93abb naughty.widget.icon: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee a7fd2e2278 naughty.notification: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee e4d88e5566 naughty.list.notifications: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 51a1d387e5 naughty.list.actions: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee eb21c24acb naughty.layout.box: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee c3a73cab53 naughty.core: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 85eb759bd8 naughty.container.background: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 6b382148a8 naughty.action: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 05ecb513c5 menubar.init: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 11ce8fd77c gears.timer: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 52c481babc gears.color: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 8f1a29b15f awful.widget.watch: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee d45bd3a9d9 awful.widget.tasklist: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee a96ad1b766 awful.widget.taglist: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 60b52ab4c3 awful.widget.only_on_screen: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 4c4d833a69 awful.widget.layoutlist: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 0e5a62950e awful.widget.layoutbox: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 72041d63a4 awful.widget.keyboardlayout: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 176526a8d2 awful.widget.clienticon: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee bd07d49197 awful.wibar: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee b5a9250a58 awful.wallpaper: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 9d04ba72f9 awful.tooltip: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 91de268703 awful.tag: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 6d31e783df awful.screen: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee 5909d2f155 awful.popup: Update the property documentation. 2022-08-29 22:49:47 -07:00
Emmanuel Lepage Vallee e8a505273a awful.mouse.init: Update the property documentation. 2022-08-29 22:49:46 -07:00
Emmanuel Lepage Vallee deaeb4dab8 awful.keygrabber: Update the property documentation. 2022-08-29 22:49:46 -07:00
Emmanuel Lepage Vallee 530055f024 awful.key: Update the property documentation. 2022-08-29 22:49:46 -07:00
Emmanuel Lepage Vallee 0b902c1d69 awful.hotkeys_popup.widget: Update the property documentation. 2022-08-29 22:49:46 -07:00
Emmanuel Lepage Vallee 418bf92858 awful.client: Update the property documentation. 2022-08-29 22:49:46 -07:00
Emmanuel Lepage Vallee 6e546bcb6a awful.button: Update the property documentation. 2022-08-29 22:49:46 -07:00
Emmanuel Lepage Vallee 4fa957b75d doc: Force all properties to document their default value. 2022-08-29 22:49:46 -07:00
Emmanuel Lepage Vallee 86d1b1c22c doc: Add a mandatory `@noreturn` for functions and methods.
The goal is to catch cases where the return value exists, but is
forgotten. There was a large enough number of them to turn this
into a real check. Initially, I just wanted to implement it to fix
the problems, then delete the code. But since this is so common, I
think it is worth the annoyance.
2022-08-29 22:49:45 -07:00
Emmanuel Lepage Vallee 4bd90f0f35 doc: Add documentation linting and fix all issues it found. 2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee f3987f43b6 doc: More proof reading fixes. 2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee af3e62ae64 tasklist: Fix `disable_icon`.
It regressed when the tasklist switched to a template by default.
This was done to support the icon size.

Fix #3178
2022-08-29 22:48:54 -07:00
Grzegorz Bednarski 1f5b759306 Support minimized client property in tasklist icons (#3526) 2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee fb8f7cfadd hotkey/calendar: Fix rendering when the theme color is a pattern.
It blew up.
2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee 75ab366769 doc: Proof reading fixes.
* Rendering problems
 * Incomplete type information
 * Obsolete type information
 * Missing type information
 * Missing return value
 * Incomplete return value type
2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee 11a7c8c47b doc: Fix the `layoutbox` doc.
It didn't have a constructor.
2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee f8f11a23f5 doc: Add some @see to the shape doc.
The `transform` function was unclear.
2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee 69ab73aa23 doc: Fix a popup doc issue.
The variable name wasn't in the @param string, so it was called "The".
2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee dd7492fa7c doc: Fix some broken links in the tasklist doc. 2022-08-29 22:48:54 -07:00
Emmanuel Lepage Vallee f6f57e7ba0 gears.color: Add a function to apply the alpha to a color.
Some code in awesome concatenate color strings. This means it blows
up when the pattern are used instead of color, with this, it fails
gracefully (by returning the unmodified pattern).
2022-08-29 22:48:36 -07:00
Emmanuel Lepage Vallee caad1bec55 tooltip: Make the `args` optional.
It would render a non-useful error when calling `awful.tooltip()`.
2022-08-29 22:48:36 -07:00
Emmanuel Lepage Vallee 935da05be4 layoutlist: Sanitize the color when building Pango strings.
This was aready done in the `tasklist` and `taglist`.
2022-08-29 22:48:36 -07:00
Emmanuel Lepage Vallee 18468d32dd widget: Fix saving a widget to a file.
Previously, if `beautiful.fg_normal` wasn't black, it would not render
correctly.
2022-08-29 22:48:36 -07:00
Emmanuel Lepage Vallee 91fe314e0b gears.color: Fix color serialization.
Some widgets like the tasklist serialize the theme colors to use them
in Pango markup. If the theme color were already converted to pattern,
that blew up. With this fix, pattern can be converted back into strings
correctly.
2022-08-29 22:48:36 -07:00
Emmanuel Lepage Vallee 8f71ef6dff doc: Document the tasklist widget. 2022-08-29 22:48:35 -07:00
Emmanuel Lepage Vallee c7ed176586 tasklist: Fix `disable_icon`.
It regressed when the tasklist switched to a template by default.
This was done to support the icon size.

Fix #3178
2022-08-29 22:47:55 -07:00
Emmanuel Lepage Vallee b8dbba34db taglist/tasklist: Fix the fallback font.
When beautiful.font isn't set, it fell back to "". That value isn't
actually the same as the "default" Pango font. Better use `nil`.
2022-08-29 22:47:55 -07:00
Emmanuel Lepage Vallee 396bddb946 layoutlist: Add a `count` property.
Because it was added to the `taglist` and `tasklist` and their API
somewhat mirror each other.
2022-08-29 22:47:55 -07:00
Emmanuel Lepage Vallee 798d31881d taglist: Add a `count` property.
This is mostly for its signal handler. It will allow to replace the
template or layout based on the number of tags.
2022-08-29 22:47:55 -07:00
Emmanuel Lepage Vallee b11a8fb52c tasklist: Add a `count` property.
This is mostly for the signal handler. It will allow to do things
like replace the template or layout based on the number of clients.
2022-08-29 22:47:55 -07:00
Emmanuel Lepage Vallee 70c6821997 tasklist: Convert to a real widget.
Previously, it was monkey-patching the input layout object. This will
allow to replace the laoyut at runtime. For example, switching from
`fixed.horizontal` to a grid when the number of client gets too large.
2022-08-29 22:47:55 -07:00
Emmanuel Lepage Vallee a3b7532056 taglist: Expose more properties.
They were passed in the constructor, but could not be changed.
2022-08-29 22:47:55 -07:00
Emmanuel Lepage Vallee df59f5bdd3 taglist: Convert into a real widget.
It no longer monkey-patch the input layout widget. This allows the
layout to be replaced at runtime.
2022-08-29 22:47:55 -07:00