8dd232f1fe | ||
---|---|---|
LICENSE | ||
README.md | ||
init.lua | ||
screenshot.png |
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
Use
Installation
(From user's awesome configuration directory, usually ~/.config/awesome)
-
Clone repository:
git clone https://github.com/guotsuan/awesome-revelation.git
-
put near the top of your rc.lua
local revelation=require("revelation")
-
put the
revelation.init()
after thebeautiful.init()
-
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.
-
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