Commit Graph

8577 Commits

Author SHA1 Message Date
Yauhen Kirylau 148723f053 refactor(awful: hotkeys_popup): expose configuration options for a widget instance and use more object-oriented structure for the widget (#1533)
* refactor(awful: hotkeys_popup): expose configuration options for a widget instance and use more object-oriented structure for the widget

closes #1352
closes #1497

* doc(awful: hotkeys_popup): add @beautiful docstrings

* fix(awful: hotkeys_popup): add label_bg for misc labels; improve @beautiful docstrings
2017-02-10 19:50:10 +01:00
Aaron Bieber 94d13d04e8 awesome-client: let env find bash (#1544)
```
Applications should note that the standard PATH to the shell cannot be assumed to be either /bin/sh or /usr/bin/sh, and should be determined by interrogation of the PATH returned by getconf PATH, ensuring that the returned pathname is an absolute pathname and not a shell built-in.
```

POSIX and SUS both say the same thing about this. This will also fix awesome-client on *BSD.
2017-02-08 22:33:21 +01:00
Emmanuel Lepage Vallée 34273b4c87 Merge pull request #1540 from copycat-killer/awful_widget_watch
awful.widget.watch: return timer too
2017-02-08 14:17:20 -05:00
copycat-killer 7a728cec6b awful.widget.watch: return timer too 2017-02-08 14:53:40 +01:00
Uli Schlachter 0afed66ccf Add a utility checking uses of require()s
Currently, "everything can require everything". It's an unstructured
mess which sometimes causes problems.

This commit adds a tool that enforces a white-list of require() uses. It
uses depgraph to scan the source code and then each use of require()
that is found is checked. If any violations are found, the tool returns
a failure.

This tool is wired up to a new target "make check-requires" which is
included in "make check". Thus, Travis will run this.

Reference: https://github.com/awesomeWM/awesome/issues/1400
Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-02-08 08:35:43 +01:00
Jonathan McCrohan 12e5998698 naughty: urldecode icon URI file
file:// URIs should be urlencoded; decode URIs where required.

Signed-off-by: Jonathan McCrohan <jmccrohan@gmail.com>
2017-02-08 01:15:36 +00:00
Emmanuel Lepage Vallée fe4d6404a6 Merge pull request #1376 from Elv13/disable_wibox_in_tests
tests: Add a very dirty hack to break wibox for multiscreen tests
2017-02-07 11:38:33 -05:00
Emmanuel Lepage Vallee 83e176fa32 tests: Break wibox for multiscreen tests (on purpose)
This commit add an option to shim the whole wibox module when
running multi-screen tests. This is intended to lower the test
runtime when coverage is enabled.

In theory, most of that code is already covered by the
test-screen-changes suit.

This makes the coverage builds about twice as fast. This is
necessary because there is a large number of timeouts due to
limited resources on the Travis build system.
2017-02-07 11:37:07 -05:00
Emmanuel Lepage Vallée 1f4e20e13a Merge pull request #1453 from Elv13/fix_1321
Refactor maximization. This pull request induce some minor changes to the behavior of Awesome compared to earlier versions. However, it solves 4 bugs and should lay the foundations for a more predictable and stable maximization support.

The reason maximization slightly regressed in 4.0 was due to:

 * The request:: API standardization (2016 e5438790)
 * The fact that a combined `maximize` property was added (2014 ac45dc9f5)

As the request:: API enforce a strict "common protocol" for geometry change, having a split state didn't work back then. This pull request also adds many new config options to compensate for the behavior changes.
2017-02-07 11:27:20 -05:00
Emmanuel Lepage Vallee 69f292a31f doc: Add basic documentation for the custom rules properties.
In the lack of a better documentation.
2017-02-07 11:13:15 -05:00
Emmanuel Lepage Vallee 477df4a35b maximized/fullscreen: Use relative coords when restoring size.
Also apply a copy of the memento instead of mutating the
original.

Fixes #1320
2017-02-07 11:13:15 -05:00
Emmanuel Lepage Vallee 6da20bb301 rules.placement: Add properties to honor padding and workarea 2017-02-07 11:13:15 -05:00
Emmanuel Lepage Vallee 5f693ead30 rules: Move tags into the same group as tag
Unrelated to this PR, but found while doing a review.
2017-02-07 11:13:15 -05:00
Emmanuel Lepage Vallee 0bf8bb6a64 fullscreen: Add a beautiful option to remove borders.
This was previously done in a callback, but wasn't really
clean and/or bug free. Borders could end up leaking on other
screens as proven by an integration test.

Fix #171
2017-02-07 11:13:15 -05:00
Emmanuel Lepage Vallee 4ea6e133f8 placement: Add some missing `ignore_border_width` checks.
It was done in some places, but not all.
2017-02-07 11:13:15 -05:00
Emmanuel Lepage Vallee 3a0f139b9e maximize: Officially honor screen padding
Add an option too.

Fix #1459
2017-02-07 11:13:15 -05:00
Emmanuel Lepage Vallee 631e75a757 ewmh: Use the request:: API in the border_width / wa callback
And stop listening to property::geometry, it's no longer needed.

This also remove messing up the border without saving it
somewhere. The concept is sound, but not the implementation.
2017-02-07 11:13:15 -05:00
Emmanuel Lepage Vallee d5b681502a maximize: Stop mixing horizontal, vertical and both.
Before this commit, do this:

    c.maximize_hoizontal = true
    c.maximize = true
    c.maximize = false
    assert(c.maximize_hoizontal)

Would not work because the states were not preserved individually.
This commit fixes that. Awesome wont be confused about it's own
state anymore.

This may seem pointless, but when it come to undoing these
maximizations, it was ambiguous.
2017-02-07 11:12:42 -05:00
Emmanuel Lepage Vallee 3ca363115d tests: Add tests for #1321 2017-02-07 11:12:40 -05:00
Emmanuel Lepage Vallee 3b1599bd99 maximize: Stop doing it in 2 operations.
Before 4.0, maximizing could only be done in 2 operations.

4.0 add an unified way, but kept doing 2 operations. The old
Lua EWMH code to serialize the 2 operations was dropped when
the codepath was simplified and replaced by a generic version
in awful.placement. However this version never implemented
combining multiple mementos into 1.

This commit unify the maximize C code, drop the ugly macro
template and actually fixes a couple more issues that were
caused because request::geometry was sent twice.
2017-02-07 11:12:40 -05:00
Uli Schlachter 27173163cb client: Apply the whole geometry before emitting the signals
This resolve a possible race condition where the size could be
invalid when queried from a signal callback.

Fix #1456
2017-02-07 11:12:40 -05:00
Emmanuel Lepage Vallee 51ddb5639e mouse: Handle `maximized` client like `fullscreen` ones.
There is already a way to prevent them from moving them, but the
next few commits will remove it. There is no reasons to handle
this differently from fullscreen clients.
2017-02-07 11:12:40 -05:00
Yauhen Kirylau c1cd968803 import vim hotkeys from user config, not hotkeys_popup module (#1432) 2017-02-07 13:50:52 +01:00
Daniel Hahler 52170f575f test-current-desktop: make wait_for_current_desktop fail directly (#1516)
We should get the expected state before already.

Ref: https://github.com/awesomeWM/awesome/issues/1495#issuecomment-277098634
2017-02-06 19:55:08 +01:00
Emmanuel Lepage Vallée 206a5f664f Merge pull request #1529 from actionless/menubar-fix-menu-refresh-with-query
fix(menubar): use current query after refreshing entries list
2017-02-06 13:19:13 -05:00
Emmanuel Lepage Vallée 3bff1ef730 Merge pull request #1527 from actionless/awful-hotkeys-tests
test(awful: hotkeys_popup): add a minimal test
2017-02-05 18:00:21 -05:00
Yauhen Kirylau f9208eb421 chore(themes: default): return back legacy png assets (for compatibility with old theme) (#1528)
closes #1473
2017-02-05 23:39:25 +01:00
actionless 4c3b63009c fix(menubar): use current query after refreshing entries list
closes #1421
2017-02-05 22:06:29 +01:00
actionless 3cc613fa20 test(awful: hotkeys_popup): add a minimal test 2017-02-05 21:32:43 +01:00
Emmanuel Lepage Vallée 6416045baa Merge pull request #1526 from Elv13/rem_in_readme
doc: Removed remaining references to .lua.in files
2017-02-05 12:26:40 -05:00
Emmanuel Lepage Vallee 528ab6c7cf doc: Removed remaining references to .lua.in files
The .in is no longer used

Fix #1525
2017-02-05 12:16:27 -05:00
Emmanuel Lepage Vallée 1385243ea5 Merge pull request #1521 from psychon/fix-client-shapes
Fix client shape handling
2017-02-04 10:56:25 -05:00
Daniel Hahler 8ca08981b8 Travis: fix travis_run_in_fold (#1522)
It seems that when running travis_fold_end in case of a failure the
Travis job will be marked as "errored", but not "failed".

Ref: https://github.com/awesomeWM/awesome/pull/1516#issuecomment-277448575
2017-02-04 16:35:53 +01:00
sudo-nice c003f7ba78 doc: mention to select a tag on awful.tag.add (#1520)
Ref: https://github.com/awesomeWM/awesome/issues/1509#issuecomment-276941061.
2017-02-04 15:13:12 +01:00
Uli Schlachter 130acf1c00 Fix client shape handling
The functions awful.client.shape.update.bounding and .clip handle both
the client's shape and the shape set by Lua. However,
awful.client.shape.update.all only handles the shape set by Lua and
ignores the client's own shape. This can easily be noticed with xeyes.
When update.all ran last and you move around xeyes, the wallpaper behind
it is moved along, because it is not actually outside of the window.

Fix this by partly reverting 1a5f6b7ad2 and having update.all just
call the other two functions again.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-02-04 07:20:56 +01:00
copycat-killer 1a5f6b7ad2 client: Allow clients to have shapes
Also fixes awful.client.shape docs

Closes #1507
2017-02-03 17:48:28 -05:00
Emmanuel Lepage Vallée cbd22eea50 Merge pull request #1475 from psychon/input-shape-support
Input shape support
2017-02-03 12:25:56 -05:00
Emmanuel Lepage Vallée eae81ea8fe Merge pull request #1515 from blueyed/fix-test-current-desktop
test-current-desktop: add extra step when killing a client
2017-02-03 12:24:07 -05:00
Emmanuel Lepage Vallée 7adc825a40 Merge pull request #1519 from sudo-nice/master
doc: reflect the actual way to get client object
2017-02-03 12:23:37 -05:00
Sudo Nice 21906afb5d doc: reflect the actual way to get client object 2017-02-03 18:47:21 +03:00
Daniel Hahler d005640f92 test-current-desktop: add extra step when killing a client
Ref: https://github.com/awesomeWM/awesome/issues/1495#issuecomment-277098634
2017-02-02 23:02:54 +01:00
Uli Schlachter aaea976108 layoutbox: Update when a tag's screen changes (#1505)
In theory it would be enough to only update the old and new screen of
the tag whose screen changed. However, we cannot easily get the old
screen, so just update all layoutboxes.

Fixes: https://github.com/awesomeWM/awesome/issues/1503
Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-02-02 22:45:33 +01:00
getzze c0c083bf7d hotkeys_popup: add custom keys to existing groups (#1504) 2017-02-02 22:44:24 +01:00
Kevin Zander e1aacfaa22 awful.wibar: move wibar:remove() call outside of loop over all wiboxes (#1501)
Removing a wibar mid-loop will corrupt the indexing of the for loop and can
cause other wibars from being removed.
2017-02-02 22:42:20 +01:00
Uli Schlachter d494b87fb7 tests/_client.lua: Improve error with Gtk 2 (#1506)
In Gtk 2, the "first" argument to set_geometry_hints() is not optional.
However, this code does not provide any argument here. Improve the error
message in this case by checking for Gtk 3.

Reference: https://github.com/awesomeWM/awesome/issues/1495
Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-02-02 22:30:04 +01:00
Emmanuel Lepage Vallée 5439c34723 Merge pull request #1513 from Elv13/merge_copycat
object/client.c: added position and size properties
2017-02-02 13:29:42 -05:00
Luke Bonham ff47b0d0c4 object/client.c: added position and size properties
added client signals connection

added comments doc
2017-02-02 13:09:03 -05:00
Emmanuel Lepage Vallée 6c248485db Merge pull request #1492 from actionless/clone-awful-key-data
fix(awful: key): clone table with user data
2017-01-31 10:52:57 -05:00
Emmanuel Lepage Vallée 22057dcbde Merge pull request #1488 from boxofrox/fix/porting-guide-code-blocks
Fix/porting guide code blocks
2017-01-31 10:52:06 -05:00
actionless 79a60b3009 fix(awful: key): clone table with user data
closes #1401

fix(tests: awesomerc): use `awful.key.execute` instead of local helper function
2017-01-30 18:19:24 +01:00