I have a keybinding for ToggleShowDesktop. When I press Menu, all windows get minimized and I see my Desktop Wallpaper (as expected):
<keybind key="Menu">
<action name="ToggleShowDesktop"/>
</keybind>
Now the problem is, I don't want to see my wallpaper. I am using terminator as my wallpaper, i.e. when I start terminator, it is placed on the layer below:
<application name="terminator">
<focus>yes</focus>
<layer>below</layer>
<desktop>1</desktop>
<position>
<y>0</y>
<x>0</x>
</position>
<skip_taskbar>yes</skip_taskbar>
<maximized>true</maximized>
</application>
Is it possible to configure ToggleShowDesktop so that it leaves the "below" layer unaffected? i.e. I want only the normal windows to be minimized, but not terminator. In other words, I want terminator to behave as normal wallpaper would - be unaffected by ToggleShowDesktop.
I am using Debian Wheezy with LXDE.
(using method suggested by @Suchipi):
I have left out few details from my original question, and now these details seem to be relevant after all:
My setup has 2 monitors and 4 virtual desktops. So I have "8 wallpapers" to fill with terminator. From what I have read previously, I assumed that these 8 windows will have to be distinguishable, so I have created 8 symliks to terminator, .i.e.:
/usr/bin/terminator-wallpaper-1a -> terminator
/usr/bin/terminator-wallpaper-1b -> terminator
/usr/bin/terminator-wallpaper-2a -> terminator
...
In effect created 8 different applications (with different names).
Similarly, in .config/openbox/lxde-rc.xml I have not 1, but 8 definitions:
<application name="terminator-wallpaper-1a">
<desktop>1</desktop>
<position>
<monitor>1</monitor>
</position>
...
</application>
<application name="terminator-wallpaper-1b">
<desktop>1</desktop>
<position>
<monitor>2</monitor>
</position>
...
</application>
<application name="terminator-wallpaper-2a">
<desktop>2</desktop>
<position>
<monitor>1</monitor>
</position>
...
</application>
And lastly, in /.config/autostart I have 8 *.desktop files, to be started automatically after login:
/.config/autostar/terminator-wallpaper-1a.desktop
/.config/autostar/terminator-wallpaper-1b.desktop
/.config/autostar/terminator-wallpaper-2a.desktop
This seems to me quiete overcomplicated and inelegant, but I didn't see any better way to do it.
Now, when I follow the instructions from @Suchipi, the following happens:
1) the part with devilspie works OK. It turns out, I need only one definition which covers all my 8 windows (substituting matches for is):
$ cat .devilspie/terminator.ds
(if
(matches (application_name) "terminator-wallpaper")
(begin
(wintype "desktop")
)
)
And I can see with obxprop that it works as expected.
$ obxprop | egrep '(_OB_APP|_NET_WM_WINDOW_TYPE)'
_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_TITLE(UTF8_STRING) = "None"
_OB_APP_CLASS(UTF8_STRING) = "Terminator-wallpaper-1"
_OB_APP_NAME(UTF8_STRING) = "terminator-wallpaper-1"
_OB_APP_ROLE(UTF8_STRING) =
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DESKTOP
2) now the part with xdotool is more tricky:
first of all, using 100% for the resolution does not work, i.e. the window disappears (I don't see it). When using static:
xdotool search --class "Terminator-wallpaper-1a" windowunmap --sync windowmap windowsize %1 1920 1056
this works for desktop 1 monitor 1. But when I run it for other desktops, it has no effect, i.e.:
xdotool search --class "Terminator-wallpaper-2a" windowunmap --sync windowmap windowsize %1 1920 1056
Actually, it works for other desktops as well, but only if I run the xdotool command on the specific desktop, which I want to affect. i.e. I have to switch to desktop 2 and run xdotool search --class "Terminator-wallpaper-2a" and then it works.
Also, I was wondering whether the windowsize %1 plays any role here.
UPDATE 2019-12-07:
so, I am now trying to set up same system on Debian Buster (Openbox 3.6) and I am experiencing a new problem. I suspect some property has changed in new version of openbox.
Everything seems to as before, ie:
terminator-wallpaper-1a --profile wallpaper -b &
terminator-wallpaper-1b --profile wallpaper -b &
xdotool search --class 'Terminator-wallpaper-1a' windowunmap --sync windowmap windowsize %1 1920 1180
xdotool search --class 'Terminator-wallpaper-1b' windowunmap --sync windowmap windowsize %1 1920 1180
I get two terminals as wallpaper. But the problem is, only one of these terminals is actually usable. The other is "unfocused" and even when I click on it with mouse, I cannot bring it into focus. Ie, I can see the terminal, but I cannot type in it.
This problem did nor exist before, in older Openbox version
How can I fix this problem ?