Commit Graph

62 Commits

Author SHA1 Message Date
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
Emmanuel Lepage Vallee 45c7d23d88 Improve issue #20 2013-07-04 00:33:50 -04:00
Emmanuel Lepage Vallee ce21f1b09e Refactor code to make future startup notification 'launch with attributes' feature work 2013-06-23 21:51:06 -04:00
Emmanuel Lepage Vallee e5e1ec10b9 Support clients with multiple matches on multiple screens.
Honestly, I don't really like this commit, but I do agree that Tyrannical
cannot just ignore bugs to keep the code simple forever. I tried this code
for 1 week and it doesn't seem to cause regressions, so I commit it. Please
report bugs on github if you experience degraded functionalities.
2013-06-22 18:12:12 -04:00
Emmanuel Lepage Vallee 685e0e1cea Fix issue #20 2013-06-15 01:43:57 -04:00
Emmanuel Lepage Vallee 9a952f8bc1 Add default_layout and mwfact global settings (like shifty) and update the doc 2013-06-14 01:01:59 -04:00
Emmanuel Lepage Vallee 926d43842c Add 3 new focus stealing policies
Globals:

* tyrannical.settings.block_children_focus_stealing = true --Block popups ()
* tyrannical.settings.group_children = true --Force popups/dialogs to have the same tags as the parent client

Tags:

* no_focus_stealing --Prevent new clients from selecting the tags (good for chat windows), make the new client "urgent" instead

Also update the documentation to match those additions
2013-06-14 00:24:59 -04:00
Emmanuel Lepage Vallee 13c4a1f5fb Fix last commit 2013-06-02 23:39:12 -04:00
Emmanuel Lepage Vallee 34a9695361 Fix a regression when having more than 2 screens 2013-06-02 15:36:33 -04:00
Emmanuel LEpage Vallee 519c111edb Add FAQ section (issue #15) 2013-05-24 11:22:36 -04:00
Emmanuel LEpage Vallee f160e95917 Experimental changes, please report any regression, required to implement show_tag and future changes 2013-05-21 22:43:07 -04:00
Emmanuel Lepage Vallee e02c7bb424 Improve issue #10: Add 'tags_by_name' accessor method 2013-05-17 01:46:29 -04:00
Emmanuel Lepage Vallee 0aa70b4b80 Address issue #13: Add 'selected' option 2013-05-17 01:21:04 -04:00