Commit Graph

8836 Commits

Author SHA1 Message Date
Daniel Hahler 5ac6db5696 Travis: use stable SOURCE_DATE_EPOCH for predictable calendar examples (#2075)
Fixes https://github.com/awesomeWM/awesome/issues/2070.
2017-10-22 18:46:38 +02:00
Daniel Hahler 1ab861ea3a tests: busted: add config file, use --verbose by default (#2076) 2017-10-22 18:05:00 +02:00
Daniel Hahler 288b7030f3 build-utils/dist.sh: remove "-dirty" suffix (#2074)
Calling `make dist` on a dirty tree caused an error when trying to use
`git log` with the `-dirty` suffix.

This patch removes any "-dirty" suffix from the argument.

[ci skip]
2017-10-22 16:34:04 +02:00
Daniel Hahler f3baf499aa tests/examples/CMakeLists.txt: set env via LUA_COV_RUNNER only (#2072)
LUA_COV_RUNNER is used with `add_custom_command` for the command to
generate the images, and AWESOME_THEMES_PATH should be set there.

Since LUA_COV_RUNNER is used also with `execute_process` there is no
need for `set(ENV …)` anymore.
2017-10-22 15:47:53 +02:00
Daniel Hahler 7117c6a720 Makefile: add explicit rule for Makefile to not "update" it (#2071)
Typically the implicit rule below will trigger a "make -C build
Makefile" run, whenever build/Makefile is newer than our Makefile.

Ref: https://www.gnu.org/software/make/manual/html_node/Remaking-Makefiles.html
2017-10-22 15:32:37 +02:00
Emmanuel Lepage Vallée 57b18df56c Merge pull request #2016 from Elv13/doc_tests_and_notif_p1_6
Improve the `awful` example test tempate
2017-10-21 20:10:14 +02:00
Emmanuel Lepage Vallee 2a506b03ae tests: Port the screen template to wibox.layout.manual
It's more flexible than raw cairo code and it's what it was
originally designed for (see #1153).
2017-10-21 19:34:04 +02:00
Emmanuel Lepage Vallee cedeb2bb5a wibox: Add a `to_widget()` and `save_to_svg()` method.
Take a wibox snapshot as a widget. It also add an helper to save
it to a file. This is useful for debugging when called from
`awesome-client`
2017-10-21 19:34:04 +02:00
Uli Schlachter 1592180c83 textbox: Make some screen arguments optional again (#2057)
Since beautiful.xresources.get_dpi(s) allows nil as argument to query
some "global DPI", the functions to query the size of a textbox also
allowed to use nil as the screen, even though this was never documented
to work. Commit a137655791 broke this by assuming a valid screen
object.

This commit makes a nil argument work again, but will cause a
deprecation warning in awesome 5.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-10-21 19:32:35 +02:00
Daniel Hahler c362524a5f Merge pull request #2012 from Elv13/doc_tests_and_notif_p1_2
widget: Add a flexible generic constructor
2017-10-21 19:26:49 +02:00
Uli Schlachter c7d75ed119 awful.screen.object.get_dpi: Ignore outputs with size 0 (#2063)
For example, Xephyr reports its output with a size of 0x0. Since a
division by zero is in no one's interest, just ignore such outputs when
trying to compute the DPI value.

Thanks to @timroes for pointing this out:
c8fac753c4 (commitcomment-25072296)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-10-21 19:23:04 +02:00
Daniel Hahler 03580db5bb Merge pull request #2015 from Elv13/doc_tests_and_notif_p1_5
object: Add support for signal forwarding
2017-10-21 19:20:41 +02:00
Emmanuel Lepage Vallée e6d289841d Merge pull request #2011 from Elv13/doc_tests_and_notif_p1_1
Update the shims
2017-10-21 18:06:14 +02:00
Emmanuel Lepage Vallee 8e87bd7c64 tests: Add some methods to the shims 2017-10-21 17:57:30 +02:00
Emmanuel Lepage Vallee 15b025ff91 tests: Add the theme path ENV variable
That way theme assets can be used by the documentation images
2017-10-21 17:50:38 +02:00
Uli Schlachter c8fac753c4 Merge pull request #2055 - psychon/auto_screen_dpi 2017-10-14 18:26:50 +02:00
Uli Schlachter 74a6cbedce Fix menubar screen handling
Running test-menubar.lua just failed for me locally. The reason was that
the textbox was indexing a nil value when doing 's.dpi'.

This commit fixes the menubar so that its optional screen arguments are
really handled correctly. In fact, a default screen is now chosen way
earlier than before, so that no nil values are used as screens later on.

In other news: I guess test-menubar.lua is not run on any of our Travis
targets...

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-10-08 14:53:58 +02:00
Uli Schlachter d0fbb96d2d screen.dpi: Use RandR for per-screen DPI
This commit makes awesome automatically compute the DPI of a screen
based on its RandR outputs. If multiple outputs exist, the lowest DPI is
used.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-10-08 14:40:20 +02:00
Uli Schlachter a137655791 Add & use a dpi property on screen objects
Once upon a time, beautiful.xresources.get_dpi was added to query
Xft.dpi. That made sense since this queried an xresources property. Over
time, other, non-xresources-based ways to query DPI were added to this
function. Now, it makes no more sense to have this function here.

Also, recently it became possible to add new properties to C objects
from Lua code. Thus, we no longer need to have a get_dpi() function
somewhere, but can add s.dpi directly.

Thus, this commit adds s.dpi and makes everything use it. No functional
changes are intended.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-10-08 12:30:21 +02:00
Uli Schlachter 7e395e7bc0 Use memory shorter with awful.client.shape (#2051)
To apply the shape of a client, we have to create an image and draw the
shape we want to it. Since clients can be quite large, we have to make
sure that we do not keep this image alive unnecessarily long.

The code in awful.client.shape.get_transformed() however needs another
temporary surface in case the client has its own shape and another one
was set in Lua (side note: currently the code also creates this extra
temporary surface if the client does not have its own shape; that might
be worth fixing). This temporary surface is then used as the source of a
cairo context to draw it to the image that will be used as the client's
final source.

After we are done, the temporary surface is still kept alive since it is
the current source of the cairo context. The cairo context in turn is
only freed when Lua's garbage collector collects it, which may take
quite a while.

Improve this by setting a different source to the cairo context. Thus,
it now releases the temporary surface as soon as possible and it is only
allocated for a short time.

Fixes: https://github.com/awesomeWM/awesome/issues/2050
Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-10-07 18:22:50 +02:00
Daniel Hahler 1ae2268a07 Merge pull request #2049 from reinerh/reproducible
Sort list of files used in generated table
2017-10-07 18:21:48 +02:00
Reiner Herrmann a9b65833e7 Travis: export SOURCE_DATE_EPOCH in one build job 2017-10-07 14:08:26 +02:00
Reiner Herrmann 9d7eaf020d Use reproducible timestamp during build
During build svg images of the calendar widget are generated, which
differ based on the current date.
By honouring the environment variable SOURCE_DATE_EPOCH, which is
set by distributions during build, a deterministic date can be used
at build time while keeping the normal behaviour during runtime.

See also: https://reproducible-builds.org/specs/source-date-epoch/
2017-10-07 13:58:35 +02:00
Reiner Herrmann cce65aa6d3 Sort list of files used in generated table 2017-10-07 13:58:35 +02:00
Uli Schlachter 4e42996d9a naughty: Fix replaces_id + changing colors (#2041)
This fixes a regression introduced in be29ee6768. This commit changed
naughty to reuse an already-existing wibox when replaces_id is used,
instead of creating a new wibox. However, some of the properties that
are set only when creating a wibox were ignored due to this.

Fixes: https://github.com/awesomeWM/awesome/issues/2040
Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-09-30 21:37:33 +02:00
Reiner Herrmann a6613c08a9 Typo in manpage (#2048) 2017-09-29 17:45:11 +02:00
Zach Peltzer 013abf5a39 Display desktop entries with no categories (#2039) 2017-09-28 22:58:14 +02:00
Zach Peltzer 8d34201ec3 Unescape strings when parsing desktop entries (#2043)
* Unescape strings when parsing desktop entries

* Fix unused value warning in menubar/utils.lua

* Move menubar.utils.unescape() tests

* Clean up menubar.utils.unescape() function

* Fix warning for using "_" in a non-local context

* Do not ignore trailing whitespace in menubar.utils.parse_list()
2017-09-28 22:57:39 +02:00
Uli Schlachter 55dee1ea87 magnifier layout: Never manage floating windows (#2046)
The magnifier layout handles the currently focused client specially.
However, if the currently floating client is floating, it should not be
handled by the layout at all. A bug caused the magnifier layout to
handle a focused and floating client anyway if it was the only tiled
client.

Fix this by removing the '#cls > 0'-case. If #cls == 0, then no client
is available to be managed. Thus, cls[1] will be nil, which is fine
since, well, no client is available to be managed. This only made a
difference in the specific bug that I described above. Thus, drop this
case.

Fixes: https://github.com/awesomeWM/awesome/issues/2045
Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-09-28 22:56:41 +02:00
Daniel Hahler 790a669029 cmake: add strict mode for ldoc, based on STRICT_TESTS (#2035)
This allows for building the docs with an older ldoc version, and it
makes sense in general to make warnings not fatal by default.

Ref: https://github.com/awesomeWM/awesome/pull/2027#issuecomment-328354095
2017-09-11 14:20:43 +02:00
Uli Schlachter b04b1b27af Add a force_update() method to the textclock (#2034)
Reference: https://github.com/awesomeWM/awesome/issues/344
Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-09-10 20:12:25 +02:00
Yauhen Kirylau ebcc19844e fix(awful: placement: no_overlap): use new placement infrastructure (#2032)
Fixes #2030
2017-09-09 16:26:54 -04:00
Uli Schlachter 43e268373d Mention minimum ldoc version in the readme (#2027)
See commit 2c741f8e1d which introduced this dependency.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-09-09 05:14:41 +02:00
Daniel Hahler 66c4e55511 Merge pull request #2029 from actionless/calendar-fix-click-hide
Calendar popup click/hover fix
2017-09-09 05:14:02 +02:00
getzze 35432e9f21 Avoid skipping a month if the day is 31 (#2028) 2017-09-08 22:08:47 +02:00
actionless c9fbecd1e8 refactor(awful: widget: calendar_popup): s/_calendar_clicked/_calendar_clicked_on/ 2017-09-01 22:43:57 +02:00
actionless 23613bac05 fix(awful: widget: calendar_popup): hover was not working anymore if hiding popup by clicking on it 2017-09-01 22:43:07 +02:00
Daniel Hahler 02f894ce0c Improve tests/examples: generate deps for output files (#1962)
This still runs all the tests in the configure phase, since the tests
report back what output file (png/svg/none) will be generated.. :/

This could be improved by having this table in CMakeLists directly, or
by having a callback into the tests that only reports back that
information.  The latter would still execute all the tests (via a Lua
process).

Adds an explicit check-examples target.
2017-08-31 21:21:19 +02:00
Daniel Hahler cc2d4e9189 build-utils/dist.sh: reproducible builds (fixes shellcheck issues, adds usage) (#1983) 2017-08-31 21:20:08 +02:00
Daniel Hahler 8923df4a5f build: make DO_COVERAGE a CMake variable
Travis: remove CXXFLAGS (not used), LDFLAGS (typo, not used)

Closes https://github.com/awesomeWM/awesome/pull/2001.
2017-08-29 22:24:12 +02:00
Daniel Hahler 69d06f7e3a default config: improve floating windows (#2023)
* default config: floating windows: fix pinentry-gtk-2

We have class "pinentry" there already, but it seems to have changed to
"Pinentry"?!  This uses "instance" instead, which hopefully works in the
old case also.

pinentry 1.0.0-1, gnupg 2.1.23-1

Also adds Blueman-manager and ConfigManager.
2017-08-28 10:55:56 +02:00
Yauhen Kirylau 9e4446060e feat(awful: widget: calendar_popup: attach): implement 'on_hover' option (#2008)
* feat(awful: widget: calendar_popup: attach): implement 'on_hover' option

* feat(awful: widget: calendar_popup): smarter handling of click and hover at the same time
2017-08-27 21:01:24 +02:00
Yauhen Kirylau fd66d12a4b feat(awful: widget: calendar_popup): implement 'margin' widget property (#2010) 2017-08-27 14:23:43 +02:00
Emmanuel Lepage Vallée ec08af4e76 clienticon: add a client setter (#2018)
It's required to work with the declarative syntax and be used
in the tasklist due to its limitations.
2017-08-27 14:23:06 +02:00
Daniel Hahler 78686166b2 Merge pull request #2009 from actionless/fail-on-more-errors
fix(tests: run.sh): add one more error log pattern
2017-08-27 12:06:37 +02:00
actionless 596b7443e7 feat(tests: run.sh): treat luaA_panic as an error 2017-08-24 23:16:53 +02:00
actionless 162cf1854c fix(tests: run.sh): add one more error log pattern 2017-08-24 23:16:53 +02:00
Daniel Hahler 6e53143401 tests/themes/run.sh: whitespace: sw=4 2017-08-24 23:16:53 +02:00
Daniel Hahler e1da4b030f tests/themes/run.sh: use themes from build dir 2017-08-24 23:16:53 +02:00
actionless 0a75f09d1d fix(menubar: utils: parse_dir): print to log the current failed directory instead of the root one 2017-08-24 23:06:16 +02:00