Uli Schlachter
2485d334cf
awful.layout.arrange(): Handle screen removal
...
If a screen is removed while a re-layout is pending, previously this code would
cause errors and problems. Since the screen is gone, there is nothing to arrange
anyway and we can just not do anything.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 09:34:54 +02:00
Uli Schlachter
fc390ff405
Use weak keys for referring to screens
...
This commit changes some tables that are used for per-screen stuff to have weak
keys, so that the screens can be garbage-collected, if needed.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-26 09:34:54 +02:00
Daniel Hahler
02b6f9893d
awful.placement.no_overlap: use screen.workarea as fallback
...
When there is a maximized and floating client,
`awful.placement.no_overlap` would end up with an empty list of areas to
place the client into.
This patch fixes it to use the default `screen.workarea` in that case.
Closes https://github.com/awesomeWM/awesome/issues/813 .
2016-04-26 00:48:19 +02:00
actionless
cdb5a0f046
fix(awful: rules): floating property
2016-04-25 15:43:14 +02:00
Emmanuel Lepage Vallee
2ccc7c88d6
awful.mouse.snap: Fix invalid fallback
2016-04-23 22:12:28 -04:00
Daniel Hahler
135ff4b0c8
Use gears.protected_call with awful.rules callbacks ( #843 )
...
Fixes https://github.com/awesomeWM/awesome/issues/840#issuecomment-211823483 .
2016-04-20 22:34:16 +02:00
Emmanuel Lepage Vallée
cdc6909bc7
Merge pull request #824 from Elv13/rules_refactor
...
Rules refactor, part 1
This fix the following awful.rules bugs:
* **x**: Broken when "border_width" is set or left titlebars are used
* **y**: Borken when"border_width" is set or top titlebars are used
* **width**: See above + right litlebar
* **height**: Same as above
* **switchtotag**: Have a race with the "manage" -> "tag.withcurrent" code in `awful.tag`
* **tag**: Had dead code
* **screen**: Had a race condition with switchtotag
* **urgent**: Had a race with screen and another with switchtotag+focus
* **focusable**: Was broken yet again when request::activate was introduced (and also because of FS1098, that I also fixed)
* **no_overlap**: The "no_overlap" call in rc.lua "manage" section conflict with the geometry rules as the hints are not set (idk why).
* **size_hints_honor**: If set to false, it would be applied too late, causing height and width offsets due to placement or various geometry related properties
2016-04-20 00:39:45 -04:00
Emmanuel Lepage Vallee
a4f1b760bd
awful.rules: Apply size_hints_honor early
...
There is a property race with width, height and geometry
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
e54387904b
client: Add request::geometry
...
Remove request::fullscreen and request::maximized_* and use
a single request for them. The other client resizing features
will soon also start to use this.
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
f681ace587
ewmh: Take focusable into account in request::activate
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
c678a0d426
awful.rules: Apply floating early
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
06716df05a
awful.rules: Apply border_width early
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
89edc92110
awful.rules: Add the 'tags' property
...
Due to recent changes, it was no longer possible to disable the
default tag selection handler. This commit extend the already
existing request::tag mechanism to let handlers select the tags.
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
f72dcce4bd
titlebars: Use the request system rather than 'manage'.
...
As awesomerc.lua "manage" section is executed after the rules, using
a 'geometry' or 'placement' property in the rules was broken.
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
299e155acc
client: Extend request::tag instead of awful.tag.withcurrent
...
There was a regression when refactoring the API. It was no longer
possible to disable the automatic tag selection.
Due to recent changes, it was no longer possible to disable the
default tag selection handler. This commit extend the already
existing request::tag mechanism to let handlers select the tags.
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
7cd76e0529
awful.rules: Add 'placement' property
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
b0aedcda67
awful.rules: Add `new_tag` property
...
Create a new dynamic tag for the client.
2016-04-20 00:11:04 -04:00
Emmanuel Lepage Vallee
090f2b83ac
awful.rules: Avoid trying to set some properties
...
This avoid unwanted signals or properties being set twice.
2016-04-20 00:10:42 -04:00
Emmanuel Lepage Vallee
ddf14a3ffc
awful.rules: Refactor the code to avoid many race conditions.
...
Testing demonstrated that many rule properties were broken when used
together. This commit try to address this by forcing an execution order
that doesn't trigger the problems.
It is still possible to write broken rules, but it should not happen by
accident anymore. Users should not try to assign the client a tag on
screen 2 and also use screen=screen[1].
2016-04-20 00:08:28 -04:00
Emmanuel Lepage Vallee
a2a5448442
awful.rules: Remove dead code
...
Also change the focus callback signature to match the others
2016-04-20 00:02:38 -04:00
Emmanuel Lepage Vallee
2a8cc08ca1
awful.rules: Make adding new properties easier.
...
This commit also add a 3 step process to apply rules.
Testing showed that many rules are currently broken because
of execution races.
Create a new dynamic tag for the client.
2016-04-20 00:02:01 -04:00
Daniel Hahler
761e244b32
Handle `awful.util.deprecate('Use …')` style ( #837 )
2016-04-19 22:37:14 +02:00
Emmanuel Lepage Vallee
fe8beaeaac
placement: Fix incorect use of the border_width
...
The code and tests assumed the border was equaly applied around
the geometry while the {x,y} pair of the geometry include the
border.
2016-04-18 23:56:23 -04:00
Emmanuel Lepage Vallee
bfc8f35fb9
placement: Support composition.
...
Multiple placement function can now be daisy chained like
in gears.matrix. This is useful for building rules.
2016-04-18 23:55:52 -04:00
Emmanuel Lepage Vallee
2b5d918a8d
awful.placement: Add a memento system.
...
It is used by the ewmh methods.
2016-04-18 23:55:52 -04:00
Emmanuel Lepage Vallee
fcd320c7f6
Make awful.rules mandatory
...
There was many unfixable race conditions that could only be
solved by better integrating the request:: system and
awful.rules. This has the side effect to make rules mandatory.
2016-04-18 23:55:52 -04:00
Daniel Hahler
473df11e1f
Streamline/cleanup util.deprecate calls
2016-04-18 23:20:16 +02:00
Emmanuel Lepage Vallée
bc2ddfe82d
Merge pull request #820 from Elv13/layout_tests
...
tests: Test all client layouts
2016-04-18 04:27:11 -04:00
Emmanuel Lepage Vallee
7654abcedc
layout.tile: Avoid negative geometries
2016-04-18 04:20:23 -04:00
Emmanuel Lepage Vallee
b938a99e1e
layout: Avoid creating negative geometries when adding gaps
2016-04-18 04:20:22 -04:00
Daniel Hahler
58068ff538
Merge pull request #831 from psychon/naughty-no-screen
...
naughty: Print notification content in "no screen" warning
2016-04-18 00:36:17 +02:00
Abdo Roig-Maranges
3c3e2daeb2
fix deprecation warning
2016-04-17 16:35:08 +02:00
Uli Schlachter
76266abcfa
naughty: Print notification content in "no screen" warning
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-17 15:21:02 +02:00
Uli Schlachter
bf652914dd
Merge branch 'rules-screen' of https://github.com/psychon/awesome
2016-04-15 19:35:23 +02:00
Uli Schlachter
cd55c57937
Merge branch 'root-size' of https://github.com/psychon/awesome
2016-04-15 19:35:12 +02:00
Uli Schlachter
79e16cf950
awful.rules.execute: Make for loop easier to read
...
Signed-off-by: Uli Schlachter <uli.schlachter@informatik.uni-oldenburg.de>
2016-04-12 09:33:39 +02:00
Uli Schlachter
fb8c70b07d
awful.rules: Fix switchtotag with tag names
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-12 09:32:32 +02:00
Uli Schlachter
65fa565cef
Update awful.rules tag-related examples
...
Fixes: https://github.com/awesomeWM/awesome/issues/799
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-12 09:31:46 +02:00
Uli Schlachter
9cc28a8da5
awful.rules: Allow specifying tags by name
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-12 09:31:46 +02:00
Uli Schlachter
7d5e80a8ee
Add awful.tag.find_by_name
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-12 09:30:52 +02:00
Uli Schlachter
53bebfde02
awful.rules: Add support for screen names
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-12 09:27:37 +02:00
Uli Schlachter
2fe9a6dfdf
awful.rules: Fix a typo in the docs
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-12 09:26:21 +02:00
Emmanuel Lepage Vallee
f9add1c49a
awful.tag: Rename nmaster to master_count
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
e8908e2c62
awful.tag: Rename mwfact to master_width_factor
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
ff9e74ac0b
awful.tag: Remove the old dynamic property system
...
It is no longer relevant.
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
dd52f1ce86
awful.tag: Move functions to awful.client and screen
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
493684a5c0
awful.tag: Merge API documentation with tag
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
eb133175ba
awful.screen: Add some client getter properties
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
00d782f3d3
awful.screen: Deprecate functions, add methods
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
a4bc49b540
awful.screen: Merge screen and awful.screen API doc
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
16fe91d5f3
awful.client: Add a new section for layout related functions
...
The new stateful layout system try to avoid coupling and therefor
doesn't use these methods. It is not planned to deprecate the
stateless layout API, so these functions are just kept as-is with
the old naming convention.
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
d44d83fdb6
awful.client: Refactor all marked function into a property
...
This is unused internally since Awesome 3.2. There is probably 0 users
of this left, but I don't want to break the API.
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
43f1561f26
awful.client: Convert all remaining functions to methods.
2016-04-11 23:54:28 -04:00
Emmanuel Lepage Vallee
e15fea6a46
awful.client: Use the explicit @function tag for each helpers
...
This allow them to be placed in the right category.
2016-04-11 23:54:27 -04:00
Emmanuel Lepage Vallee
0c1e4e3a2b
awful.client: Move `urgent` in their own submodule
2016-04-11 23:54:27 -04:00
Emmanuel Lepage Vallee
587fc1fbb4
awful.client.shape: Turn into a client submodule.
2016-04-11 23:54:27 -04:00
Emmanuel Lepage Vallee
608f3eb7cf
awful.client: Add an is_fixed property
2016-04-11 23:54:27 -04:00
Emmanuel Lepage Vallee
dfdb6aedf7
awful.client: Document the new signals.
2016-04-11 23:54:27 -04:00
Emmanuel Lepage Vallee
9027cabd8c
awful.client: Move `dockable` to the property system
...
Note that the setter is no longer necessary and is implicitly
generated.
2016-04-11 23:54:27 -04:00
Emmanuel Lepage Vallee
fad55a868b
awful.client: Move the focus related methods into a submodule
2016-04-11 23:54:22 -04:00
Emmanuel Lepage Vallee
29feceb80d
documentation: Merge awful.client and client pages
...
ldoc doesn't allow to specify fields from class "A" into class "B",
so the only solution is to merge the 2.
Also, one of the most common complain on IRC since Awesome 3.0 is
that the client API doc is confusing since it is in 2 different files.
Also restore the `awful.client` doc link, point to `client`
This will avoid broken links.
2016-04-11 23:46:10 -04:00
Emmanuel Lepage Vallee
82342f055c
awful.client: Deprecate .floating.get/set
...
Begin to formalize the getter/setter syntax into a coherent one
2016-04-11 23:46:10 -04:00
Emmanuel Lepage Vallee
828543c838
gears.object.properties: Support 'obj.is_something'
...
Used when there a property is set by mutators instead of accessors.
2016-04-11 23:46:10 -04:00
Emmanuel Lepage Vallee
11f0620d7c
awful.key: Add a function to execute keybindings
2016-04-11 23:46:10 -04:00
Emmanuel Lepage Vallee
8d95610363
placement: Fix a minor issue with closest_corner
...
It was using the wrong matrix in 2x2 mode.
2016-04-10 03:27:20 -04:00
Uli Schlachter
7863a5e65b
gears.wallpaper: Use root.size()
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-04-09 15:19:46 +02:00
Emmanuel Lepage Vallee
8a0738a4bc
gears.screen: Merge into awful.screen
...
gears modules usually don't depend on Awesome C-API. This code has
been placed there for unclear reasons.
Also, there is ongoing work to unify each "concepts" API into one
single page. Having `gears.screen` go against this effort.
2016-04-06 23:32:44 -04:00
Daniel Hahler
c85bbeafdb
naughty.notify: handle non-existing screen, print a warning
...
Ref: https://github.com/awesomeWM/awesome/issues/796
2016-04-05 00:31:45 +02:00
Daniel Hahler
742717ec22
doc: improve doc for awful.screen.focused
2016-04-04 23:49:43 +02:00
Daniel Hahler
c86c873779
minor: clarify mod-ctrl-shift-X comment; fix typo
2016-04-04 20:30:48 +02:00
Daniel Hahler
df21a85a9a
doc: fixes for spawn.with_line_callback
2016-04-04 20:30:48 +02:00
Daniel Hahler
5db280ab73
minor: doc / formatting
2016-04-04 20:30:44 +02:00
Emmanuel Lepage Vallee
e24cb901cb
Typo: Ajust -> Adjust
2016-04-04 00:56:11 -04:00
Daniel Hahler
3e5b1b3ba9
Merge pull request #782 from psychon/wallpaper-change
...
Changes to wallpaper change
2016-04-03 18:35:27 +02:00
Daniel Hahler
3ad0a9d8d2
Merge pull request #780 from psychon/screen-add-signal
...
Add screen add signal
2016-04-03 18:35:08 +02:00
Daniel Hahler
0f615670e3
Merge pull request #787 from awesomeWM/lgi-stream-end
...
awful.spawn: Reliably detect end-of-file
2016-04-03 18:34:04 +02:00
Emmanuel Lepage Vallee
f7b5240571
awful.placement: Improve documentation
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallee
12c80e3977
awful.placement: Add `maximize` aliases
...
Use the same conventions as `align` and `stretch` aliases
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallee
7ab83afbbc
tests: Test `awful.placement.maximize`
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallee
59b24cbd35
awful.placement: Add a `maximize` method
...
It should eventually be re-used by ewmh.lua
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallee
19913ba62d
awful.placement: Add various `stretch` aliases
...
Use the same convention as `align` aliases
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallee
b4d2a5c541
awful.placement: Add a `stretch` method
...
This will eventually be re-used by `awful.wibox`
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallee
d85b7eb3e5
awful.placement: Add aliases for the `align` method
...
This re-use the `align` code for the existing `centered`,
`center_horizontal` and `center_vertical` methods. It also
add all the other edges and corners alias.
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallee
456f0bb70c
awful.placement: Add `align` method
...
This allow to place a client, wibox or cursor at the
edges, corners or center of the parent geometry.
This also add code from `awful.wibox` to ajust the workarea.
Future commit will use `awful.placement` to place `awful.wibox`.
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallee
5a5f0167cf
awful.placement: Add `closest_corner`
...
This commit also add many local helper functions. They will be
re-used by the next few commits.
2016-03-31 05:04:24 -04:00
Emmanuel Lepage Vallée
b1a93e4540
Merge pull request #773 from Elv13/add_testing_framework
...
tests: Add a new GUI testing framework
2016-03-31 04:50:32 -04:00
Emmanuel Lepage Vallee
c64c223ede
tests: Improve wibox.widget.background documentation
2016-03-31 04:45:46 -04:00
Emmanuel Lepage Vallee
e7652a053d
tests: Add a new testing framework
2016-03-31 04:45:45 -04:00
Emmanuel Lepage Vallee
9da40d010c
gears.surface: Add methods to convert widgets to surfaces
...
It can be saved directly to a PNG or SVG file or used as a cairo
surface or pattern.
2016-03-31 04:45:45 -04:00
Emmanuel Lepage Vallée
fdc25bbb99
Merge pull request #789 from aroig/gh/layout-names
...
fixes to keyboard layout names
2016-03-31 00:30:35 -04:00
Emmanuel Lepage Vallée
0953db56d8
Merge pull request #757 from Elv13/properties
...
C-API objects properties
2016-03-30 23:32:12 -04:00
Emmanuel Lepage Vallee
3322a17182
screen: Support property fallback
2016-03-30 23:25:44 -04:00
Emmanuel Lepage Vallee
89a1dab845
client: Support property fallback
2016-03-30 23:25:44 -04:00
Emmanuel Lepage Vallee
e0897cf170
tag: Support property fallback
2016-03-30 23:25:44 -04:00
Abdo Roig-Maranges
cb46f09361
make keyboard layout naming function easily overridable
2016-03-30 15:41:30 +02:00
Abdo Roig-Maranges
1879966556
handle layout names like us(altgr-intl)
2016-03-30 14:45:48 +02:00
Emmanuel Lepage Vallee
a77e650c5f
gears.object: Add a new "property fallback" object type
2016-03-30 03:27:19 -04:00
Abdo Roig-Maranges
af7495de5a
fix number check for the screen argument
...
The check was not done for the elseif case, and caused a comparison
runtime error.
2016-03-29 17:03:07 +02:00
Uli Schlachter
c04718a150
Fix awful.spawn to work with more LGI versions
...
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-03-28 17:53:52 +02:00
Emmanuel Lepage Vallee
995361449a
awful.screen: Fix addition between object and number
...
Fix #784
2016-03-28 04:39:19 -04:00