Commit Graph

74 Commits

Author SHA1 Message Date
Emmanuel Lepage Vallee 0ba21a99e5 spawn: Use awful.spawn.single_instance.
While it has limitations on process that "fork" themselves
and don't support startup notifications. It is more reliable
for everything else.
2019-02-03 12:03:03 -05:00
Emmanuel Lepage Vallee 38f1f60879 Drop code merged into Awesome v4.3
this commit drop the support for Awesome 4.0, 4.1 and 4.2. For those
versions use the 2.0.0 version
2019-02-03 11:57:03 -05:00
Emmanuel Lepage Vallee 5a03f76cc3 Restore higher priority to awful.rules
I think fixes #70, but the reporter claim it doesn't.

At least it mostly fixes it.
2019-02-03 11:37:00 -05:00
Jonas Große Sundrup 36d3a12ec4
Implement no_tag_deselect-property for tags
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.
2019-02-01 17:34:51 +01:00
Tomoya Tabuchi a08e4ffdef
Fix #71: Change property mwfact to master_width_factor 2017-04-28 09:54:31 +09:00
Emmanuel Lepage Vallee 2ef983e8ad master/slave: Also set the client property
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.
2017-01-04 01:52:08 -05:00
Emmanuel Lepage Vallee 855bc82fb3 Use Awesome 4.0 property system 2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee 828bf6ccbb Move 'master' and 'slave' to awful.rules 2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee 56363e921c Fix the intrusive client screen detection
The code was just plain wrong.
2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee f8aa39a8ab Fix client drag and drop (move) between screens
This is also the job of the request::tag handler to make sure it
works. Tyrannical didn't.
2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee da9c371b61 Better detect when a screen has selected tags 2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee a0fa9a4e35 Comply with the new official client creation sequence
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.
2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee b4df05fa1d Begin the Tyrannical 2.0 project
Goals:

 * Support changing screen configuration
 * Use the Awesome 3.6 request:: API
 * Make the code sane and documented again
2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee be3305b857 Fix a screen boundary detection issue 2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee 5e377938e8 Fix more multi-screen issues 2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee 9d8ece095b Fix an assert() when using an invalid screen number 2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee b307970373 Fix multiple deprecation warnings 2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee 8a5b519da4 Adapt to new API changes 2016-12-25 21:47:54 -05:00
Emmanuel Lepage Vallee a82098b75a Begin to adapt Tyrannical for Awesome 3.6
I push this now because it no longer work thanks to Awesome API
changes.
2016-12-25 21:47:54 -05:00
getzze 4652ea457d Change forgotten c.class to get_class(c) 2015-04-08 19:10:13 +01:00
Emmanuel Lepage Vallee ab0d7eda43 Add settings.tag, settings.client to set default values for properties 2014-11-12 01:15:27 -05:00
Emmanuel Lepage Vallee 7f3328df48 Add bash and zsh launchers
It is now possible to launch application with Tyrannical properties:

> tyr fullscreen=true,new_tag=true inkscape
2014-11-07 20:19:24 -05:00
Emmanuel Lepage Vallee 603ff2ae14 Add 'callback' client property 2014-09-29 00:07:16 -04:00
Emmanuel Lepage Vallee c501fffbd5 Remove the 'clone_on' property
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.
2014-09-28 23:28:49 -04:00
Emmanuel Lepage Vallee ab51c72484 Add `tag` client property and avoid keeping volatile tags in memory 2014-09-28 23:27:18 -04:00
Freehaha ba9ad0ce43 reads awful.client property 'overwrite_class' for custom client class
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.
2014-06-18 22:36:21 +10:00
Emmanuel Lepage Vallee 09dee61938 Add the ability to use max_clients as a function
This also allow to change the tag layout before adding a new client [hack]
2014-05-23 14:19:29 -04:00
Emmanuel Lepage Vallee b955204bc5 Refactor some of pull request #27 improvments
* 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
2014-05-23 13:13:02 -04:00
Richard Kolkovich a4e263350b re-add instance matching with a proper 'instance' property 2014-05-23 13:12:28 -04:00
Emmanuel Lepage Vallee d97eff6ffa Add support for spawing with Tyrannical arguments (Finally!!!)
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...
2014-05-05 22:36:21 -04:00
Emmanuel Lepage Vallee c22a1e528c Move legacy code out of init.lua 2014-05-03 00:24:24 -04:00
Emmanuel Lepage Vallee 5a6c9abba7 Unify all focus code
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.
2014-05-02 22:40:11 -04:00
Emmanuel Lepage Vallee 6dc147d3d6 Dynamically make a tag 'fallback' 2014-05-02 19:13:27 -04:00
Emmanuel Lepage Vallee d0a614d551 Add support for startup notification callbacks
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
2014-05-01 16:44:20 -04:00
Emmanuel Lepage Vallee 04c291cdc9 Add slave/master client properties 2014-05-01 16:34:20 -04:00
Emmanuel Lepage Vallee 8ea89a0d97 Merge the fallback branch 2014-04-22 22:19:25 -04:00
Emmanuel Lepage Vallee 39df641b03 Add max_clients support 2014-04-18 23:04:13 -04:00
Emmanuel Lepage Vallee a3d3bc9ad6 Add support for locked tags 2014-04-18 22:47:30 -04:00
Emmanuel Lepage Vallee 8e1144f138 Fix issues with fallback tags 2014-04-15 20:46:27 -04:00
Emmanuel Lepage Vallee e6b6004cce Add support for fallback tags 2014-04-13 02:00:59 -04:00
gotno b44b436fb0 remove unused code 2014-04-12 17:45:48 -07:00
gotno 5f5c3ecf19 Restore shifty-like functionality to exec_once
exec_once always runs if the command isn't already running, regardless
of whether it's been run before in this session.
2014-04-12 17:31:58 -07:00
Emmanuel Lepage Vallee 16e36332e5 Add Awesome 3.5.3 support 2014-03-30 01:21:24 -04:00
Emmanuel Lepage Vallee ebf360dae8 Add settings.force_odd_as_intrusive option 2014-03-06 22:51:21 -05:00
Daniel Hahler e968109ddf Do not tag clients with nil tag
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.
2014-03-06 03:26:02 +01:00
Emmanuel Lepage Vallee 25ca673c41 Always add 'N/A' when the class is invalid 2013-11-26 07:35:57 -05:00
Emmanuel Lepage Vallee a7d62684ac Fix tag 'setscreen' 2013-10-11 00:08:58 -04:00
Freehaha a2931e0bb8 bugfix: new client not focused when not assigned to tags 2013-08-26 22:05:54 +10:00
Freehaha c3f96594fd auto focus on new clients unless it has "no_autofocus" property 2013-08-24 00:42:14 +10:00
Emmanuel Lepage Vallee 417c962a78 Be sure to set the right default layout 2013-08-08 18:28:06 -04:00