Commit Graph

7029 Commits

Author SHA1 Message Date
Uli Schlachter 7739a6a7ed Add a property::visible signal to tooltips
As requested here:
b4224a651f (commitcomment-16402861)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-03-05 12:32:24 +01:00
Uli Schlachter e347f7191c awful.tooltip: Use metatable magic to create wiboxes lazily
This might make the code a bit easier to follow. Unless you want to know where
the wibox is created...

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-03-05 12:31:03 +01:00
Daniel Hahler 68bde9d584 Merge pull request #717 from blueyed/callback-for-client.jumpto
Add callback support for client.jumpto
2016-03-01 23:01:32 +01:00
Emmanuel Lepage Vallée 97b26ab3ef Merge pull request #727 from psychon/fix-wibox.layout.mirror
Fix the mirror layout
2016-03-01 00:30:10 -05:00
Uli Schlachter b40b69d379 Fix the mirror layout
Issues involve:
- :layout() had the wrong signature and expected a cr argument that was left
  from when this was still the :draw() function.
- horizontal and vertical reflection were mixed up (I guess it has always been
  this way?)
- The return value should be a table of widget placements. Instead it was just a
  single widget placement.

This is broken since commit 85ab3f045b.

Fixes: https://github.com/awesomeWM/awesome/issues/718
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-29 22:50:47 +01:00
Uli Schlachter a189f2b13f Merge branch 'Return-nil-in-xrdb_get_value' of https://github.com/psychon/awesome 2016-02-29 20:59:21 +01:00
Uli Schlachter b8b270a91e Make xrdb_get_value() behave as documented
The documentation states that this function returns nil if the property does not
exist, but it actually returned nothing. And yes, in Lua this is a difference...
2016-02-29 11:13:58 +01:00
Emmanuel Lepage Vallée 512e966be7 Merge pull request #721 from Elv13/fix_awful_screen
awful.screen: Fix regression
2016-02-29 04:29:22 -05:00
Emmanuel Lepage Vallee 924e889271 awful.screen: Fix regression 2016-02-29 04:21:10 -05:00
Emmanuel Lepage Vallée b010849c3c Merge pull request #722 from Elv13/expose_graph
awful.widget.graph: Expose private data
2016-02-29 04:16:17 -05:00
Emmanuel Lepage Vallée 78f93940c7 Merge pull request #720 from Elv13/allow_no_tag
awful.layout: Allow parameters to be called when no tags is selected
2016-02-29 04:10:14 -05:00
Emmanuel Lepage Vallee 19f874a73f awful.widget.graph: Expose private data 2016-02-29 03:12:08 -05:00
Emmanuel Lepage Vallee 07631ccc9a awful.layout: Allow parameters to be called when no tags is selected
There seem to be a little race condition (either in my layout code or
elsewhere) when playing with multiple screens. As most properties do
not depend on the tag, there is no point in returning early anyway.
2016-02-29 02:49:20 -05:00
Daniel Hahler 0278d5f123 Add callback support for client.jumpto
Instead of true/false `merge` can be a callback now, which allows for
more dynamic handling of the client not being visible, e.g. moving it to
the current tag, instead of merging.
2016-02-28 22:45:15 +01:00
Daniel Hahler 9503110e44 Merge pull request #714 from psychon/tooltip-windows
Less tooltip windows
2016-02-28 22:21:18 +01:00
Daniel Hahler 4ba8386f7b Merge pull request #715 from psychon/lazy_border_update
Lazily apply changes to border_width and border_color
2016-02-28 22:16:32 +01:00
Daniel Hahler 87a3233be8 Merge pull request #713 from psychon/no_focus_window
Make client key bindings for e.g. xeyes work again
2016-02-28 22:16:22 +01:00
Daniel Hahler f874b0ad2e Merge pull request #712 from psychon/protected_calls
Protected calls (gears.protected_call)
2016-02-28 22:16:13 +01:00
Daniel Hahler d1f43d895f Merge pull request #710 from psychon/primary-screen
Primary screen
2016-02-28 22:16:03 +01:00
Daniel Hahler 2bcff5af27 Merge pull request #708 from psychon/less_screen_indicies2
Less screen indicies
2016-02-28 22:15:37 +01:00
Daniel Hahler 9205feea5e menubar: rename utils.parse to utils.parse_desktop_file 2016-02-28 22:14:35 +01:00
Daniel Hahler 25eff81878 menubar: look for .desktop files recursively
It was missing apps/entries from /usr/share/applications/kde4.

This patch also makes sure that entries are unique (by Exec/Name).

Closes https://github.com/awesomeWM/awesome/pull/711.
2016-02-28 22:14:08 +01:00
Daniel Hahler b84f214144 Merge pull request #706 from psychon/maximized-workarea-changed
Maximized workarea changed
2016-02-28 22:09:51 +01:00
Daniel Hahler 43f485b6cf Merge pull request #707 from psychon/bullet_proof_transient_for
Bullet proof transient_for
2016-02-28 22:09:04 +01:00
Uli Schlachter ee7a41370f Lazily apply changes to border_width and border_color
Fixes: https://github.com/awesomeWM/awesome/issues/592
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 16:24:30 +01:00
Uli Schlachter e49b1de0b2 awful.tooltip: Some minor optimizations
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 15:49:50 +01:00
Uli Schlachter b4224a651f awful.tooltip: Create wibox lazily
This makes awful.tooltip create its tooltip lazily when it is first needed
instead of immediately when the tooltip is created.

