1234567<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"8"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">910<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">11<head>12<meta http-equiv="content-type" content="text/html;charset=UTF-8" />13<meta http-equiv="X-UA-Compatible" content="chrome=1">14<title>revelation.lua at master from bioe007's awesome-configs - GitHub</title>15<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />16<link rel="fluid-icon" href="http://github.com/fluidicon.png" title="GitHub" />1718<link href="http://assets1.github.com/stylesheets/bundle_common.css?cc8648fdaec480cef48491552381a5b2fac99867" media="screen" rel="stylesheet" type="text/css" />19<link href="http://assets1.github.com/stylesheets/bundle_github.css?cc8648fdaec480cef48491552381a5b2fac99867" media="screen" rel="stylesheet" type="text/css" />2021<script type="text/javascript" charset="utf-8">22var GitHub = {}23var github_user = 'marvel'2425</script>26<script src="http://assets3.github.com/javascripts/jquery/jquery-1.4.2.min.js?cc8648fdaec480cef48491552381a5b2fac99867" type="text/javascript"></script>27<script src="http://assets3.github.com/javascripts/bundle_common.js?cc8648fdaec480cef48491552381a5b2fac99867" type="text/javascript"></script>28<script src="http://assets0.github.com/javascripts/bundle_github.js?cc8648fdaec480cef48491552381a5b2fac99867" type="text/javascript"></script>2930<script type="text/javascript" charset="utf-8">31GitHub.spy({32repo: "bioe007/awesome-configs"33})34</script>35363738394041<link href="http://github.com/bioe007/awesome-configs/commits/master.atom" rel="alternate" title="Recent Commits to awesome-configs:master" type="application/atom+xml" />4243<meta name="description" content="Configuration files for awesome window manager" />44<script type="text/javascript">45GitHub.nameWithOwner = GitHub.nameWithOwner || "bioe007/awesome-configs";46GitHub.currentRef = "master";47</script>484950<script type="text/javascript">51var _gaq = _gaq || [];52_gaq.push(['_setAccount', 'UA-3769691-2']);53_gaq.push(['_trackPageview']);54(function() {55var ga = document.createElement('script');56ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';57ga.setAttribute('async', 'true');58document.documentElement.firstChild.appendChild(ga);59})();60</script>6162</head>63646566<body>67686970<script type="text/javascript">71var _kmq = _kmq || [];72function _kms(u){73var s = document.createElement('script'); var f = document.getElementsByTagName('script')[0]; s.type = 'text/javascript'; s.async = true;74s.src = u; f.parentNode.insertBefore(s, f);75}76_kms('//i.kissmetrics.com/i.js');_kms('//doug1izaerwt3.cloudfront.net/406e8bf3a2b8846ead55afb3cfaf6664523e3a54.1.js');77</script>787980818283848586<div class="subnavd" id="main">87<div id="header" class="pageheaded">88<div class="site">89<div class="logo">90<a href="https://github.com/"><img src="/images/modules/header/logov3.png" alt="github" /></a>91</div>9293949596979899100101<div class="userbox">102<div class="inner">103<div class="avatarname">104<a href="http://github.com/marvel"><img src="http://www.gravatar.com/avatar/669ff6c84f56f9845c1ec2c29e9b0dde?s=140&d=http%3A%2F%2Fgithub.com%2Fimages%2Fgravatars%2Fgravatar-140.png" alt="" width="20" height="20" /></a>105<a href="http://github.com/marvel" class="name">marvel</a>106107108109</div>110<ul class="usernav">111<li><a href="https://github.com/">Dashboard</a></li>112<li>113114<a href="https://github.com/inbox">Inbox</a>115<a href="https://github.com/inbox" class="unread_count ">0</a>116</li>117<li><a href="https://github.com/account">Account Settings</a></li>118<li><a href="/logout">Log Out</a></li>119</ul>120</div>121</div><!-- /.userbox -->122123124125126<div class="topsearch">127128<form action="/search" id="top_search_form" method="get">129<a href="/search" class="advanced-search tooltipped downwards" title="Advanced Search">Advanced Search</a>130<input type="search" class="search my_repos_autocompleter" name="q" results="5" placeholder="Search…" /> <input type="submit" value="Search" class="button" />131<input type="hidden" name="type" value="Everything" />132<input type="hidden" name="repo" value="" />133<input type="hidden" name="langOverride" value="" />134<input type="hidden" name="start_value" value="1" />135</form>136137138<ul class="nav">139<li><a href="/explore">Explore GitHub</a></li>140<li><a href="http://gist.github.com">Gist</a></li>141<li><a href="/blog">Blog</a></li>142<li><a href="http://help.github.com">Help</a></li>143</ul>144145</div>146147</div>148</div>149150151152153<div class="site">154<div class="pagehead repohead vis-public ">155<h1>156<a href="/bioe007">bioe007</a> / <strong><a href="http://github.com/bioe007/awesome-configs">awesome-configs</a></strong>157158159</h1>160161162<ul class="actions">163164165166<li class="for-owner" style="display:none"><a href="https://github.com/bioe007/awesome-configs/edit" class="minibutton btn-admin "><span><span class="icon"></span>Admin</span></a></li>167<li>168<a href="/bioe007/awesome-configs/toggle_watch" class="minibutton btn-watch " id="watch_button" style="display:none"><span><span class="icon"></span>Watch</span></a>169<a href="/bioe007/awesome-configs/toggle_watch" class="minibutton btn-watch " id="unwatch_button" style="display:none"><span><span class="icon"></span>Unwatch</span></a>170</li>171172173<li class="for-notforked" style="display:none"><a href="/bioe007/awesome-configs/fork" class="minibutton btn-fork " id="fork_button" onclick="var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', 'authenticity_token'); s.setAttribute('value', '3c73233155435a56eb55c6f6489a087f30a07794'); f.appendChild(s);f.submit();return false;"><span><span class="icon"></span>Fork</span></a></li>174<li class="for-hasfork" style="display:none"><a href="#" class="minibutton btn-fork " id="your_fork_button"><span><span class="icon"></span>Your Fork</span></a></li>175176177178<li id="pull_request_item" class='ospr' style="display:none"><a href="/bioe007/awesome-configs/pull_request/" class="minibutton btn-pull-request "><span><span class="icon"></span>Pull Request</span></a></li>179180181<li><a href="#" class="minibutton btn-download " id="download_button"><span><span class="icon"></span>Download Source</span></a></li>182183184185<li class="repostats">186<ul class="repo-stats">187<li class="watchers"><a href="/bioe007/awesome-configs/watchers" title="Watchers" class="tooltipped downwards">22</a></li>188<li class="forks"><a href="/bioe007/awesome-configs/network" title="Forks" class="tooltipped downwards">3</a></li>189</ul>190</li>191</ul>192193194195<ul class="tabs">196<li><a href="http://github.com/bioe007/awesome-configs/tree/master" class="selected" highlight="repo_source">Source</a></li>197<li><a href="http://github.com/bioe007/awesome-configs/commits/master" highlight="repo_commits">Commits</a></li>198199200<li><a href="/bioe007/awesome-configs/network" highlight="repo_network">Network (3)</a></li>201202203204205206<li><a href="/bioe007/awesome-configs/issues" highlight="issues">Issues (0)</a></li>207208209210211<li><a href="/bioe007/awesome-configs/downloads">Downloads (0)</a></li>212213214215216<li><a href="http://wiki.github.com/bioe007/awesome-configs/">Wiki (1)</a></li>217218219<li><a href="/bioe007/awesome-configs/graphs" highlight="repo_graphs">Graphs</a></li>220221<li class="contextswitch nochoices">222<span class="toggle leftwards" >223<em>Branch:</em>224<code>master</code>225</span>226</li>227</ul>228229<div style="display:none" id="pl-description"><p><em class="placeholder">click here to add a description</em></p></div>230<div style="display:none" id="pl-homepage"><p><em class="placeholder">click here to add a homepage</em></p></div>231232<div class="subnav-bar">233234<ul>235<li>236<a href="#" class="dropdown">Switch Branches (4)</a>237<ul>238239240241<li><a href="/bioe007/awesome-configs/blob/3.4/revelation.lua" action="show">3.4</a></li>242243244245246<li><a href="/bioe007/awesome-configs/blob/dynawful/revelation.lua" action="show">dynawful</a></li>247248249250<li><strong>master ✓</strong></li>251252253254<li><a href="/bioe007/awesome-configs/blob/unstable/revelation.lua" action="show">unstable</a></li>255256257</ul>258</li>259<li>260<a href="#" class="dropdown defunct">Switch Tags (0)</a>261262</li>263<li>264265<a href="/bioe007/awesome-configs/branches" class="manage">Branch List</a>266267</li>268</ul>269</div>270271272273274275276277278279<div id="repo_details" class="metabox clearfix">280<div id="repo_details_loader" class="metabox-loader" style="display:none">Sending Request…</div>281282283284<div id="repository_description" rel="repository_description_edit">285286<p>Configuration files for awesome window manager287<span id="read_more" style="display:none">— <a href="#readme">Read more</a></span>288</p>289290</div>291<div id="repository_description_edit" style="display:none;" class="inline-edit">292<form action="/bioe007/awesome-configs/edit/update" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="3c73233155435a56eb55c6f6489a087f30a07794" /></div>293<input type="hidden" name="field" value="repository_description">294<input type="text" class="textfield" name="value" value="Configuration files for awesome window manager">295<div class="form-actions">296<button class="minibutton"><span>Save</span></button> <a href="#" class="cancel">Cancel</a>297</div>298</form>299</div>300301302<div class="repository-homepage" id="repository_homepage" rel="repository_homepage_edit">303<p><a href="http://" rel="nofollow"></a></p>304</div>305<div id="repository_homepage_edit" style="display:none;" class="inline-edit">306<form action="/bioe007/awesome-configs/edit/update" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="3c73233155435a56eb55c6f6489a087f30a07794" /></div>307<input type="hidden" name="field" value="repository_homepage">308<input type="text" class="textfield" name="value" value="">309<div class="form-actions">310<button class="minibutton"><span>Save</span></button> <a href="#" class="cancel">Cancel</a>311</div>312</form>313</div>314315<div class="rule "></div>316317<div id="url_box" class="url-box">318<ul class="clone-urls">319320321<li id="http_clone_url"><a href="http://github.com/bioe007/awesome-configs.git" data-permissions="Read-Only">HTTP</a></li>322<li id="public_clone_url"><a href="git://github.com/bioe007/awesome-configs.git" data-permissions="Read-Only">Git Read-Only</a></li>323324</ul>325<input type="text" spellcheck="false" id="url_field" class="url-field" />326<span style="display:none" id="url_box_clippy"></span>327<span id="clippy_tooltip_url_box_clippy" class="clippy-tooltip tooltipped" title="copy to clipboard">328<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"329width="14"330height="14"331class="clippy"332id="clippy" >333<param name="movie" value="http://assets3.github.com/flash/clippy.swf?v5"/>334<param name="allowScriptAccess" value="always" />335<param name="quality" value="high" />336<param name="scale" value="noscale" />337<param NAME="FlashVars" value="id=url_box_clippy&copied=&copyto=">338<param name="bgcolor" value="#FFFFFF">339<param name="wmode" value="opaque">340<embed src="http://assets3.github.com/flash/clippy.swf?v5"341width="14"342height="14"343name="clippy"344quality="high"345allowScriptAccess="always"346type="application/x-shockwave-flash"347pluginspage="http://www.macromedia.com/go/getflashplayer"348FlashVars="id=url_box_clippy&copied=&copyto="349bgcolor="#FFFFFF"350wmode="opaque"351/>352</object>353</span>354355<p id="url_description">This URL has <strong>Read+Write</strong> access</p>356</div>357</div>358359360361362</div><!-- /.pagehead -->363364365366367368369370371372373374<script type="text/javascript">375GitHub.currentCommitRef = "master"376GitHub.currentRepoOwner = "bioe007"377GitHub.currentRepo = "awesome-configs"378GitHub.downloadRepo = '/bioe007/awesome-configs/archives/master'379380381GitHub.hasWriteAccess = false382GitHub.hasAdminAccess = false383GitHub.watchingRepo = false384GitHub.ignoredRepo = false385GitHub.hasForkOfRepo = ""386GitHub.hasForked = false387388389390</script>391392393394395396397398399400401<div id="commit">402<div class="group">403404<div class="envelope commit">405<div class="human">406407<div class="message"><pre><a href="/bioe007/awesome-configs/commit/cf2ccd64550c3faa19868a8d345185e8f53c3ed6">settings.lua: trim down some match tables</a> </pre></div>408409410<div class="actor">411<div class="gravatar">412413<img src="http://www.gravatar.com/avatar/276558db9072c52940d81ef5644d8554?s=140&d=http%3A%2F%2Fgithub.com%2Fimages%2Fgravatars%2Fgravatar-140.png" alt="" width="30" height="30" />414</div>415<div class="name"><a href="/bioe007">bioe007</a> <span>(author)</span></div>416<div class="date">417<abbr class="relatize" title="2010-04-30 10:10:19">Fri Apr 30 10:10:19 -0700 2010</abbr>418</div>419</div>420421422423</div>424<div class="machine">425<span>c</span>ommit <a href="/bioe007/awesome-configs/commit/cf2ccd64550c3faa19868a8d345185e8f53c3ed6" hotkey="c">cf2ccd64550c3faa1986</a><br />426<span>t</span>ree <a href="/bioe007/awesome-configs/tree/cf2ccd64550c3faa19868a8d345185e8f53c3ed6" hotkey="t">fde49477ef8f945679f1</a><br />427428<span>p</span>arent 429430<a href="/bioe007/awesome-configs/tree/e7fe6dbf1f18db62e06d2655388a11a1055453b7" hotkey="p">e7fe6dbf1f18db62e06d</a>431432433</div>434</div>435436</div>437</div>438439440441442<div id="path">443<b><a href="/bioe007/awesome-configs/tree/master">awesome-configs</a></b> / revelation.lua <span style="display:none" id="clippy_1429">revelation.lua</span>444445<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"446width="110"447height="14"448class="clippy"449id="clippy" >450<param name="movie" value="http://assets3.github.com/flash/clippy.swf?v5"/>451<param name="allowScriptAccess" value="always" />452<param name="quality" value="high" />453<param name="scale" value="noscale" />454<param NAME="FlashVars" value="id=clippy_1429&copied=copied!&copyto=copy to clipboard">455<param name="bgcolor" value="#FFFFFF">456<param name="wmode" value="opaque">457<embed src="http://assets3.github.com/flash/clippy.swf?v5"458width="110"459height="14"460name="clippy"461quality="high"462allowScriptAccess="always"463type="application/x-shockwave-flash"464pluginspage="http://www.macromedia.com/go/getflashplayer"465FlashVars="id=clippy_1429&copied=copied!&copyto=copy to clipboard"466bgcolor="#FFFFFF"467wmode="opaque"468/>469</object>470471472</div>473474<div id="files">475<div class="file">476<div class="meta">477<div class="info">478<span class="icon"><img alt="Txt" height="16" src="http://assets0.github.com/images/icons/txt.png?cc8648fdaec480cef48491552381a5b2fac99867" width="16" /></span>479<span class="mode" title="File Mode">100644</span>480481<span>147 lines (136 sloc)</span>482483<span>3.982 kb</span>484</div>485<ul class="actions">486487<li><a id="file-edit-link" href="#" rel="/bioe007/awesome-configs/file-edit/__ref__/revelation.lua">edit</a></li>488489<li><a href="/bioe007/awesome-configs/raw/master/revelation.lua" id="raw-url">raw</a></li>490491<li><a href="/bioe007/awesome-configs/blame/master/revelation.lua">blame</a></li>492493<li><a href="/bioe007/awesome-configs/commits/master/revelation.lua">history</a></li>494</ul>495</div>496497<div class="data syntax type-lua">498499<table cellpadding="0" cellspacing="0">500<tr>501<td>502<pre class="line_numbers"><span id="LID1" rel="#L1">1</span>503<span id="LID2" rel="#L2">2</span>504<span id="LID3" rel="#L3">3</span>505<span id="LID4" rel="#L4">4</span>506<span id="LID5" rel="#L5">5</span>507<span id="LID6" rel="#L6">6</span>508<span id="LID7" rel="#L7">7</span>509<span id="LID8" rel="#L8">8</span>510<span id="LID9" rel="#L9">9</span>511<span id="LID10" rel="#L10">10</span>512<span id="LID11" rel="#L11">11</span>513<span id="LID12" rel="#L12">12</span>514<span id="LID13" rel="#L13">13</span>515<span id="LID14" rel="#L14">14</span>516<span id="LID15" rel="#L15">15</span>517<span id="LID16" rel="#L16">16</span>518<span id="LID17" rel="#L17">17</span>519<span id="LID18" rel="#L18">18</span>520<span id="LID19" rel="#L19">19</span>521<span id="LID20" rel="#L20">20</span>522<span id="LID21" rel="#L21">21</span>523<span id="LID22" rel="#L22">22</span>524<span id="LID23" rel="#L23">23</span>525<span id="LID24" rel="#L24">24</span>526<span id="LID25" rel="#L25">25</span>527<span id="LID26" rel="#L26">26</span>528<span id="LID27" rel="#L27">27</span>529<span id="LID28" rel="#L28">28</span>530<span id="LID29" rel="#L29">29</span>531<span id="LID30" rel="#L30">30</span>532<span id="LID31" rel="#L31">31</span>533<span id="LID32" rel="#L32">32</span>534<span id="LID33" rel="#L33">33</span>535<span id="LID34" rel="#L34">34</span>536<span id="LID35" rel="#L35">35</span>537<span id="LID36" rel="#L36">36</span>538<span id="LID37" rel="#L37">37</span>539<span id="LID38" rel="#L38">38</span>540<span id="LID39" rel="#L39">39</span>541<span id="LID40" rel="#L40">40</span>542<span id="LID41" rel="#L41">41</span>543<span id="LID42" rel="#L42">42</span>544<span id="LID43" rel="#L43">43</span>545<span id="LID44" rel="#L44">44</span>546<span id="LID45" rel="#L45">45</span>547<span id="LID46" rel="#L46">46</span>548<span id="LID47" rel="#L47">47</span>549<span id="LID48" rel="#L48">48</span>550<span id="LID49" rel="#L49">49</span>551<span id="LID50" rel="#L50">50</span>552<span id="LID51" rel="#L51">51</span>553<span id="LID52" rel="#L52">52</span>554<span id="LID53" rel="#L53">53</span>555<span id="LID54" rel="#L54">54</span>556<span id="LID55" rel="#L55">55</span>557<span id="LID56" rel="#L56">56</span>558<span id="LID57" rel="#L57">57</span>559<span id="LID58" rel="#L58">58</span>560<span id="LID59" rel="#L59">59</span>561<span id="LID60" rel="#L60">60</span>562<span id="LID61" rel="#L61">61</span>563<span id="LID62" rel="#L62">62</span>564<span id="LID63" rel="#L63">63</span>565<span id="LID64" rel="#L64">64</span>566<span id="LID65" rel="#L65">65</span>567<span id="LID66" rel="#L66">66</span>568<span id="LID67" rel="#L67">67</span>569<span id="LID68" rel="#L68">68</span>570<span id="LID69" rel="#L69">69</span>571<span id="LID70" rel="#L70">70</span>572<span id="LID71" rel="#L71">71</span>573<span id="LID72" rel="#L72">72</span>574<span id="LID73" rel="#L73">73</span>575<span id="LID74" rel="#L74">74</span>576<span id="LID75" rel="#L75">75</span>577<span id="LID76" rel="#L76">76</span>578<span id="LID77" rel="#L77">77</span>579<span id="LID78" rel="#L78">78</span>580<span id="LID79" rel="#L79">79</span>581<span id="LID80" rel="#L80">80</span>582<span id="LID81" rel="#L81">81</span>583<span id="LID82" rel="#L82">82</span>584<span id="LID83" rel="#L83">83</span>585<span id="LID84" rel="#L84">84</span>586<span id="LID85" rel="#L85">85</span>587<span id="LID86" rel="#L86">86</span>588<span id="LID87" rel="#L87">87</span>589<span id="LID88" rel="#L88">88</span>590<span id="LID89" rel="#L89">89</span>591<span id="LID90" rel="#L90">90</span>592<span id="LID91" rel="#L91">91</span>593<span id="LID92" rel="#L92">92</span>594<span id="LID93" rel="#L93">93</span>595<span id="LID94" rel="#L94">94</span>596<span id="LID95" rel="#L95">95</span>597<span id="LID96" rel="#L96">96</span>598<span id="LID97" rel="#L97">97</span>599<span id="LID98" rel="#L98">98</span>600<span id="LID99" rel="#L99">99</span>601<span id="LID100" rel="#L100">100</span>602<span id="LID101" rel="#L101">101</span>603<span id="LID102" rel="#L102">102</span>604<span id="LID103" rel="#L103">103</span>605<span id="LID104" rel="#L104">104</span>606<span id="LID105" rel="#L105">105</span>607<span id="LID106" rel="#L106">106</span>608<span id="LID107" rel="#L107">107</span>609<span id="LID108" rel="#L108">108</span>610<span id="LID109" rel="#L109">109</span>611<span id="LID110" rel="#L110">110</span>612<span id="LID111" rel="#L111">111</span>613<span id="LID112" rel="#L112">112</span>614<span id="LID113" rel="#L113">113</span>615<span id="LID114" rel="#L114">114</span>616<span id="LID115" rel="#L115">115</span>617<span id="LID116" rel="#L116">116</span>618<span id="LID117" rel="#L117">117</span>619<span id="LID118" rel="#L118">118</span>620<span id="LID119" rel="#L119">119</span>621<span id="LID120" rel="#L120">120</span>622<span id="LID121" rel="#L121">121</span>623<span id="LID122" rel="#L122">122</span>624<span id="LID123" rel="#L123">123</span>625<span id="LID124" rel="#L124">124</span>626<span id="LID125" rel="#L125">125</span>627<span id="LID126" rel="#L126">126</span>628<span id="LID127" rel="#L127">127</span>629<span id="LID128" rel="#L128">128</span>630<span id="LID129" rel="#L129">129</span>631<span id="LID130" rel="#L130">130</span>632<span id="LID131" rel="#L131">131</span>633<span id="LID132" rel="#L132">132</span>634<span id="LID133" rel="#L133">133</span>635<span id="LID134" rel="#L134">134</span>636<span id="LID135" rel="#L135">135</span>637<span id="LID136" rel="#L136">136</span>638<span id="LID137" rel="#L137">137</span>639<span id="LID138" rel="#L138">138</span>640<span id="LID139" rel="#L139">139</span>641<span id="LID140" rel="#L140">140</span>642<span id="LID141" rel="#L141">141</span>643<span id="LID142" rel="#L142">142</span>644<span id="LID143" rel="#L143">143</span>645<span id="LID144" rel="#L144">144</span>646<span id="LID145" rel="#L145">145</span>647<span id="LID146" rel="#L146">146</span>648<span id="LID147" rel="#L147">147</span>649</pre>650</td>651<td width="100%">652653<div class="highlight"><pre><div class='line' id='LC1'><span class="c1">-- revelation.lua</span></div><div class='line' id='LC2'><span class="c1">-- This is a modification of the original awesome library that implemented</span></div><div class='line' id='LC3'><span class="c1">-- expose like behavior.</span></div><div class='line' id='LC4'><span class="c1">--</span></div><div class='line' id='LC5'><span class="c1">-- @author Perry Hargrave (aka bioe007)</span></div><div class='line' id='LC6'><span class="c1">-- perry)dot(hargrave)at(gmail.com</span></div><div class='line' id='LC7'><span class="c1">-- awesome v3.4-20-g8e02306 (Closing In)</span></div><div class='line' id='LC8'><span class="c1">--</span></div><div class='line' id='LC9'><span class="c1">-- original file information:</span></div><div class='line' id='LC10'><span class="c1">-- @author Espen Wiborg &lt;[email protected]&gt;</span></div><div class='line' id='LC11'><span class="c1">-- @author Julien Danjou &lt;[email protected]&gt;</span></div><div class='line' id='LC12'><span class="c1">-- @copyright 2008 Espen Wiborg, Julien Danjou</span></div><div class='line' id='LC13'><span class="c1">--</span></div><div class='line' id='LC14'><span class="c1">-- USE:</span></div><div class='line' id='LC15'><span class="c1">-- 1. save this file as $HOME/.config/awesome/revelation.lua</span></div><div class='line' id='LC16'><span class="c1">-- 2. put near the top of your rc.lua</span></div><div class='line' id='LC17'><span class="c1">-- require("revelation")</span></div><div class='line' id='LC18'><span class="c1">-- 3. make a global keybinding for revelation in your rc.lua:</span></div><div class='line' id='LC19'><span class="c1">-- awful.key({ modkey }, "e", revelation.revelation)</span></div><div class='line' id='LC20'><span class="c1">-- 4. reload rc.lua and try the keybinding. It should bring all clients to the</span></div><div class='line' id='LC21'><span class="c1">-- current tag and set the layout to fair. You can focus clients with</span></div><div class='line' id='LC22'><span class="c1">-- cursor(arrow) or 'hjkl' keys then press <enter> to select or <escape> to</span></div><div class='line' id='LC23'><span class="c1">-- abort</span></div><div class='line' id='LC24'><span class="c1">--</span></div><div class='line' id='LC25'><span class="c1">-- NOTES: I have dumbed this down to simply merge all clients to the current tag</span></div><div class='line' id='LC26'><span class="c1">-- the class filter is of little use (to me?) but I could reimplement it</span></div><div class='line' id='LC27'><span class="c1">-- if anyone is interested</span></div><div class='line' id='LC28'><span class="c1">--</span></div><div class='line' id='LC29'><span class="kd">local</span> <span class="n">math</span> <span class="o">=</span> <span class="n">math</span></div><div class='line' id='LC30'><span class="kd">local</span> <span class="n">table</span> <span class="o">=</span> <span class="n">table</span></div><div class='line' id='LC31'><span class="kd">local</span> <span class="nb">pairs</span> <span class="o">=</span> <span class="nb">pairs</span></div><div class='line' id='LC32'><span class="kd">local</span> <span class="n">button</span> <span class="o">=</span> <span class="n">button</span></div><div class='line' id='LC33'><span class="kd">local</span> <span class="n">awful</span> <span class="o">=</span> <span class="n">awful</span></div><div class='line' id='LC34'><span class="kd">local</span> <span class="n">capi</span> <span class="o">=</span></div><div class='line' id='LC35'><span class="p">{</span></div><div class='line' id='LC36'> <span class="n">tag</span> <span class="o">=</span> <span class="n">tag</span><span class="p">,</span></div><div class='line' id='LC37'> <span class="n">client</span> <span class="o">=</span> <span class="n">client</span><span class="p">,</span></div><div class='line' id='LC38'> <span class="n">keygrabber</span> <span class="o">=</span> <span class="n">keygrabber</span><span class="p">,</span></div><div class='line' id='LC39'> <span class="n">mouse</span> <span class="o">=</span> <span class="n">mouse</span><span class="p">,</span></div><div class='line' id='LC40'> <span class="n">screen</span> <span class="o">=</span> <span class="n">screen</span></div><div class='line' id='LC41'><span class="p">}</span></div><div class='line' id='LC42'><span class="kd">local</span> <span class="nb">print</span> <span class="o">=</span> <span class="nb">print</span></div><div class='line' id='LC43'><span class="c1">--- Exposé implementation</span></div><div class='line' id='LC44'><span class="nb">module</span><span class="p">(</span><span class="s2">"</span><span class="s">revelation"</span><span class="p">)</span></div><div class='line' id='LC45'><br/></div><div class='line' id='LC46'><span class="c1">--{{{ clients</span></div><div class='line' id='LC47'><span class="c1">-- a now unused filter to grab clients based on their class</span></div><div class='line' id='LC48'><span class="c1">--</span></div><div class='line' id='LC49'><span class="c1">-- @param class the class string to find</span></div><div class='line' id='LC50'><span class="c1">-- @s the screen</span></div><div class='line' id='LC51'><span class="k">function</span> <span class="nf">clients</span><span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span></div><div class='line' id='LC52'> <span class="kd">local</span> <span class="n">clients</span></div><div class='line' id='LC53'> <span class="k">if</span> <span class="k">class</span> <span class="nc">then</span></div><div class='line' id='LC54'> <span class="n">clients</span> <span class="o">=</span> <span class="p">{}</span></div><div class='line' id='LC55'> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">c</span> <span class="k">in</span> <span class="nb">pairs</span><span class="p">(</span><span class="n">capi</span><span class="p">.</span><span class="n">client</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="n">s</span><span class="p">))</span> <span class="k">do</span></div><div class='line' id='LC56'> <span class="k">if</span> <span class="n">c</span><span class="p">.</span><span class="n">class</span> <span class="o">==</span> <span class="k">class</span> <span class="nc">then</span></div><div class='line' id='LC57'> <span class="nb">table.insert</span><span class="p">(</span><span class="n">clients</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span></div><div class='line' id='LC58'> <span class="k">end</span></div><div class='line' id='LC59'> <span class="k">end</span></div><div class='line' id='LC60'> <span class="k">else</span></div><div class='line' id='LC61'> <span class="n">clients</span> <span class="o">=</span> <span class="n">capi</span><span class="p">.</span><span class="n">client</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="n">s</span><span class="p">)</span></div><div class='line' id='LC62'> <span class="k">end</span></div><div class='line' id='LC63'> <span class="k">return</span> <span class="n">clients</span></div><div class='line' id='LC64'><span class="k">end</span></div><div class='line' id='LC65'><span class="c1">--}}}</span></div><div class='line' id='LC66'><br/></div><div class='line' id='LC67'><span class="c1">--{{{ selectfn</span></div><div class='line' id='LC68'><span class="c1">-- executed when user selects a client from expose view</span></div><div class='line' id='LC69'><span class="c1">--</span></div><div class='line' id='LC70'><span class="c1">-- @param restore function to reset the current tags view</span></div><div class='line' id='LC71'><span class="k">function</span> <span class="nf">selectfn</span><span class="p">(</span><span class="n">restore</span><span class="p">)</span></div><div class='line' id='LC72'> <span class="k">return</span> <span class="n">function</span><span class="p">(</span><span class="n">c</span><span class="p">)</span></div><div class='line' id='LC73'> <span class="n">restore</span><span class="p">()</span></div><div class='line' id='LC74'> <span class="c1">-- Pop to client tag</span></div><div class='line' id='LC75'> <span class="n">awful</span><span class="p">.</span><span class="n">tag</span><span class="p">.</span><span class="n">viewonly</span><span class="p">(</span><span class="n">c</span><span class="p">:</span><span class="n">tags</span><span class="p">()[</span><span class="mi">1</span><span class="p">],</span> <span class="n">c</span><span class="p">.</span><span class="n">screen</span><span class="p">)</span></div><div class='line' id='LC76'> <span class="c1">-- Focus and raise</span></div><div class='line' id='LC77'> <span class="n">capi</span><span class="p">.</span><span class="n">client</span><span class="p">.</span><span class="n">focus</span> <span class="o">=</span> <span class="n">c</span></div><div class='line' id='LC78'> <span class="n">c</span><span class="p">:</span><span class="n">raise</span><span class="p">()</span></div><div class='line' id='LC79'> <span class="k">end</span></div><div class='line' id='LC80'><span class="k">end</span></div><div class='line' id='LC81'><span class="c1">--}}}</span></div><div class='line' id='LC82'><br/></div><div class='line' id='LC83'><span class="c1">--{{{ keyboardhandler</span></div><div class='line' id='LC84'><span class="c1">-- Returns keyboardhandler.</span></div><div class='line' id='LC85'><span class="c1">-- Arrow keys and 'hjkl' move focus, Return selects, Escape cancels. Ignores</span></div><div class='line' id='LC86'><span class="c1">-- modifiers.</span></div><div class='line' id='LC87'><span class="c1">--</span></div><div class='line' id='LC88'><span class="c1">-- @param restore a function to call if the user presses escape</span></div><div class='line' id='LC89'><span class="k">function</span> <span class="nf">keyboardhandler</span> <span class="p">(</span><span class="n">restore</span><span class="p">)</span></div><div class='line' id='LC90'> <span class="k">return</span> <span class="k">function</span> <span class="p">(</span><span class="n">mod</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">event</span><span class="p">)</span></div><div class='line' id='LC91'> <span class="k">if</span> <span class="n">event</span> <span class="o">~=</span> <span class="s2">"</span><span class="s">press"</span> <span class="k">then</span> <span class="k">return</span> <span class="kc">true</span> <span class="k">end</span></div><div class='line' id='LC92'> <span class="c1">-- translate vim-style home keys to directions</span></div><div class='line' id='LC93'> <span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">j"</span> <span class="ow">or</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">k"</span> <span class="ow">or</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">h"</span> <span class="ow">or</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">l"</span> <span class="k">then</span></div><div class='line' id='LC94'> <span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">j"</span> <span class="k">then</span></div><div class='line' id='LC95'> <span class="n">key</span> <span class="o">=</span> <span class="s2">"</span><span class="s">Down"</span></div><div class='line' id='LC96'> <span class="k">elseif</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">k"</span> <span class="k">then</span></div><div class='line' id='LC97'> <span class="n">key</span> <span class="o">=</span> <span class="s2">"</span><span class="s">Up"</span></div><div class='line' id='LC98'> <span class="k">elseif</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">h"</span> <span class="k">then</span></div><div class='line' id='LC99'> <span class="n">key</span> <span class="o">=</span> <span class="s2">"</span><span class="s">Left"</span></div><div class='line' id='LC100'> <span class="k">elseif</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">l"</span> <span class="k">then</span></div><div class='line' id='LC101'> <span class="n">key</span> <span class="o">=</span> <span class="s2">"</span><span class="s">Right"</span></div><div class='line' id='LC102'> <span class="k">end</span></div><div class='line' id='LC103'> <span class="k">end</span></div><div class='line' id='LC104'><br/></div><div class='line' id='LC105'> <span class="c1">--</span></div><div class='line' id='LC106'> <span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">Escape"</span> <span class="k">then</span></div><div class='line' id='LC107'> <span class="n">restore</span><span class="p">()</span></div><div class='line' id='LC108'> <span class="k">return</span> <span class="kc">false</span></div><div class='line' id='LC109'> <span class="k">elseif</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">Return"</span> <span class="k">then</span></div><div class='line' id='LC110'> <span class="n">selectfn</span><span class="p">(</span><span class="n">restore</span><span class="p">)(</span><span class="n">capi</span><span class="p">.</span><span class="n">client</span><span class="p">.</span><span class="n">focus</span><span class="p">)</span></div><div class='line' id='LC111'> <span class="k">return</span> <span class="kc">false</span></div><div class='line' id='LC112'> <span class="k">elseif</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">Left"</span> <span class="ow">or</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">Right"</span> <span class="ow">or</span></div><div class='line' id='LC113'> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">Up"</span> <span class="ow">or</span> <span class="n">key</span> <span class="o">==</span> <span class="s2">"</span><span class="s">Down"</span> <span class="k">then</span></div><div class='line' id='LC114'> <span class="n">awful</span><span class="p">.</span><span class="n">client</span><span class="p">.</span><span class="n">focus</span><span class="p">.</span><span class="n">bydirection</span><span class="p">(</span><span class="n">key</span><span class="p">:</span><span class="n">lower</span><span class="p">())</span></div><div class='line' id='LC115'> <span class="k">end</span></div><div class='line' id='LC116'> <span class="k">return</span> <span class="kc">true</span></div><div class='line' id='LC117'> <span class="k">end</span></div><div class='line' id='LC118'><span class="k">end</span></div><div class='line' id='LC119'><span class="c1">--}}}</span></div><div class='line' id='LC120'><br/></div><div class='line' id='LC121'><span class="c1">--{{{ revelation</span></div><div class='line' id='LC122'><span class="c1">-- Implement Exposé (from Mac OS X).</span></div><div class='line' id='LC123'><span class="c1">-- @param class The class of clients to expose, or nil for all clients.</span></div><div class='line' id='LC124'><span class="c1">-- @param fn A binary function f(t, n) to set the layout for tag t for n</span></div><div class='line' id='LC125'><span class="c1">-- clients, or nil for the default layout.</span></div><div class='line' id='LC126'><span class="c1">-- @param s The screen to consider clients of, or nil for "current screen".</span></div><div class='line' id='LC127'><span class="k">function</span> <span class="nf">revelation</span><span class="p">(</span><span class="n">class</span><span class="p">,</span> <span class="n">fn</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span></div><div class='line' id='LC128'> <span class="kd">local</span> <span class="n">scr</span> <span class="o">=</span> <span class="n">s</span> <span class="ow">or</span> <span class="n">capi</span><span class="p">.</span><span class="n">mouse</span><span class="p">.</span><span class="n">screen</span></div><div class='line' id='LC129'> <span class="kd">local</span> <span class="n">t</span> <span class="o">=</span> <span class="n">capi</span><span class="p">.</span><span class="n">screen</span><span class="p">[</span><span class="n">scr</span><span class="p">]:</span><span class="n">tags</span><span class="p">()[</span><span class="mi">1</span><span class="p">]</span></div><div class='line' id='LC130'> <span class="kd">local</span> <span class="n">oldlayout</span> <span class="o">=</span> <span class="n">awful</span><span class="p">.</span><span class="n">tag</span><span class="p">.</span><span class="n">getproperty</span><span class="p">(</span> <span class="n">t</span><span class="p">,</span> <span class="s2">"</span><span class="s">layout"</span> <span class="p">)</span></div><div class='line' id='LC131'><br/></div><div class='line' id='LC132'> <span class="n">awful</span><span class="p">.</span><span class="n">tag</span><span class="p">.</span><span class="n">viewmore</span><span class="p">(</span> <span class="n">capi</span><span class="p">.</span><span class="n">screen</span><span class="p">[</span><span class="n">scr</span><span class="p">]:</span><span class="n">tags</span><span class="p">(),</span> <span class="n">t</span><span class="p">.</span><span class="n">screen</span> <span class="p">)</span></div><div class='line' id='LC133'> <span class="n">awful</span><span class="p">.</span><span class="n">layout</span><span class="p">.</span><span class="n">set</span><span class="p">(</span><span class="n">awful</span><span class="p">.</span><span class="n">layout</span><span class="p">.</span><span class="n">suit</span><span class="p">.</span><span class="n">fair</span><span class="p">,</span><span class="n">t</span><span class="p">)</span></div><div class='line' id='LC134'><br/></div><div class='line' id='LC135'> <span class="kd">local</span> <span class="k">function</span> <span class="nf">restore</span><span class="p">()</span></div><div class='line' id='LC136'> <span class="n">awful</span><span class="p">.</span><span class="n">layout</span><span class="p">.</span><span class="n">set</span><span class="p">(</span><span class="n">oldlayout</span><span class="p">,</span><span class="n">t</span><span class="p">)</span></div><div class='line' id='LC137'> <span class="n">awful</span><span class="p">.</span><span class="n">tag</span><span class="p">.</span><span class="n">viewonly</span><span class="p">(</span><span class="n">t</span><span class="p">)</span></div><div class='line' id='LC138'><br/></div><div class='line' id='LC139'> <span class="n">capi</span><span class="p">.</span><span class="n">keygrabber</span><span class="p">.</span><span class="n">stop</span><span class="p">()</span></div><div class='line' id='LC140'> <span class="k">end</span></div><div class='line' id='LC141'><br/></div><div class='line' id='LC142'> <span class="n">capi</span><span class="p">.</span><span class="n">keygrabber</span><span class="p">.</span><span class="n">run</span><span class="p">(</span><span class="n">keyboardhandler</span><span class="p">(</span><span class="n">restore</span><span class="p">))</span></div><div class='line' id='LC143'><span class="k">end</span></div><div class='line' id='LC144'><span class="c1">--}}}</span></div><div class='line' id='LC145'><br/></div><div class='line' id='LC146'><span class="c1">-- vim:set ft=lua fdm=marker ts=4 sw=4 et ai si: --</span></div><div class='line' id='LC147'><br/></div></pre></div>654655</td>656</tr>657</table>658659</div>660661662</div>663</div>664665666667668</div>669670671672<div class="push"></div>673</div>674675<div id="footer">676<div class="site">677<div class="info">678<div class="locales">679680681682683<a class="current" href="#">English</a> 684685686687688<a href="?locale=ja">日本語</a> 689690691692693694<a href="?locale=fr">Français</a> 695696697698699700<a href="?locale=sr">Српски</a> 701702703704705706<a href="?locale=de">Deutsch</a> 707708709710711712<a href="?locale=es">Español</a> 713714715716717718<a href="?locale=no">Norsk</a> 719720721722723724<a href="?locale=sv">Svenska</a> 725726727728729730<a href="?locale=hr">Hrvatski</a> 731732733734735736<a href="?locale=pl">Polski</a> 737738739740741742<a href="?locale=nl">Nederlands</a> 743744745746747</div>748<div class="links">749<a href="http://github.com/blog"><b>Blog</b></a> |750<a href="http://support.github.com?sso=2uMNp54Hye3BUKFHq1vbC2BrJDLsL8APGN3duEjp6G5-qvkxhcREzHksy1g3QnfRtSKkMSAhLMywYGtRyhHEtDL3PoP3aekJIEQJaVH3wtQ_wbidGz10gdNmvxAbop9WDdg5toTuRhQnZ9dN-rAXjtQkQozynA3DlGmQrHdjHBPbiL5DPm96ErOXg86thVE06Hn7KX-BBRrFbMJTMlb5CVoW8zGFH7n2oZN2xeLN40c">Support</a> |751<a href="http://github.com/training">Training</a> |752<a href="http://github.com/contact">Contact</a> |753<a href="http://develop.github.com">API</a> |754<a href="http://status.github.com">Status</a> |755<a href="http://twitter.com/github">Twitter</a> |756<a href="http://help.github.com">Help</a> |757<a href="http://github.com/security">Security</a>758</div>759<div class="company">760©7612010762<span id="_rrt" title="0.07480s from fe2.rs.github.com">GitHub</span> Inc.763All rights reserved. |764<a href="/site/terms">Terms of Service</a> |765<a href="/site/privacy">Privacy Policy</a>766</div>767</div>768<div class="sponsor">769<div>770Powered by the <a href="http://www.rackspace.com ">Dedicated771Servers</a> and<br/> <a href="http://www.rackspacecloud.com">Cloud772Computing</a> of Rackspace Hosting<span>®</span>773</div>774<a href="http://www.rackspace.com">775<img alt="Dedicated Server" src="http://assets0.github.com/images/modules/footer/rackspace_logo.png?cc8648fdaec480cef48491552381a5b2fac99867" />776</a>777</div>778</div>779</div>780781<script>window._auth_token = "3c73233155435a56eb55c6f6489a087f30a07794"</script>782783784<script type="text/javascript">785_kmq.push(['trackClick', 'entice_banner_link', 'Entice banner clicked']);786787</script>788789</body>790</html>791792793794