7

I am on Debian, where firefox is called Iceweasel. I would like it to start undecorated. I have added the following to my .config/openbox/lxde-rc.xml, but it has no effect:

<application name="firefox-bin">
  <focus>yes</focus>
  <decor>no</decor>
  <maximized>true</maximized>
</application>

I have also tried different names, such as firefox, iceweasel, iceweasel-bin, but to no avail. Only when I add

<application name="*">

does iceweasel start undecorated (as do all other applications, obviously)

NOTE: I have the same problem with Icedove (Thunderbird)

UPDATE: as suggested by goldilocks, following is the output of ps -A | less

....
 9501 ?        00:18:40 iceweasel
14826 ?        00:00:21 icedove
....
3
  • Try ps -A | less while it's running and have a look through the list for the correct executable name.
    – goldilocks
    Dec 31, 2013 at 11:13
  • please see my update Dec 31, 2013 at 11:26
  • Ah, I think an issue here is the browser changes its name (WRT to the X server) to what you see in the title bar, which is the title of the loaded page. If it has a prefix like "Iceweasel -- " and you can match against that (Iceweasel*) great, otherwise you need some other characteristic. I notice there is a WM_WINDOW_ROLE(STRING) = "browser" in the xprop output.
    – goldilocks
    Dec 31, 2013 at 11:56

1 Answer 1

9

You can use xprop to find a suitable way to refer to windows. Open a terminal and the window of interest so that both are visible. In the terminal, run

xprop | grep "^_OB_APP"

Your mouse cursor changes appearance into crosshairs. Move the cursor over to the window of interest and click within that window. The cursor reverts to its regular appearance and output appears in the terminal window. For example, suppose you clicked on a Firefox browser window, you'd see:

_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_TITLE(UTF8_STRING) = "Mozilla Firefox"
_OB_APP_GROUP_CLASS(UTF8_STRING) = "Firefox"
_OB_APP_GROUP_NAME(UTF8_STRING) = "firefox"
_OB_APP_CLASS(UTF8_STRING) = "Firefox"
_OB_APP_NAME(UTF8_STRING) = "Navigator"
_OB_APP_ROLE(UTF8_STRING) = "browser"

You then use the appropriate string in your application rule. (Note that you can use xprop to also identify dialog windows to ensure that rules do or don't apply to them.)


I use:

<application role="browser">
  <maximized>true</maximized>
  <decor>no</decor>
</application>

to have all browsers open maximized and without decoration.

The other precaution to take is that the code is located appropriately. In other words, these lines should be in the "applications" section of rc.xml and should be within <applications> and </applications> and above the final line which should contain just </openbox_config>.


The other important thing is to run openbox --reconfigure to get the changes to be effected immediately. Running openbox --reconfigure also does a scan for xml errors and so is worth running after any edits to rc.xml.

4
  • +1 But my output doesn't include anything starting _OB -- the title is in WM_NAME(STRING).
    – goldilocks
    Dec 31, 2013 at 11:53
  • Is Openbox your window manager?
    – user15760
    Dec 31, 2013 at 11:54
  • No, Kwin. I guess that's the 'OB'. :)
    – goldilocks
    Dec 31, 2013 at 11:59
  • 2
    All works perfectly now. Thanks a lot. I had to use <application name="Navigator"> for firefox and <application name="Mail"> for Thunderbird Dec 31, 2013 at 12:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.