Fixes: https://github.com/awesomeWM/awesome/issues/591
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 15:49:50 +01:00
Uli Schlachter 1578957355 awful.tooltip: Inline place() into set_geometry()
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 14:43:40 +01:00
Uli Schlachter aae960e99e Make client key bindings for e.g. xeyes work again
Instead of focusing the root window, we now create a "focus window" inside of
our frame window. This window is placed so that it is not visible, but we can
grab key bindings on it to simulate the window having the input focus.

Fixes: https://github.com/awesomeWM/awesome/issues/699
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 13:29:25 +01:00
Uli Schlachter f9d15691b8 Merge branch 'new-watch-widget' of https://github.com/actionless/awesome 2016-02-28 13:04:08 +01:00
Uli Schlachter 8560c6d2af Use gears.protected_call where applicable
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 12:28:55 +01:00
actionless 504c105cba feat(awful: widgets): add 'watch' widget 2016-02-28 12:11:57 +01:00
Uli Schlachter 7bf2f17a8a Make gears.widget.{fit,layout}_widget more robust
This commit makes these methods invoke the method on a widget in a protected
context. Thanks to this, e.g. the wibox and other widgets are protected from
errors in a child widget.

Additionally, fit_widget() now assumes 0 if a widget's :fit() method didn't
provide a number.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 12:11:36 +01:00
Uli Schlachter 01f11003d6 Add gears.protected_call
This library is a wrapper around pcall() / xpcall() that prints an error message
via gears.debug.print_error() in case of errors.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 12:07:02 +01:00
Uli Schlachter 2ad49dfd0c Fix some broken documentation in gears.debug
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-28 12:05:55 +01:00
Uli Schlachter b02b2f7956 Fix screen index by output name
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-27 16:45:43 +01:00
Uli Schlachter 2027dd8b02 Correctly set globalconf.primary_screen under RandR
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-27 16:45:35 +01:00
Uli Schlachter 110893d9cb Add screen.primary
Right now this just always returns the first screens, but this can easily be
implemented properly later.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-27 15:44:25 +01:00
Uli Schlachter a2301ae8f3 Add and use luaA_pushscreen()
Even when a screen is just an integer, the code becomes a bit more
self-documenting. Even better, if we start to handle screen objects to Lua
instead of screen indicies, there will only be one place that needs to be
changed.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-27 10:57:07 +01:00
Uli Schlachter d56b5c031b Remove some now unnecessary uses of s.index
Because all our Lua code can now work with screen objects, most of the uses of
s.index that the previous patches added for reaching this goal can be removed
again.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-27 09:24:19 +01:00
Uli Schlachter 5fd47e508f Support screen objects in awful.client
This commit makes the code in awful.client work with screen objects where
possible (which is not possible in awful.client.movetoscreen() because it uses
screen_idx + 1).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 20:16:07 +01:00
Uli Schlachter fb5a98c765 Support screen objects in awful.tag
This commit makes the code in awful.tag work with screen objects.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 20:08:45 +01:00
Uli Schlachter c17e331b92 Support screen objects in awful.screen
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 19:56:07 +01:00
Uli Schlachter b3f43f9110 Support screen objects in more of awful
This commit makes the code in awful.widget work with screen objects.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 19:50:17 +01:00
Uli Schlachter 2792fe731e Support screen objects in some of awful
This commits makes a random selection of modules in awful support screen objects
and accept them as parameters everywhere where a screen index is accepted.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 19:50:17 +01:00
Uli Schlachter 65b403c34a wibox: Support screen objects
This commit documents that a textbox already accepts a screen object where a
screen index is expected. Also, this changes the widget API in that a widget's
context.screen is now a screen object instead of a screen index.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 18:42:57 +01:00
Uli Schlachter 8de29856b8 naughty: Support screen objects
This commit makes naughty accept a screen object everywhere where a screen index
is accepted.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 18:30:42 +01:00
Uli Schlachter d9f4ed9fb6 menubar: Support screen objects
This commit makes meanubar accept a screen object everywhere where a screen
index is accepted.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 18:25:55 +01:00
Uli Schlachter 20e13602de beautiful.xresources: Support screen objects
This commit makes beautiful accept a screen object everywhere where a screen
index is accepted.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-26 18:19:24 +01:00
Uli Schlachter d598a4115a Update transient_for when a new window appears
When we manage the transient before the main window, the client object's
.transient_for property would stay nil. This happens because the property points
to a window which we don't know (yet) and thus is ignored.

Fix this by remembering the value of WM_TRANSIENT_FOR and checking in
client_manage() if the new client is the "missing window we did not find
before".

Fixes: https://github.com/awesomeWM/awesome/issues/181
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-02-22 21:09:25 +01:00