need help with persistent icewm wallpaper

Forum: Window Mangers
Topic: need help with persistent icewm wallpaper
started by: bwh1969

Posted by bwh1969 on June 27 2007,23:20
I can't seem to get my wallpaper to be persistent in icewm.  I can change it with Desktop-->Wallpaper-->item from list.

I am sure it is a quick fix, but I just don't know what to edit.


Posted by lucky13 on June 27 2007,23:22
Are you using wallpaper.lua and selecting "install" after you've selected whatever wallpaper?
Posted by bwh1969 on June 27 2007,23:34
I just selected the wallpaper that was already there from the liquidglass theme that loads.  Can I use one that already is there or do I have to "Install" one that isn't there in order for it to "stay" on reboot?
Posted by mikshaw on June 28 2007,01:21
The wallpaper application persists only for fluxbox and jwm.
If you want a background to remain for icewm or any other window manager, you have to set it from .xinitrc or from the window manager's startup script if it has one. Some window managers set the background after starting, overriding what you may have done in .xinitrc.

In the case of IceWM specifically, each theme has its own background, so you may need to copy your chosen theme to /home/dsl/.icewm/themes and modify it.

Posted by bwh1969 on June 28 2007,12:40
If I wanted to add/change a wallpaper in icewm but keep the rest of the theme, say using "liquidglass.jpg,"  what should the line look like and where should I put it?  I can figure out the path part, as I know where the file "liquidglass.jpg" resides but I want to make sure the syntax is correct.  I could also just copy and rename to "liquidglass.jpg" to the name of the file my icewm theme calls for.  Would this work.  I don't want to do something and not have my window manager start:-)

Everyone replying seems very knowledgeable, so maybe you can also help me with this kind of related persistency thing:

I added exec xscreensaver $ to one of the files (I can't remember and I am not at home using my computer right now, but alphabetically, it is the last ".x" configuration file in my home/dsl directory, the one modified for XFree86) and the xscreensaver daemon still does not start on load.  I found this suggestion in a different forum.

The reason I am needing to try this: after getting xfree86 to work (using it because the "out of box" configuration tools could not run my monitor at 1280x1024), my screen would not blank automatically like it did with the out of box configuration of my screen/monitor.  If anyone knows how to get this to happen again using xfree86 and by NOT using xscreensaver, that would be great. I don't really need screensavers, and would rather my monitor just shut off.

I have added a line in my xfree86config-4 file under the monitor section option "DPMS", but this only allowed xcreensaver, once opened and the daemon started from there, to shut off the monitor after my set time.

I have an athalon xp 2.1 GHz with 2 MB of ram, so I run other os's with decent speed.  I just like DSL... it is kind of like having an odd child:-)  Lots of work, but seems strangely rewarding.

Posted by lucky13 on June 28 2007,15:12
bsetbg [path]

So if your foo.png background is in ~/.fluxbox/backgrounds, you would have a line in .xinitrc like this:

bsetbg /home/dsl/.fluxbox/backgrounds/foo.png &

You can check the man page for bsetbg using Google if you need to try some of its options for your huge monitor.

As far as xscreensaver, I have a line like this in my .xinitrc (hope you meant the ampersand instead of dollar sign):
xscreensaver -nosplash &

Edit: I don't think DSL is any more work than other distros. Some run everything behind pretty coatings. There's maybe a little more tweaking involved with DSL to get it working for certain hardware configurations, but changing wallpaper and setting up a screensaver isn't particularly troublesome.

Posted by mikshaw on June 28 2007,15:29
Hmm, unfortunately, that directory does not exist in /home/dsl.  The themes directory is loaded into opt/icewm/share/themes and files there can't be seem to be "edited" even from root.  I understand why, so i guess for me to add a line to the theme file in the desired theme would be impossible.
Please don't send me PMs with technical questions. I won't answer them. In this case the thread is already here and I'm already posting to it, so I'm making an exception.

The directory does not exist in /home/dsl because you haven't created it yet. Use the command "mkdir -p /home/dsl/.icewm/themes" to create it (the -p option also creates .icewm if it doesn't already exist). After that, copy the directory of your desired theme from /opt/icewm/themes to /home/dsl/.icewm/themes. Then copy the image you like into that theme's directory. You could either replace the existing background image (if one exists), or just change the filename listed in default.theme.
For example, if the file says:
either name your liquidglass.jpg to background.jpg or change the line in default.theme to:
I think you could also use a full path to liquidglass.jpg if the file already exists elsewhere on your system and you don't want to have duplicate files, but I haven't tried it.

