Next: , Previous: Help wanted!, Up: Top



Appendix A Frequently asked questions

Last update: 10 June 2005

A.1 Compiling adesklets

A.1.1 The adesklets configure script says my Python install is too old, but it's not. What's the problem?

Some platforms (NetBSD, Ubuntu Linux, probably others too) sometimes alter the Python version, appending letters, prefixing minor numbers, etc., thus preventing the configuration script from detecting it properly. If you know for sure that what you have installed is at least 2.3.0, you can pass the --with-python-force-detection switch to configure; this will make the configuration script skip the version detection.

A.2 Starting desklets

A.2.1 When I try to start a new desklet, I get an ImportError: No module named adesklets error from the Python interpreter. What's happening?

It means what is written: python cannot find the adesklets package; maybe it did not get installed, or it did get installed in the wrong place.

A.2.2 When I try to start a new desklet, I get an ADESKLETSError: adesklets process exited error from the Python interpreter. What is this?

On some rare systems (archlinux for instance), the PATH variable for the Python interpreter differs from what is inherited from standard environment, which causes the Python package to fail to launch adesklets as a child process. On such systems, make sure to install adesklets using an appropriate --prefix switch at the configuration stage. For instance, on most recent Linux platforms, you should use:

     ./configure --prefix=/usr

A.2.3 Everything worked fine but then I tried upgrading a desklet, and I couldn't ever see the new one. What is wrong?

There is a built-in lock mechanism in the interpreter that prevents a user from simultaneously running more than one desklet with the same ID and name, regardless of version. Whenever you upgrade a given desklet, you should first cleanly quit the desklet (by using Quit from the context menu), then install the updated desklet by following the instructions provided in the README file.

A.2.4 Gosh! The desklet X is working, but does not remember its settings, or it always starts on the top left corner of screen 0 on a new X session. What is that? It sucks!

This is most probably related to the way you started the desklet (Please see Using adesklets.). You need to invoke the desklet script only once. Afterwards you just need to run the command:

     adesklets

and it will remember where you placed your desklets and which desklets you had running.

A.2.5 This is exactly what I did, but the darn thing wouldn't restart anyway.

Did you store the desklets under a $HOME/.adesklets directory? Please don't. adesklets need a $HOME/.adesklets file to store the various user settings on running desklets; setting up a directory of the same name prevents it from doing its job right, so just move your directory some place else ($HOME/.desklets, for instance).

A.3 Displaying desklets

A.3.1 Where are my desklets? adesklets interpreters seem to be running fine, but I just cannot see anything on my desktop!

Try the command:

     python test/test.py

from the base source directory. If a 100x100 window appears, it most probably means you are using a window manager that draws a big window over the root window; your desklets are just drawn below it. Such window managers include Nautilus, KDE, Xfce4, CDE or E17. Right now, Nautilus, KDE and Xfce4 are handled automatically, but others are not.

All the necessary infrastructure is already in place. In most cases, only the xwindow_get_root_window() function from src/xwindow.c has to be expanded to detect new window managers. You can either submit a patch, or ask for it on the adesklets development mailing list .

A.3.2 I cannot see smaller desklets such as xmms_bar or asimpleclock, while others work. What gives?

New desklets are always started in the leftmost, upper corner of the screen, at the very bottom of the windows stack. Make sure you do not have some elements (gnomebar, engage, etc) already masking this zone of the screen. Beware! Some applications use pseudo-transparency, and can mask the root window seamlessly.

A.3.3 I am running Fvwm as my window manager. Why can't I keep the desklets below all my other windows? They keep popping on top!

Go see the Fvwm faq: http://www.fvwm.org/documentation/faq/#5.11. This BugOpts RaiseOverUnmanaged on option was reported to work for many Fvwm users.

A.4 Running desklets

A.4.1 The 'Configure' item from the context menu of many desklets doesn't work!

For this to work–at least for all the demo desklets–you need to have xterm installed, and the EDITOR variable properly set in your environment, as it is customary in UNIX. Please note this only launches a text editor in a terminal. Editing the desklet's configuration file (usually config.txt from base desklet directory) has the same effect.

A.4.2 Do you plan including SVG support? I would like to use a SVG image in one of my desklets.

No we do not, sorry. It is not that SVG is a bad format; in fact it is quite good. But it is also a vector-oriented one (and rather complex), while Imlib2, on which adesklets relies heavily, is completely raster-oriented, and using Imlib2 is the main reason for adesklets' simplicity, relatively good speed and low resource usage.

That said, there is no reason for you not using SVG's with desklets, since it is quite easy to convert images in SVG to high quality PNG's, using programs such as sodipodi , inkscape or xsvg . In a directory full of SVG's, on a GNU system you can use a command such as:

     ls *.svg | sed 's/\(.*\).svg/-z --file=& --export-png=\1.png --export-width=128 --export-height=128/' | xargs --max-lines=1 sodipodi

to convert them all to 128x128 semi-transparent PNG's.

A.4.3 I would like to use some of my system's fonts with adesklets, but I cannot get my desklets to find them. What should I do?

First, you need to have fontconfig support enabled in adesklets. See the config.log from the configuration phase to verify it. If you did not keep the log, you can also look at the dynamic libraries linked against the interpreter. On a system with GNU binutils, you can do something like:

     ldd `which adesklets` | grep fontconfig

If you get output similar to:

      libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x45c75000)

it means everything is fine. Otherwise, you should recompile adesklets from source. From there, you can use the line:

     echo 'list_font_path' | adesklets :

to see all the font directories that adesklets will into look for TrueType fonts. Consult your fontconfig documentation to learn how to change this (on up-to-date systems, man 5 fonts-conf is a good starting point). Similarily:

     echo 'list_fonts' | adesklets :

Will give you all the fonts that are currently found... Keep in mind when typing them that font names are case-sensitive.

Alternatively, if you just cannot get fontconfig to work, a way to get around the problem would be to create symbolic links to the fonts you want to use inside any absolute font paths listed by the command echo 'list_font_path' ... above.