Show all clients all screens in Awesome window manager
Go to file
Quan Guo 8dd232f1fe update the the delivery of the parameters 2013-12-30 22:50:54 +01:00
LICENSE Add LICENSE and update doc to reflect it. 2012-06-05 08:43:41 -07:00
README.md update README.md 2013-09-03 01:55:11 +01:00
init.lua update the the delivery of the parameters 2013-12-30 22:50:54 +01:00
screenshot.png update the document and screenshot 2013-09-03 01:47:32 +01:00

README.md

revelation.lua

Provides Mac OSX like 'Expose' view of all clients.

It is modified from the original revelation.lua.

Changes from the original revelation

  • Support awesome 3.5 or later

  • Add the support of multiple screens. Now multiple 'Expose' views will be shown on the multiple screens at the same time.

  • The way of selecting and focusing the client was changed. The old way that is navigating clients by pressing the keys "j, h, k, l" and then focusing the client by pressing key "Enter" was deprecated. Now each client in the 'Expose' views come with a hint box with a letter, you can select and focus the client by pressing the corresponding letter. This method including codes was copied from the module hint.

  • Add zoom mode. Add the function of zooming the client by pressing the right button of the mouse.

  • The unwanted clients can be excluded by rules.

Screenshot

screenshot

Use

Installation

(From user's awesome configuration directory, usually ~/.config/awesome)

  1. Clone repository:

    git clone https://github.com/guotsuan/awesome-revelation.git
    
  2. put near the top of your rc.lua local revelation=require("revelation")

  3. put the revelation.init() after the beautiful.init()

  4. Make a global keybinding (ModKey + e) for revelation in your rc.lua:

    globalkeys = awful.util.table.join(
    awful.key({ modkey,           }, "Left",   awful.tag.viewprev       ), 
    awful.key({ modkey,           }, "Right",  awful.tag.viewnext       ),
    awful.key({ modkey,           }, "Escape", awful.tag.history.restore),
    awful.key({ modkey}, "e", revelation),  -- Insert this line
    
    awful.key({ modkey,           }, "j",
    function ()
        awful.client.focus.byidx( 1)
        if client.focus then client.focus:raise() end
    end),
    

    NOTE: Always double check this key binding syntax against the version of Awesome that you are using.

  5. Reload rc.lua and try the keybinding Modkey + e

It should bring all clients to the current tags on all screens and set the layout to fair. You can focus clients with cursor then press the left button to select, or you can direct focus on the client by pressing the corresponding key shown in the hint box. Press the mouse right button to zoom the client or Escape to abort.

Configuration

Revelation's configuration is done through direct access to the module's config table.

There are two basic settings, shown with default values:

-- The name of the tag created for the 'exposed' view
revelation_config.tag_name = 'Revelation'

-- A table of matcher functions (used in client filtering)
revelation_match.exact = awful.rules.match
revelation_match.any   = awful.rules.match_any

The rule matching functions must conform to awful.rules.match prototypes.

For client matching rules, we follow the same syntax as awful.rules with one perk; if rule.any == true, then we call the config.match.any function.

Examples

All clients:

 awful.key({modkey}, "e", revelation)

To match all urxvt terminals:

 awful.key({modkey}, "e", function()
            revelation({class="URxvt"})
         end)

To match clients with class 'foo' or 'bar':

 awful.key({modkey}, "e", function()
            revelation({
                        class={"foo", "bar"},
                        any=true
                        })
        end)

To exclude the clients, we set:

 awful.key({modkey}, "e", function()
         revelation({class="conky"}, is_excluded=true)
         end)

Credits

Maintenance

* Quan Guo <guotsuan@gmail.com>
* Perry Hargrave <resixian@gmail.com>

Contributions, many thanks!

* Nikola Petrov <nikolavp@gmail.com>

Original authors

* Espen Wiborg <espenhw@grumblesmurf.org>
* Julien Danjou <julien@danjou.info>

License

Revelation is released under the GNU General Public License, version 3.
(c) 2009-12 Perry Hargrave
(c) 2008 Espen Wiborg, Julien Danjou