Commit Graph

3611 Commits

Author SHA1 Message Date
Aire-One 0ae0add45f doc(imagebox): Fix @method tags 2021-04-02 19:24:07 +02:00
Aire-One b706aa9bd0 doc(@hidden): Add to wibox.widget.base module 2021-04-02 19:24:07 +02:00
Aire-One 20a8d902c5 doc(@supermodule): Add to awful.widget modules 2021-04-02 19:24:07 +02:00
Aire-One 3969ad8819 doc(@supermodule): Add to wibox.layout modules 2021-04-02 19:24:07 +02:00
Aire-One 3b12a8d19a doc(@supermodule): Add to wibox.container modules 2021-04-02 19:24:07 +02:00
Aire-One 3ed2fc8500 doc(@supermodule): Add to wibox.widget modules 2021-04-02 19:24:07 +02:00
Aire-One 12662d4cb1 doc(@supermodule): wibox.widget.base doc 2021-04-02 19:24:07 +02:00
Aire-One 3a6fa10754 doc(@supermodule): gears.object inheritable doc 2021-04-02 19:24:07 +02:00
mergify[bot] 7a8fa9d27a
Merge pull request #3294 from sclu1034/feature/count_keys
Add utility to count table keys
2021-04-01 07:42:25 +00:00
Lucas Schwiderski f68939bfc1
chore(g.table): Add missing modeline 2021-03-31 08:29:00 +02:00
Lucas Schwiderski ec3788bf73
docs(g.table): Improve parameter descriptions 2021-03-31 08:27:08 +02:00
mergify[bot] 95558ac919
Merge pull request #3297 from actionless/dont-crash-when-gtk4-installed
fix(beautiful: gtk): don't crash when both gtk3 and gtk4 are installed
2021-03-29 15:49:37 +00:00
Emmanuel Lepage Vallée 13e8408562
Merge pull request #3284 from sclu1034/issue/3213
Fix composite widgets with top level container
2021-03-28 16:00:16 -07:00
Emmanuel Lepage Vallee c48e138b01 doc: Add examples for the graph. 2021-03-28 02:37:25 -07:00
Yauhen Kirylau 6ef3a8f059
fix(gears: colors: recolor_image): always duplicate the surface (#3233) 2021-03-27 23:48:48 -07:00
Lucas Schwiderski e7d55567a6
Remove redundant assignment
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-27 14:08:47 +01:00
Shay Agroskin 62850476d2 layout/fixed: Prevent overloading widgets with negative spacing
For each widget, the layout function checks whether placing it would
make the function exceed the allowed geometry.
If not, the function places both the widget and a spacing widget.
This check ignores the size of the spacing widget itself, this can cause
overloading of widgets on top of each other.

For example, the following scenario with these widgets:
    widgets: widget1 { width = 10, height = 10  }
	     widget2 { width = 10, height = 10  }
	     widget3 { width = 10, height = 10  }
and a call to horizontal layout with the
{ width = 10, height = 10, spacing = -5 } parameters.

The function would layout the widgets the following way:
{
    widget1: { x = 0, y = 0, width = 10, height = 10 }
    spacing: { x = 5, y = 0, width = 5, height = 10  }
    widget2: { x = 5, y = 0, width = 5, height = 10  }
    spacing: { x = 5, y = 0, width = 5, height = 10 }
    widget3: { x = 5, y = 0, width = 5, height = 10  }
}

This behaviour would be the same for any number of widgets for negative
layout.

This patch changes the layout function to check whether the current
widget uses up the whole space.
It also removes 'pos' variable. Its purpose isn't intuitive in the
presence of x and y. This helps to understand where each widget is
placed now that x, y don't hold the end location of the widget in the
previous loop iteration.

The result of the previous example becomes:
{
    widget1: { x = 0, y = 0, width = 10, height = 10 }
}

While this might not be the wanted behaviour exactly, distinguishing
between the scenario where 2 widgets are drawn and a scenario where 3
are drawn might complicate the layout function too much.

This patch also adds unit testing that catches the described behaviour.

Signed-off-by: Shay Agroskin <agrosshay@gmail.com>
2021-03-26 16:11:01 +03:00
Shay Agroskin a18e3508f6 layout/fixed: Fix wrong space calculation in fit
The fit function is called twice in row.

- The first time it gets the maximum available width, and returns how
  much of it it needs (with 0 spacing it would be 477)

- The second time the available width it gets is the same as it returned
  last phase (and probably is expected to return the same result again)

The width fit requests is the total width of all widgets together + the
spacing (e.g. if each tag widget is 53 px and spacing is -10 then the
requested width 53 * 9 - 80).

The function tries to first fit all its widgets (the tag numbers) in the
amount of width it received, and only then adds the spacing to it. This
is problematic because in the second phase the widgets need to fit
themselves in the same width they requested earlier minus the spacing
(in case of negative spacing). This is of course impossible and so some
widgets are just not being drawn correctly.

This patch makes fit function take into account the spacing while
placing the widgets and not afterwards.

Also add unit-testing that test the bug described.

Signed-off-by: Shay Agroskin <agrosshay@gmail.com>
2021-03-26 16:11:01 +03:00
Shay Agroskin 749422100e layout/fixed: Remove code duplication
The function has several expressions of the form
    if self._private.dir == "y" then
This patch stores the result of
    self._private.dir == "y"
to avoid code duplication.

Also remove the 'used_in_dir' and 'in_dir' variables since their values
can be calculated using other variables in the function and updating
them individually is error prone.

This patch doesn't do any functional changes.

Signed-off-by: Shay Agroskin <agrosshay@gmail.com>
2021-03-26 16:11:01 +03:00
actionless e833da0303 fix(beautiful: gtk): don't crash when both gtk3 and gtk4 are installed 2021-03-25 00:21:04 +01:00
James R aeb2d85dad
tasklist: Fix documented function names (#3276) 2021-03-22 15:28:53 -07:00
Lucas Schwiderski afced71a9a
Add example for gears.table.count_keys
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-22 20:55:40 +01:00
Lucas Schwiderski 058190a3c0
Add missing modelines
Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-22 20:24:56 +01:00
Lucas Schwiderski 07df24f7d0
Add utility to count table keys
See #3293.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-22 20:24:55 +01:00
Emmanuel Lepage Vallée d583129eb6
Merge pull request #3143 from Elv13/doc_client_layout
Document the client layout properties
2021-03-22 12:10:36 -07:00
Daniel Hahler dab84c2662
fix(doc): gears.table.keys: s/integer keys/integer/ (#3293) 2021-03-22 12:05:17 -07:00
Emmanuel Lepage Vallée 80a7d9e3ee
Merge pull request #3283 from sclu1034/issue/3214
Remove unused first parameter in some constructors
2021-03-22 10:45:18 -07:00
Emmanuel Lepage Vallee b4cf88f4c0 doc: Fix the titlebars widget constructor doc 2021-03-22 00:56:02 -07:00
Emmanuel Lepage Vallee 31fcce436c doc: Add a client border color example. 2021-03-22 00:56:02 -07:00
Emmanuel Lepage Vallee 8f8d0e7bbf doc: Fix a awful.ewmh->awful.permissions rebase issue 2021-03-22 00:54:00 -07:00
Emmanuel Lepage Vallee 522d628c2c doc: Complete the widget documentation page.
This adds the `awful.widget` content along with some images.
2021-03-22 00:54:00 -07:00
Emmanuel Lepage Vallee 9f50c5e062 doc: Add more tag images. 2021-03-22 00:54:00 -07:00
Emmanuel Lepage Vallée 1c8b0b924d
`ruled.client` fixes (#3195)
* ruled.client: Fix a regression introduced when append/remove was added.

* ruled.client: Fix an error message grammar.
2021-03-22 00:04:13 -07:00
Emmanuel Lepage Vallée 50fa1b8679
naughty: Correctly notify the client when a notification is dismissed. (#3184)
Fix #3182

Co-authored-by: Uli Schlachter <psychon@znc.in>
2021-03-22 00:03:37 -07:00
Emmanuel Lepage Vallee 42a86efa50 doc: Document some of the `tag` properties. 2021-03-21 23:58:05 -07:00
Emmanuel Lepage Vallee 9b4f5b7969 doc: Add an example for mouse `snap` and client edge tiling. 2021-03-21 23:58:05 -07:00
Emmanuel Lepage Vallee d9514820ef mouse: Add an `awful.mouse.snap.aerosnap_distance` global variable.
The distance to snap clients to each other was already something which
could be configured. The distance to enable screen edge wasn't.

Fixes #3025
2021-03-21 23:58:05 -07:00
Lucas Schwiderski 7bc3ec4c35
Fix composite widgets with top level container
When wrapping container widgets to create reusable composite widgets,
`drill` will be called twice on the same widget definition. The first
call happens within the wrapping function and applies the children
widgets fine. The second call happens when the composite widget is used,
but since there are no children widgets defined, the call to
`set_children` sets the existing child to `nil` instead.

Fixes #3213.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-11 12:32:28 +01:00
Lucas Schwiderski ad1a28ced2
Remove unused first parameter in some constructors
Fixes #3214.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-03-08 20:09:41 +01:00
Lucas Schwiderski ca066e8d0f
Respect line column limit 2021-03-07 11:09:45 +01:00
Lucas Schwiderski a8d830f1e6
Improve gears.shape module description.
Fixes #3270.
2021-03-06 17:10:20 +01:00
jpkotta aba1cf398f
fix client:activate action mouse_center (#3257) 2021-02-28 23:03:14 -08:00
Grumph f6a2306d1a Protect endswith and startswith from nil str
A nil parameter can mean an empty string (e.g. client.name), so we
just return false.
2021-01-26 17:58:25 +01:00
Jonta 1c53c36eb7
Grammar 2020-12-05 16:17:45 +01:00
Unai 538586c170
textbox: print traceback on error (#3205) 2020-11-01 16:12:42 -08:00
mergify[bot] cc67a5b40b
Merge pull request #3199 from psychon/grid_direction_properties
Fix setters/getters for grid layout direction properties
2020-10-13 07:23:23 +00:00
Uli Schlachter f1871873aa Fix setters/getters for grid layout direction properties
Wow. This code was so weirdly broken, I have no words.

Fixes: https://github.com/awesomeWM/awesome/issues/3198
Signed-off-by: Uli Schlachter <psychon@znc.in>
2020-10-10 17:32:04 +02:00
mergify[bot] 6f047e9468
Merge pull request #3125 from actionless/hotkeys-vimdiff
feat(awful: hotkeys_popup: vim): add vimdiff
2020-10-07 15:04:52 +00:00
Emmanuel Lepage Vallée ed6cdf87b1
Merge pull request #3187 from PlayerNameHere/master
Fix wibox.layout.stack:raise() returning prematurely and inserting the widget at the end instead of the start
2020-09-28 23:32:06 -07:00
Emmanuel Lepage Vallée 5cbc423938
notifications: Make `:reset_timer()` more intuitive. (#3175)
Previously it would only work if there already was a timeout to
avoid some infinite loops. Now it just delay the new timer to the
next loop.

Fix #3147
2020-09-27 23:34:14 -07:00
PlayerNameHere 45cfbe72bf Add getters for wibox.layout.stack offset properties
Getters for the horizontal_offset and vertical_offset properties
were missing, which resulted in nil when trying to get them.
2020-09-28 00:00:08 +08:00
PlayerNameHere 2647e1c855 Fix emitted signals in wibox.layout.stack:set_horizontal_offset() 2020-09-27 23:58:22 +08:00
PlayerNameHere 13e41a2a7b Fix wibox.layout.stack:raise()
There seem to be two issues here. First, the if-statement at the
beginning of the function will return prematurely if
`self._private.widgets[index]` exists. There seems to be a
missing `not` there.
Second, index 1 is interpreted as the top of the stack (although the
documentation says otherwise), but the widget is inserted at the end of
`self._private.widgets`, so it gets pushed to the bottom
instead of the top.
2020-09-27 16:02:17 +08:00
actionless a2674c2d14 feat(awful: hotkeys_poup): better visually split multiple keys 2020-09-26 04:43:12 +02:00
mergify[bot] d5ce4d5d1c
Merge pull request #3173 from Elv13/fix_maximized_tiled
screen: Correctly detect tiled_clients.
2020-09-14 17:08:51 +00:00
mergify[bot] 9d766ba622
Merge pull request #3176 from Elv13/notification_foot_gun
naughty: Improve backward compatibility to protecting the constants.
2020-09-14 17:04:00 +00:00
Emmanuel Lepage Vallee 0cbb7f59b0 naughty: Improve backward compatibility to protecting the constants.
If the user copy/pasted `naughty.config.*` into their config rather
than set values 1 by 1, we could no longer add new values since they
would get removed. To prevent more users being affected by this, we
now silently ignore the new table while still setting all the values.

Fix #3145
2020-09-14 02:11:32 -07:00
Emmanuel Lepage Vallee be05862bf4 doc: Add an awful.tag.clear example. 2020-09-14 01:17:31 -07:00
Emmanuel Lepage Vallee b1b9bd838d tag: Add a `:clear()` method.
It was previously done using `:clients{}`, but that super unintuitive,
hard to search and has no signal. This fixed that.
2020-09-14 01:17:31 -07:00
Emmanuel Lepage Vallee 6dda0e4599 screen: Correctly detect tiled_clients.
At some point we added an unified `maximized` property to the
client class. Originally it was just setting both horizontal
and vertical maximization. LAter on, this was rewritten to
make the state change more atomic and reversible.

Soon after, we added  `immobilized_horizontal` and
`immobilized_vertical` to make most `if` simpler.
`screen.tiled_clients` was missed in that refactoring.

Fix #3169
2020-09-13 23:35:57 -07:00
kdrobnyh 97c3849ae7
Fixed showing hotkeys_popup on the focused screen (#3164) 2020-09-08 22:10:21 -07:00
actionless 20a79ed448 fix(awful: hotkeys_popup: widget: create_column): correct max label width detection 2020-09-04 23:54:57 +02:00
actionless 901bb3d88e fix(awful: hotkeys_popup: widget: create_group_columns): correct max label height detection 2020-09-04 23:54:57 +02:00
mergify[bot] 7a759432d3
Merge pull request #3044 from SethBarberee/firefox_keys_fix
add additional match for firefox in awful.hotkeys_popup/keys/firefox.lua
2020-08-01 23:01:50 +00:00
James Reed e2b00c71e7
Fix adjust misspelling
Co-authored-by: Aire-One <Aire-One@users.noreply.github.com>
2020-07-31 17:33:12 -06:00
Yauhen Kirylau 639f0196d8
fixup: typo 2020-07-02 18:35:45 +02:00
actionless 7ec9e8018f feat(awful: hotkeys_popup: vim): add vimdiff 2020-07-02 07:24:44 +02:00
Yauhen Kirylau e7113d7191
fix(naughty: layout: box): take preset.padding and beautiful.notification_spacing into account (#3103) 2020-05-22 21:55:47 -07:00
ArenaL5 15929b0797 Add F-keys and numpad to `awful.key.keygroups`
Signed-off-by: ArenaL5 <arenal5@gmx.com>

Extend `fkeys` to F35

Signed-off-by: ArenaL5 <arenal5@gmx.com>

Reducing `numpad` to its most aggreable subset

Signed-off-by: ArenaL5 <arenal5@gmx.com>

Add method to select a layout directly

using the Super key + the numeric keypad. This method uses the layout list from the currently selected tag in the currently focused screen. (If there is no selected tag, it does nothing.)

To allow this, the keygroups `numpad` and `fkeys` were added to `awful.key.keygroups`.

Refit to avoid error by nil and to remove imperative code, as per recommendation from @Elv13.

Signed-off-by: ArenaL5 <arenal5@gmx.com>
2020-05-12 20:20:19 +02:00
ArenaL5 e97eeff187 Label numeric keypad Enter to hotkeys_popup
When adding human-readable key names to `lib/awful/hotkeys_popup/widget.lua`, I forgot to add the Enter key in the numeric keypad to the list.

Signed-off-by: ArenaL5 <arenal5@gmx.com>
2020-05-12 20:20:19 +02:00
James Reed e21b85f5fd
awful.tag: Fix handling of stateful layout in `new`
Fixes #3056.
2020-05-06 18:48:40 -06:00
Emmanuel Lepage Vallée 38848bff04
Merge pull request #3074 from actionless/fix-markup-escape
fix(naughty: widget: _markup): correctly un-escape "&lt;span property=value&gt;"
2020-05-04 01:50:12 -07:00
Emmanuel Lepage Vallée 535b296b59
Merge pull request #3070 from aDogCalledSpot/menubar_match_empty
Menubar match empty
2020-05-04 01:45:51 -07:00
mergify[bot] 8c19bbf5ad
Merge pull request #3082 from unai-ndz/fix_wibox_declarative_opacity
fix wibox declarative opacity, Fixes #2997
2020-05-04 08:45:11 +00:00
Emmanuel Lepage Vallée ae7d36f816
Merge pull request #3071 from actionless/fix-empty-string-matcher
fix(gears: matcher: default_matcher): handle sidecase of string.match-ing the empty string ('')
2020-05-04 01:44:15 -07:00
Emmanuel Lepage Vallée e384ee449f
Merge pull request #3073 from actionless/placement-skip-fullscreen
feat(awful: placement): add "skip_fullscreen"
2020-05-04 01:43:55 -07:00
Unai 1518b0f4c0
Border_marked naming consistency (#3084)
* finish renaming border_marked to border_color_marked

* doc: document border_color_fullscreen, update border_color_marked and fix typo

* deprecate instead of removing

* doc: fix border_color_marked
2020-05-04 01:42:09 -07:00
hung fdee02cdcf gears.shape: new shape (partial) squircle 2020-05-02 17:04:36 +07:00
hung 730b0f5c5c gears.math: add the sign function 2020-05-01 15:17:14 +07:00
Unai Fernández 654a3216e2 fix wibox declarative opacity 2020-04-26 17:36:36 +02:00
actionless 124c6f9b23 fix(naughty: widget: _markup): correctly un-escape "&lt;span property=value&gt;" 2020-04-23 13:44:34 +02:00
actionless 9ef78c4f88 fix(awful: placement: skip_fullscreen): force screen geometry 2020-04-23 07:27:51 +02:00
actionless b71d522f8c feat(awful: placement): add "skip_fullscreen" 2020-04-23 06:23:49 +02:00
Yauhen Kirylau 6c7a5a5073
Update lib/menubar/init.lua
Co-Authored-By: Ari <ari.breitkreuz@pm.me>
2020-04-22 22:03:28 +02:00
Ari Breitkreuz 138e37576d Add note that prompt_args will override defaults 2020-04-22 13:05:19 +02:00
Ari Breitkreuz 30911a3959 Rename v to entry in add_entry loop 2020-04-22 13:02:46 +02:00
Ari Breitkreuz ec5ec642c3 Add match_empty option to menubar 2020-04-22 13:02:41 +02:00
actionless f803347fc8 fixup! fix(gears: matcher: default_matcher): handle sidecase of string.match-ing the empty string ('')
style: return true/false instead of assigning nil to result
2020-04-22 01:52:41 +02:00
actionless 90aacbc5b5 fix(gears: matcher: default_matcher): handle sidecase of string.match-ing the empty string ('') 2020-04-21 19:51:11 +02:00
Ari Breitkreuz 788d8fec33 Don't force defaults in menubar 2020-04-21 16:45:40 +02:00
Hugo Trassoudaine feb699aa3c
Add doc fields for extra tasklist client property notification icon theming in lib/awful/widget/tasklist.lua
Signed-off-by: Hugo Trassoudaine <hugo.trsd@gmail.com>
2020-04-06 14:20:35 +02:00
Gerome Matilla 158cc37a0d
Apply placement margins on awful.tooltip (#3053)
Co-authored-by: Gerome Matilla <gerome.matilla@gmail.com>
2020-04-01 02:13:58 -07:00
hung 33f99fea1c Remove double blank line 2020-03-28 21:13:53 +07:00
hung 7f7793378e Use cr:save and cr:restore instead 2020-03-28 20:43:07 +07:00
hung 4eff88679c new shape: star 2020-03-28 20:21:39 +07:00
Seth Barberee 6e7d235c5a add additional match for firefox 2020-03-21 09:27:07 -05:00
mergify[bot] 5d1394b91d
Merge pull request #3041 from SethBarberee/tag_gap_doc
[Doc] add example for master_count in awful.tag
2020-03-20 12:46:16 +00:00
Seth Barberee 6d24dc2ab7 add example for master_count 2020-03-20 01:00:53 -05:00
Seth Barberee 5c7574bce8 convert hotkeys_popup to awful.popup instead of wibox 2020-03-19 10:51:51 -05:00
Emmanuel Lepage Vallée 2da1cb9ba0
Merge pull request #3040 from Elv13/notif_icons_v3
[RFC] Redesign how notification icons are handled.
2020-03-18 21:35:29 -07:00