With no_tag_deselect, a tag can be denoted that adding a client there
should select that tag, but should never deselect other tags that are
currently selected.
My dynamic layout system is smarter than the old stateless system.
It can use this information when adding the client instead of
relying on the delayed call and dark index swapping magic.
Tyrannical now use awful.rules for more callbacks. It can be
better integrated, but that's enough for this commit.
This commit also drop the legacy and request sub-module, as the
legacy was dead code anyway amd requests are now mandatory.
This feature never fully worked and cannot work. It is *impossible*
to implement it with the current Awesome core design.
While I know it is often requested, I cannot and will not support
it any longer. This belong to the Awesome API, not Tyrannical.
names.
so in awful.rules.rules one can set
{
rule = { class = "URxvt", name = "dev" },
callback = function(c)
awful.client.property.set(c, "overwrite_class", "urxvt:dev")
end
}
and define tyrannical rules with class = {"urxvt:dev"}
Another useful case is to match the google hangouts client that comes
with Chrome, which has the class 'Google-chrome' just like normal
browsing window so one really have to use other properties like 'role'
or 'name' to match these clients.
* Restore the old README column width to avoid issues with some markdown
implementations
* Rename class_client and instance_client to c_rules as the old name isn't
significative anymore.
* Merge copy/pasted code back into a single block
* Remove the unused `low`, `rules_c` and`rules_i` temporary variables
It is now possible to spawn with an array of properties, see the README.md
for more details. It require Awesome 3.5.3+, some patch will get into 3.5.6
to make this even better. I also added the 'new_tag' property to be used
with spawn.
* Also fix issue #37, sorry about that one...
It used to be all over the place and using tons of undocumented variables.
This commit is quite intrusive and change a lot of things (hopefully
for the better). Please report any regression.
It is now possible to set a function that will be called
when Tyrannical will manage a new client. This function
must return an array of client properties (ontop, floating,
...). The `tag` and `tags` properties will also work. The
key is a startup notification ID. awful.util.spawn will
return this as the second return value if the command was
a success.
Example:
local pid,snid = awful.util.spawn("firefox")
tyrannical.sn_callback[snid] = funtion return {ontop=true} end
With no selected tag (e.g. during startup, as long as no client with a
rule has been processed), cur_tag would be nil and then the match for
exclusive would be ~= true.