I'm going to assume that "exec xscreensaver $" is *not* the actual command you used. It was most likely "exec xscreensaver &".  In any case, there are at least a couple of possible reasons for failure.
The command has to be somewhere above the part of the script that starts the window manager, or it won't start when you want it to. If you add it to the end of the script, the window manager will run, and when you close the window manager xscreensaver will then try to run.
Since the command has to run before the window manager, you must remove the "exec" part. If exec is there, the script runs xscreensaver as a replacement to itself, and never gets to the part where it runs the window manager.
It could be that neither of these relate to your problem, but we won't know until you post exactly what file you edited, the exact command used, and where the command was added.

EDIT: lucky13, if an IceWM theme sets a background image, setting it in .xinitrc won't help. It's the same as with Fluxbox, which also can overwrite a previously set root window.

Posted by bwh1969 on June 28 2007,15:59
Thanks, and I won't PM:-)  I usually run Kubunty 7.04, so in that regards, the graphical format of changing settings is "easier."  DSL is better if I can get it to run because it is so "thrifty" on resources.

.xinitrc file.  I added the xscreensaver -nosplash & to the top.  I stuck bsetbg /home/dsl/.fluxbox/backgrounds/glass.jpg at the end, logged out and then in and the wallpaper is there now.  Also, when I start xscreensaver from the menu, it no longer tells me that daemon is not started, so I assume it is started.  I am putting my file here so that it might help others:

# put X windows programs that you want started here.
# Be sure to add at the end of each command the &

KEYTABLE="$(getknoppixparam.lua KEYTABLE)"
DESKTOP="$(getoption.lua $HOME/.desktop wm)"
ICONS="$(getoption.lua $HOME/.desktop icons)"
xscreensaver -nosplash &
umix -lf .umix 2>/dev/null

# For non-US Keyboards
if [ ${KEYTABLE:0:2} != "us" ]; then
 xmodmap -e "clear Mod4" -e "add Mod5 = Mode_switch" &

#if egrep -qv noicons /proc/cmdline 2>/dev/null; then
if [ "$ICONS" == 1 ]; then
 for x in `ls -1 .xtdesktop/*.hide 2>/dev/null`; do rm -f ${x%.*}; done
 iconsnap.lua &>/dev/null &
dillo /usr/share/doc/dsl/getting_started.html &>/dev/null &
torsmo 2>/dev/null &
case $DESKTOP in
 fluxbox )
   fluxter &>/dev/null &
   wmswallow -geometry 70x80 docked  docked.lua &
   exec fluxbox 2>/dev/null  
 jwm )
   sleep 2
   exec jwm 2>/dev/null
 exec /opt/icewm/starticewm 2>/dev/null
 * )
   exec fluxbox 2>/dev/null

bsetbg /home/dsl/.fluxbox/backgrounds/glass.jpg

Posted by roberts on June 28 2007,16:15
icewm is not a DSL application. It is a MyDSL extension.
This topic has been moved to the Window Manager MyDSL extension area.
Posted by lucky13 on June 28 2007,20:02
when I start xscreensaver from the menu, it no longer tells me that daemon is not started, so I assume it is started.

Adding -nosplash runs it without the pop up. Leave it be for however long you've set your time out and you'll see that it works.

Powered by Ikonboard 3.1.2a
Ikonboard © 2001 Jarvis Entertainment Group, Inc.