[openbox] Persisting a desktop terminal window across ToggleShowDesktop with xdotool - interesting failure mode

Paul G paulg at perforge.net
Sat Feb 28 12:33:05 EST 2015


I'm attempting to arrive at a working config for a transparent terminal
window on the desktop. This works well except that it gets hidden with
Super-D (ToggleShowDesktop), as one would expect. Having failed to find a
way to protect the terminal window from being hidden by this, I moved on to
trying to re-map it afterwards with xdotool. I've succeeded - but only
partially - and this is where it gets interesting (for me, anyway).

I can indeed successfully find the window with xdotool, I can map it again
and everything looks great as long as I do so myself from the shell; when I
attempt to have it happen automatically by sticking the same shell script
into an Execute action (for the Super-D key binding *or* a different one),
I get nada. The script runs, the log shows the window is found and xdotool
returns 0, but nothing happens. I've tried adding a sleep up to 15s in case
there's a race of some sort and still no luck.

If someone can think of a different way to achieve the desired result I'd
be chuffed. With that said, I'm sufficiently curious about why this is
happening that I'm now more interested in finding that out than having a
transparent desktop terminal ;)

ForEach would not work for this even if I had it (i don't - using wheezy's
3.5.0-7 currently), since the terminal has two windows, of which only the
second one needs to be re-mapped, and there doesn't appear to be a way to
persist state across loop iterations.

The details of my attempted set-up are as follows:

openbox = 3.5
tilda = 0.09.6

relevant rc.xml snippets:

<application name="tilda-desktop">
      <focus>no</focus>
      <layer>below</layer>
      <desktop>All</desktop>
      <skip_taskbar>yes</skip_taskbar>
      <skip_pager>yes</skip_pager>
      <decor>no</decor>
</application>

    <keybind key="W-d">
      <action name="ToggleShowDesktop"/>
      <action name="Execute">
<command>bash /home/paul/show-tilda-desktop.sh &</command>
  </action>
    </keybind>
    <keybind key="W-A-F5">
<action name="Execute">
<command>bash /home/paul/show-tilda-desktop.sh &</command>
  </action>
    </keybind>

show-tilda-desktop.sh:

#!/bin/bash

sleep 15s
echo -e "woke up..." > /tmp/show.log
xdotool search --classname Tilda >> /tmp/show.log
echo -e "running..." >> /tmp/show.log
xdotool search --classname Tilda | awk 'BEGIN { RS = " "; FS = "\n" }
{print $2}' | xargs -l1 xdotool windowmap
echo -e "$?" >> /tmp/show.log



Is there something obvious that I'm missing, say about the context Execute
runs <command>s?

Cheers,
-p
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/openbox/attachments/20150228/8524f557/attachment.html>


More information about the openbox mailing list