GithubHelp home page GithubHelp logo

awesome-revelation's Introduction

revelation.lua

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

Use

Installation

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

  1. Clone repository:

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

  3. 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.

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

It should bring all clients to the current tag and set the layout to fair. You can focus clients with cursor or hjkl keys then press Enter or press the mouse right button to select or Escape to abort.

This is a modification of the original awesome library that implemented expose like behavior.

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)

Credits

Maintenance

* Perry Hargrave <[email protected]>

Contributions, many thanks!

* Nikola Petrov <[email protected]>

Original authors

* Espen Wiborg <[email protected]>
* Julien Danjou <[email protected]>

License

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

awesome-revelation's People

Contributors

burgstaller avatar fptje avatar jinleileiking avatar jmitchener avatar nikolavp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

awesome-revelation's Issues

Support for awesome 3.6 (master branch)

Hey,

is there any chance you could look into making revelation work with awesome 3.6?
The error I'm currently getting is
init.lua:230: attempt to index a nil value (field '?')
Other than that, nothing happens when calling revelation.

Cheers

Floating window saving position

Floating windows don't get their positions and sizes saved/restored when using revelation.

Reproduction steps:

  1. make sure you have one or more tags with the floating layout
  2. open some windows in those tags
  3. move those windows a bit and resize them
  4. open revelation
  5. close revelation again one way or the other
  6. note how the floating windows have positions and sizes as if they were still in revelation mode.

I'm working on a fix and I'll perform a pull request once I'm done.

EDIT:
Pull request sent.

License

You can define the license of this code? There is only copyright reference.

Revelation tag doesn't close in Awesome 3.5.

Hey there, long time no see.

I just updated to AwesomeWm version 3.5. The good news is this:
Revelation mostly works!

The bad news is:
When revelation is closed, the revelation tag stays. Open revelation again, and it'll create a new tag etc. etc.

Here's a quick solution:
in the restore() function, add this line:
t.activated = false

under
t.screen = nil

It's not the best way to fix it, but I lack time at the moment.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.