Hi all,<br>Scratchpad is an XMonad extension that brings up or spawns a terminal window on Alt-F2 (as I have it configured) and hides it in a hidden workspace when I am done.&nbsp; <br><br>The code looked pretty simple and I tried to adapt this script to do the same thing with my Conkeror window. This script worked until I upgraded to 0.8.1. Now it doesn&#39;t detect an existing Conkeror window and keeps launching a new instance. <br>
<br>Xprop output shows the class name of Conkeror is: &quot;Navigator&quot;, &quot;Conkeror&quot;.<br><br>Since <a href="http://hpaste.org">hpaste.org</a> seems to be down, here it is my hacked Scratchpad sans imports and header comment ( if the author of Scratchpad is reading this, yes the code below is pretty much cut-and-paste):<br>
<br>---------------------------------------------------------------------------<br>-- | Action to pop up the browser, for the user to bind to a custom key.<br>scratchBrowserSpawn :: X ()<br>scratchBrowserSpawn = <br>&nbsp;&nbsp;&nbsp; scratchpadAction $ spawn &quot;conkeror&quot;<br>
<br>scratchpadAction :: X () -&gt; X ()<br>scratchpadAction action = withWindowSet $ \s -&gt; do<br>&nbsp; filterCurrent &lt;- filterM (runQuery scratchpadQuery) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( (maybe [] W.integrate <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . W.stack <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . W.workspace <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . W.current) s)<br>&nbsp; case filterCurrent of<br>&nbsp;&nbsp;&nbsp; (x:_) -&gt; do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if null (filter ( (== scratchpadWorkspaceTag) . W.tag) (W.workspaces s))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then addHiddenWorkspace scratchpadWorkspaceTag<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else return ()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; windows (W.shiftWin scratchpadWorkspaceTag x)<br>&nbsp;&nbsp;&nbsp; []&nbsp;&nbsp;&nbsp; -&gt; do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filterAll &lt;- filterM (runQuery scratchpadQuery) (W.allWindows s)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case filterAll of<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (x:_) -&gt; windows (W.shiftWin (W.currentTag s) x)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; []&nbsp;&nbsp;&nbsp; -&gt; action -- run the provided action to spawn it.<br><br><br>-- factored out since it appears in several places<br>scratchpadWorkspaceTag :: String<br>scratchpadWorkspaceTag = &quot;BR&quot;<br><br>-- factored out since this is common to both the ManageHook and the action<br>
scratchpadQuery :: Query Bool<br>scratchpadQuery = (className =? &quot;Conkeror&quot;) &lt;||&gt; (className =? &quot;Navigator&quot;)<br><br><br>-- | The ManageHook, with the default rectangle:<br>-- Half the screen wide, a quarter of the screen tall, centered.<br>
scratchpadManageHookDefault :: ManageHook<br>scratchpadManageHookDefault = scratchpadManageHook scratchpadDefaultRect<br><br><br>-- | The ManageHook, with a user-specified StackSet.RationalRect,<br>-- eg.<br>--<br>-- &gt; scratchpadManageHook (W.RationalRect 0.25 0.375 0.5 0.25)<br>
scratchpadManageHook :: W.RationalRect -- ^ User-specified screen rectangle.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; ManageHook<br>scratchpadManageHook rect = scratchpadQuery --&gt; doRectFloat rect<br><br><br>-- | Transforms a workspace list containing the SP workspace into one that<br>
-- doesn&#39;t contain it. Intended for use with logHooks.<br>scratchpadFilterOutWorkspace :: [WindowSpace] -&gt; [WindowSpace]<br>scratchpadFilterOutWorkspace = filter (\(W.Workspace tag _ _) -&gt; tag /= scratchpadWorkspaceTag)<br>
<br><br>scratchpadDefaultRect :: W.RationalRect<br>scratchpadDefaultRect = W.RationalRect 0.25 0.375 0.5 0.25<br><br>-------------------------------------------------------------------------------------------------<br>Thanks ...<br>
Deech<br><br><br><br>