Common problems

Attempt to put segment in horiz list twice

This is caused by a bug in some old versions of librsvg (or similar) which fails to cope with some SVG images.

Either don't use SVG or upgrade to a fixed version of the library.

(anyone know which versions are affected?)

GtkTextSearchFlags is not an enum type

Various people have reported this error

** (0launch-gui:3347): WARNING **: `GtkTextSearchFlags' is not an enum type

This is not a bug in ROX; it affects all programs using PyGTK.

Upgrading your pygtk (or gnome-python) package should solve it. Also check that you don't have an old version of pygtk installed in /usr/local.

It appears that the bug was fixed in the PyGTK 2.2.x series.

I use blackbox/fluxbox and the root menus don't work properly anymore

These window managers don't support the Extended Window Manager Hints specification yet, although they hope to in future releases. In the meantime, turn on the 'Pass all backdrop mouse clicks to window manager' and 'Blackbox root menus hack' options in the Options box (Compatibility section).

ImportError: No module named gtk

Many of the ROX applications are written in Python. They require the Python PyGTK library in order to use the GTK toolkit (which provides windows, buttons and menus, etc, for programs). If it is not installed correctly, you may see:

ImportError: No module named gtk

PyGTK installation hints

Most Linux distributions include packages for PyGTK (the python-gtk2 package on Debian, for example), so check your distribution CDs for a copy first. Otherwise, the pygtk.org web-site has more information.

Warnings compiling pygtk: Warnings are printed for each C function that pygtk doesn't support. You can safely ignore these messages. Some modules (such as libgl and libglade) are only built if present. None of the ROX applications use them at present, so you can ignore these messages too! Finally, if you get an error about your version of automake, try just running make again...

Python2.2 or later must be the default version: if you must keep an older version as the default, you'll have to edit the first line of each application's AppRun file, changing 'python' to 'python2.2'.

PyGTK not found after installing: On some systems, you may need to use the --prefix argument to configure to ensure that pygtk gets installed to the same prefix as python (either /usr or /usr/local).

AttributeError: 'module' object has no attribute 'Window' PyGTK is not installed correctly. Try reinstalling. For more details, see this rox-users thread: http://thread.gmane.org/gmane.comp.desktop.rox.user/6672

For more help with PyGTK, please see the PyGTK mailing list or the PyGTK FAQ.

Testing your PyGTK installation

To test your installation, try running Python manually from a terminal emulator (xterm, gnome-terminal or similar) and importing gtk yourself, as follows:

$ python
Python 2.3.5 (#2, Jun 19 2005, 13:28:00) 
[GCC 3.3.6 (Debian 1:3.3.6-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygtk; pygtk.require('2.0')
>>> import gtk
>>> gtk.Window
<type 'gtk.Window'>
>>> 

If you get errors while doing this, then there is a problem with your installation that is not related to ROX; please ask your distribution for help.

Python programs segfault opening their options boxes

This is due to an expat version mismatch. See: httpPython bug #1075984 | httprox-devel thread

Kerofin writes:

I've looked at the program that was dumping core and the sequence is this:
1) Program imports pygtk, which links in the GTK libraries
2) Program loads SVG image which links in librsvg.so which in turn links in /usr/local/lib/libexpat.so
3) Program imports pyexpat.
4) pyexpat calls XML_ErrorString, but as ld.so has already linked in XML_ErrorString from /usr/local/lib/libexpat.so it calls that version, not the one in pyexpat.so.
5) pyexpat looks up an error defined by the later version of expat it is expecting and gets a NULL pointer from the earlier version it has. It attempts to use it without checking (strlen) and dumps core.

Solution

Presumably, this can be fixed by upgrading to a later version of libexpat? If your system is affected, please add a comment giving the versions of Python and expat that are causing the problem, and whether upgrading helped.

ROX makes my memory card / USB drive read-only!

I have an .XLS file on a memory card, that when i open it via a left mouse click in ROX-Filer, opens in ooffice as read-only. However when I open it from the command line with "ooffice file.xls" it is not read-only.
There is a catch here though. If i open it with ROX-filer FIRST, before opening it command line, it will be read only. However if I open it with command line, and then ROX-Filer it is writable.

ROX never tries to make a filesystem read-only. However, if the kernel driver detects an error in the filesystem then it may remount it read-only to avoid further damage. Check the output of the dmesg command.

Threads:

ROX-Filer crashes with a BadWindow error during drag-and-drop operations

See:

ROX-Filer 2.3 and later contain a work-around for this GTK bug.

The pinboard only appears on one of my workspaces, or jumps in front of other windows!

Some older window managers don't fully support the Extended Window Manager Hints specification. In this case, you'll need to turn on the Override option in the Compatibility section of the Options box.

XFCE's root menu doesn't work anymore

The XFce root menu doesnt work with the pinboard, and 'Pass all backdrop mouse clicks to window manager' doesn't fix it.

XFce's root menu is part of the xfdesktop module, which creates a single large root window to set background image and create the root menu. ROX's pinboard also creates a large root window for desktop icons. These two compete.

However you can kill the xfdesktop and enable the ROX pinboard. When you do so the Xfce root menu will no longer work, but you will have desktop icons and the ROX-Filer menu by right clicking.

The Oroborus project has a Gtk+ 1.x application (on which xfdesktop is based) which doesn't create a large root window. It's called deskmenu, and provides a nice root menu without conflicting with the ROX pinboard.