Commit Graph

10405 Commits

Author SHA1 Message Date
Emmanuel Lepage Vallee 6f7019b2d0 rules.new_tag: Fix when the tag screen doesn't match the client
Also add the documented `props` argument to the high priority
rules.
2016-11-27 04:57:35 -05:00
Uli Schlachter 41a055cf83 Guarantee stable output from 06-appearence.md.lua (#1233)
This function was iterating over a table with pairs() to generate output (the
sample theme file). Since pairs() does not guarantee any iteration order, this
lead to a different order each time this file was generated. This is, for
example, visible in the diffs in the generate api documentation repository.

Fix this by using a self-made iteration function which behaves like pairs(), but
guarantees an iteration order sorted by keys.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-11-25 22:41:58 +01:00
Emmanuel Lepage Vallée 156f800123 Merge pull request #1232 from blueyed/doc-fix-client
doc: fix client context doc
2016-11-25 02:56:41 -05:00
Daniel Hahler c42213caff Merge pull request #1143 from awesomeWM/doc-fix-wibox.widget.base
Doc fixes for wibox.widget.base
2016-11-22 03:08:35 +01:00
Daniel Hahler fc13b1b4eb doc: s/Wether/Whether/ 2016-11-22 02:40:15 +01:00
Daniel Hahler b2358a312a Travis: branches: only: master, 3.5 2016-11-22 02:40:15 +01:00
Daniel Hahler eed3d7e63a lib/wibox/widget/base.lua: doc fixes 2016-11-22 02:40:15 +01:00
Daniel Hahler e1ccfe9168 doc: fix context doc 2016-11-22 01:15:35 +01:00
Daniel Hahler 326271f73b Travis: remove luajit from allow_failures: seems to be fixed (#1231) 2016-11-22 01:02:06 +01:00
Daniel Hahler 71259748d2 Minor doc and code style fixes
Closes https://github.com/awesomeWM/awesome/pull/1215.
2016-11-21 22:38:40 +01:00
Daniel Hahler aeab2a70e9 Fix whitespace warnings reported by luacheck (#1229) 2016-11-21 22:38:23 +01:00
actionless 3fea2db8c5 feat(awful: hotkeys_popup): add possibility to create new widget instance 2016-11-21 13:44:20 +01:00
Emmanuel Lepage Vallée 5aa4a16fb2 Merge pull request #1222 from morethanoneanimal/master
Use unmodified command for the command history.
2016-11-16 16:56:03 -05:00
Daniel Hahler 55689b4cc7 doc: improve client class (#1221) 2016-11-16 11:14:19 +01:00
MoreThanOneAnimal 61d4f4310a Use unmodified command for the command history.
Closes awesomeWM/awesome#1104.
2016-11-15 23:25:31 -08:00
Emmanuel Lepage Vallée 9b335b5bf1 Merge pull request #1220 from Elv13/tl_doc_fix
doc: Document tasklist_plain_task_name
2016-11-15 17:05:18 -05:00
Emmanuel Lepage Vallee 2d5a1798af doc: Document tasklist_plain_task_name
It was missing.
2016-11-15 16:33:20 -05:00
Yauhen Kirylau 4efdd2f5c6 docs(readme): add xcb-util-xrm to dependencies' list 2016-11-14 13:31:59 +01:00
Emmanuel Lepage Vallée 588cbc16aa Merge pull request #1206 from psychon/xkb
Implement some fallbacks if XKB is unavailable
2016-11-07 19:24:15 -05:00
Emmanuel Lepage Vallée 92a494a799 Merge pull request #1182 from psychon/screen_swap
Screen swap
2016-11-07 19:23:48 -05:00
Daniel Hahler cf96296f27 Travis: use Lua 5.3.3, from GitHub mirror (#1208) 2016-11-06 20:43:45 +01:00
Uli Schlachter 8409639d4d Blacklist broken LDoc versions (#1207)
Fixes: https://github.com/awesomeWM/awesome/issues/1098
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-11-06 01:24:25 +01:00
Uli Schlachter a4748164ab Add fallbacks for when XKB is unavailable
Fixes: https://github.com/awesomeWM/awesome/issues/1205
       (for master, dunno about 3.5)
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-11-04 17:26:28 +01:00
Uli Schlachter c7423fe79e Really stop using Xlib
Apparently I forgot some part...?

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-11-04 17:21:06 +01:00
Uli Schlachter 0e81479a3f Use xcb-util-xrm
Instead of using Xlib for parsing resource files, this now uses the
dedicated xcb-based library that is meant for exactly this task.

Fixes: https://github.com/awesomeWM/awesome/issues/1176
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-11-03 13:34:43 +01:00
Uli Schlachter b2e0e55fc0 tests/run.sh: Inherit $HEADLESS (#1201)
Via this, I can set HEADLESS=1 in my wrapper-GNUMakefile that I use and
"make check" will no longer open a new window that gets in my way.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-31 23:22:31 +01:00
Uli Schlachter 3ba07d77a6 Fix three typos
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-30 15:17:27 +01:00
Yauhen Kirylau 70f9999a06 fix(rc.lua): don't pass arguments to awesome.quit from menu
Closes #1197
2016-10-29 21:14:52 +02:00
Uli Schlachter dfa7d44ebd Add LGI version number to --version output
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-29 13:13:34 +02:00
Uli Schlachter e1d05e5209 Add more information to the --version output
This should now handle all #ifdef's that we react to.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-29 11:57:02 +02:00
Uli Schlachter 7712383475 Add a test for screen :swap()
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-29 09:36:31 +02:00
Uli Schlachter 3189996507 screen: Implement :swap(s)
This allows to change the order in which screens appear in our list of
screens.

Fixes: https://github.com/awesomeWM/awesome/issues/1122
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-29 09:36:31 +02:00
Uli Schlachter c347c0a54c screen: Add a "list" signal
Similarly to what we do with the client list, this signal is emitted
whenever the list of screens changes.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-29 09:35:02 +02:00
Uli Schlachter c218b1da72 Test and fix swapping clients
The code in luaA_client_swap() is incorrect, because
luaA_object_emit_signal() already pops the arguments to the signal.
Still, the code here tried to remove the arguments from the Lua stack
again, thereby corrupting the stack (removing more items than there are
in the stack).

Normally, popping more things from the stack than it has entries
silently corrupts the Lua stack. Apparently this doesn't necessarily
cause any immediate issues, because this code has been broken since nine
months and no one noticed. This mistakes was introduced in commit
55190646.

This issue was only noticed by accident. Thus, this commit also adds a
small integration test that exercises this bug. This test catches the
issue, but only on Travis, because there we are building our own version
of Lua 5.3 and that one has assertions enabled.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-29 09:34:45 +02:00
Uli Schlachter d71bb665d1 awesome.quit(): Add exit code argument (#1192)
Fixes: https://github.com/awesomeWM/awesome/issues/1184
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-27 10:40:53 +02:00
Daniel Hahler d0dc447dd5 Emit screen::arrange signal outside of arrange_lock (#1191)
This will handle changes in the layout recursively, e.g. when changing
the border_width of clients.

Ref: https://github.com/awesomeWM/awesome/issues/171#issuecomment-256146578
2016-10-26 16:20:34 +02:00
Uli Schlachter d07fc822a1 Fix awful.tag.object.get_gap_single_client (#1190)
The usual "a or b"-trick to simulate C's ?:-operator does not work when
"false" is a valid value. Fix the code to handle this correctly and add
a short unit test which would have caught this problem.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-26 01:43:45 +02:00
Uli Schlachter f71592a00a gears.matrix: Add create_rotate_at() (#1181)
We already have a variant of this function for transforming an actual
matrix. This adds the corresponding static factory.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-25 15:37:49 +02:00
Uli Schlachter c1b6b204d6 awful.util.file_readable: Use Gio (#1187)
Instead of doing Linux-specific magic with error codes and trying to
read the first byte of a file, just use Gio to check if a file exists
and is readable.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-25 00:23:18 +02:00
Uli Schlachter 70d4961a3e awful.spawn: Separate rules from callbacks (#1186)
When adding callbacks as a `callback` entry in a property, the callback
is run by `awful.rules`, because it does `c.callback =
result_of_function`. This is obviously not intended. Also, this causes
the callbacks to run twice, because the code already handled this
`callback` property specially.

Fix this by just not merging callbacks with the normal rules at all.

Fixes: https://github.com/awesomeWM/awesome/issues/1159
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-25 00:22:36 +02:00
Daniel Hahler 80832601fc Merge pull request #1161 from psychon/ldoc-errors
Ignore warnings from ldoc by default
2016-10-22 17:46:38 +02:00
Uli Schlachter 56d4cdfa32 CMake: Automatically collect generated doc files
Instead of hardcoding the list of generated doc files as dependencies to
ldoc, we jump through some hoops to compute this dynamically.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-22 11:22:16 +02:00
Uli Schlachter 4f1897b256 Ignore warnings from ldoc by default
A while ago, we made errors from ldoc fatal by default. Then a new ldoc
release appeared and caused problems for all of our users, because
awesome failed to work.

This patch reverts the previous fix so that we ignore ldoc warnings by
default again. However, to catch ldoc warnings on Travis, another
ldoc-building-target is added that fails on warnings. This new target is
included in our "check" target.

This fixes the intend of issue #1098 ("Users with ldoc version X cannot
build awesome"), but it does not actually employ the solution proposed
there ("Blacklist those ldoc versions"). Still, since this fixes the
intend of the issue, I count it as fixed.

Fixes: https://github.com/awesomeWM/awesome/issues/1098
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-22 11:03:56 +02:00
Uli Schlachter 3bd045b57c Check for pending events after the main loop (#1163)
At the beginning of every main loop iteration, we check for new events
from the X11 server. However, it's theoretically possible that during a
main loop iteration new events arrive and are read by libxcb into its
internal buffer. This would mean that the fd connected to the X11 server
is not readable and thus we do not wake up to handle these events.

Handle this by checking for pending events before calling poll(). If a
new events appears, we set the timeout for poll() to zero and will then
handle the new event in the following iteration of the main loop.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-22 10:46:49 +02:00
Uli Schlachter 0b17e5dac3 Fix unbalanced Lua stack operation (#1162)
Add a single "do" to the beginning of the config. This causes a parsing
error ("'end' expected") and then another warning saying "something was
left on the Lua stack.

Fix this by popping the error message where we need to do so.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-22 10:44:54 +02:00
Uli Schlachter 7292be1add Merge branch 'fix-missing-args' of https://github.com/hexchain/awesome 2016-10-22 10:31:45 +02:00
Uli Schlachter ed3aac711d Fix traceback in gears.protected_call (#1178)
The traceback should not include the error handler because this is confusing.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-22 00:54:08 +02:00
Uli Schlachter 289dfd1615 gears.surface.widget_to_*: Ignore repaints (#1155)
For some reason, the code here tried to handle widget::redraw_needed
signals even though it should apparently/obviously only produce a
current snapshot of the widget's look.

Fix this by just removing the redraw code.

While here, also factor out the widget context table into a local
variable and re-use it for the initial layout and for the later draw.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-19 12:32:30 +02:00
Uli Schlachter bc75ef5689 menubar.utils: Use a protected call (#1174)
When awesome calls any Lua code, it does so with a protected call. This
means that any kind of Lua error should (there are exceptions) just
result in an error message being printed and everything continuing as
usual. When LGI calls Lua code, it uses a normal call. This means that
in an asynchronous context, that is, when there is no more call
generated by awesome's C code on the call stack, we must be careful,
since any error results in Awesome's unprotected error handler to be
called which restarts the WM.

menubar.utils.parse_dir() asynchronously parses a directory containing
.desktop files. This means that it is no longer in a protected call
context. Let's assume that the code itself is fine. However, the
callback that the caller provided for handling the results can be quite
arbitrary. Make sure that it is run in a protected context.

Helps-with: https://github.com/awesomeWM/awesome/issues/1173
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-10-19 12:29:54 +02:00
Haochen Tong a6af703c5d menubar: Fix missing exe_callback in args table (#1173)
Signed-off-by: Haochen Tong <i@hexchain.org>
2016-10-18 12:40:47 +08:00