From: Matthew W. O. <wei...@gr...> - 2002-12-13 19:10:21
|
-- Thomas Leonard <ta...@ec...> wrote (on Friday, 13 December 2002, 12:27 PM +0000): > On Thu, Dec 12, 2002 at 02:47:00PM -0500, Matthew Weier OPhinney wrote: > [...] > > I realized Wallpaper existed... just hadn't thought of it as setting the > > backdrop. > > > > So, I downloaded this, as well as ROX-Lib2 and pygtk2, and got it up and > > running. Except that I can't seem to get it to grab an image via another > > command. > > > > I've been trying all sorts of options from ImageMagick's 'display' and > > 'montage' commands -- > > -window > > -backdrop > > and using | and > to either pipe or redirect the output > > and all result in an empty /tmp/imagename and Wallpaper halts, or no > > image is displayed. (Usually, display opens, but it opens as it normally > > would, and when it closes I then get the error message from Wallpaper.) > > Works for me. Try something like this: > > montage source.jpg png:- > Oh! Cool -- hadn't tried that! (to be honest, wasn't aware it was a possiblity) > > What I'm wondering... How does Wallpaper set the root image? > > SOAP message. You can't set the image directly, only the program used to > set the image (which the filer then runs). The reason is that the program > will need to be rerun the next time that pinboard is used (so you'd have > to modify the login sequence or mess with cron jobs anyway). > > So, you could just modify bsetbg to become the backdrop handler and it'll > all work. But there's not much point, since Wallpaper already does that. > Maybe you could even set bsetbg as the Wallpaper command, assuming it can > write to stdout? Ummmm... no; it doesn't write to stdout. It has an option, '-e' that has the syntax: bsetbg -e program [options] image but it expects the display image as the last argument -- thus, I can't write: bsetbg -e montage -background black -bordercolor black image.jpg jpg:- -- montage is expecting its last argument to be the output file, but bsetbg is expecting the last argument to be the display file. I can get around this to an extent by writing a perl script that bsetbg invokes that tosses the image to stdout... but this isn't optimal, as then if bsetbg is invoked by a blackbox style (aka theme), then the image goes nowhere. But this isn't really the issue. I'm thinking I need to explain what I'm trying to accomplish again, and some of my logic and thought on the issue: 1) I use blackbox a) blackbox prefers to utilize its native app 'bsetbg' to set the root window. i. bsetbg in turn simply calls an application specified by the user, setting the last argument to the image specified. For instance, if ImageMagick's 'display' is used: bsetbg filename would in turn call display -window root filename (assuming that the default action defined in the bsetbgrc is 'display -window root') ii. Utilizing bsetbg makes blackbox not depend on any other libraries -- the user sets the command based on his/her own environment. The user can choose which program best suits him/her based on what libraries they typically use and/or personal preference. For instance, on my machine, I've had coexisting at times the programs xview, display, Esetroot, and Xsetroot; at any point I could configure bsetbg to utilize any one of them to set the background image. b) blackbox styles (aka themes) usually contain a 'rootCommand' statement that invokes bsetbg to set the root window to a new image. 2) I use ROX-Filer to put icons on my desktop a) ROX-Filer takes over the root window b) When ROX-Filer takes over the root window, it also takes over display of the root window background/image c) Using another program to set the root window image/background causes ROX to behave... erratically, or to crash. Thus, 'tis better to have ROX handle the background. d) ROX-Filer utilizes SOAP to set the background. 3) If I install a new style (theme) while running ROX-Filer with a pinboard and forget to edit out the rootCommand configuration, I face the possibility of making my system unstable. 4) Based on the above, the solution that seems appropriate is to configure bsetbg to utilize ROX-Filer's SOAP interface to set the background image. Does this make sense? Is it possible? I've attempted to write an AppDir to set the backdrop (following the directions on the ROX website, and utilizing the example script there as well as Wallpaper's), but haven't had any luck yet. Is this something I should continue to pursue? Thanks for all the help so far! -- Matthew Weier O'Phinney ma...@we... |