Search code examples
linuxwidgetx11xlibxt

How to remove borders of widgets in an x window program using x resource?


I would like to change the ugly default looking of gv's GUI. I used editres to get the x resource tree of gv and tried to remove borders of buttons using the following settings:

GV.control.MButton.borderWidth: 0
GV.control.MButton.borderColor: white

None of them works. Later on I figured out the relevant resource might be:

GV.control.MButton.unsetFrameStyle: sunken/raised/ledged

The 3 options sunken, raised, ledged do change the style of the frame. But I cannot find an option that makes the frame a simple line or just disappear.

Seems gv is based on Xaw3d (I am not sure). I don't know whether these resources are provided by Xlib, Xt, Xaw or just by gv itself. It is unlikely that they are gv specific. If they are provided by Xlib, Xt or Xaw, I could change lookings of similar x window programs the same way once I found the right resources and options to set.

So my question would be how to find the right x resources and options to remove borders of an x widget?

PS: editres provides only the resource list but not the options list. appres and listres show a very short list of resource settings if I use them for gv.


Solution

  • The following settings remove 3D effect

    GV.control.MButton.bottomShadowContrast: 0
    GV.control.MButton.topShadowContrast: 0
    

    The following setting changes the shadow width

    GV.control.MButton.shadowWidth: 1
    

    1 is the smallest value it takes. 0 does not work. Now there is only a thin line left. Not exactly what I want, but better than nothing.

    I figured it out by randomly changing resources inside editres. It would be nice if someone could provide links to relevant documentations.