Make $desktop available
authorJoachim Breitner <mail@joachim-breitner.de>
Wed, 1 Jan 2014 14:28:22 +0000 (14:28 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Wed, 1 Jan 2014 14:28:22 +0000 (14:28 +0000)
this resolves issue #1.

categorize.cfg
doc/arbtt.xml
src/Categorize.hs

index 95461a1..088ca40 100644 (file)
@@ -31,6 +31,9 @@ any window $title == "I3P"
 -- Simple rule that just tags the current program
 tag Program:$current.program,
 
+-- Another simple rule, just tags the current desktop (a.k.a. workspace)
+tag Desktop:$desktop,
+
 -- I'd like to know what evolution folders I'm working in. But when sending a
 -- mail, the window title only contains the (not very helpful) subject. So I do
 -- not tag necessarily by the active window title, but the title that contains
index a7edb14..069d7c4 100644 (file)
@@ -156,8 +156,8 @@ $ runhaskell Setup.hs install</screen>
     <title>The semantics (informal)</title>
     <para>
       A data sample consists of the time of recording, the time passed since the
-      user’s last action and the list of windows. For each window this
-      information is available:
+      user’s last action, the name of the current workspace and the list of
+      windows. For each window this information is available:
       <itemizedlist>
         <listitem><simpara>the window title</simpara></listitem>
         <listitem><simpara>the program name</simpara></listitem>
@@ -220,6 +220,11 @@ $ runhaskell Setup.hs install</screen>
     </para>
 
     <para>
+      The name of the current desktop (or workspace) is available as
+      <literal>$desktop</literal>.
+    </para>
+
+    <para>
       For <literal>current window</literal>, the currently active window is in
       scope. If there is no such window, the condition is false.
     </para>
@@ -1191,6 +1196,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
       <listitem>
         <para><command>arbtt-capture</command> now supports the option <option>--dump</option> for development and debugging purposes.</para>
       </listitem>
+      <listitem>
+        <para>The name of the current desktop (or workspace) is also recorded, and available as <literal>$desktop</literal> (<ulink url="https://bitbucket.org/nomeata/arbtt/issue/1/track-active-workspace-name">issue #1</ulink>).</para>
+      </listitem>
     </itemizedlist>
   </sect2>
   
index 54cd21e..32d9b1d 100644 (file)
@@ -373,6 +373,8 @@ parseCondPrim = choice
                            return $ CondTime (getTimeVar "sampleage")
                       , do guard $ varname == "date"
                            return $ CondDate (getDateVar "date")
+                      , do guard $ varname == "desktop"
+                           return $ CondString (getVar "desktop")
                      ]
               ] <?> "variable"
         , do regex <- parseRegex <?> "regular expression"
@@ -522,6 +524,8 @@ getVar "title"   ctx = do
 getVar "program" ctx = do
                 (_,_,p) <- cWindowInScope ctx
                 return p
+getVar "desktop" ctx = do
+                return $ cDesktop (tlData (cNow ctx))
 getVar v ctx = error $ "Unknown variable " ++ v
 
 getNumVar :: String -> CtxFun Integer