pWidgets 2.5.8

Window managers, icon programs, widgets, etc.
Message
Author
User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#211 Post by trio »

@micko:

Don't bother to take a look again! It's useless when I come to think of it again. func is only executed when tree widgets is formed, that is when the user choose which widget/s he wants to use.....from GUI (start menu - desktop - pwidgets)

We have to think about how to make func create a certain command to be included in the pwidgets-exec file

I'll have a look there.....

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#212 Post by trio »

@micko:

Don't bother to take a look again! It's useless when I come to think of it again. func is only executed when tree widgets is formed, that is when the user choose which widget/s he wants to use.....from GUI (start menu - desktop - pwidgets)

We have to think about how to make func create a certain command to be included in the pwidgets-exec file

I'll have a look there..... :lol:

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#213 Post by MU »

I did not follow you completely, but I think the attached utility might help you.
Copy the file xmovewindowbyclassname to /usr/local/bin/.
Compile it by typing "make", if it does not run.

Usage:
xmovewindowbyclassname xonclock 100 200

This should move xonclock to the desired position.

Note: it does not check the title of an application, but the classname, as this is the only thing xonclock provides for identification.
The classname of a program can be found with "xprop".

Did not check it in JWM, but in icewm and emerald it works.

By the way: the newest xonclock can be moved with the mouse, I think older versions could not.

Mark
Attachments
xmovewindowbyclassname.tar.gz
(3.41 KiB) Downloaded 439 times
Last edited by MU on Tue 20 Jan 2009, 11:05, edited 1 time in total.
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#214 Post by trio »

@MU:

Actually what xonclock needs is raise its window to normal/desktop layer. But, I think we could use your script when the no-winredirect flag is true in xonclockrc, set the icewm winoptions, and put the xmovewindowbyclassname xonclock xpost ypost in the pwidgets-exec file.

This could be an alternative for my script of mouse clicking on the clock.

Thanks MU

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#215 Post by trio »

Hi MU & Micko & Zigbert:

I am right, this is an alternative way of xonclock wake up call. I tested in Icewm, haven't test in jwm below are what to do:

1. download and copy MU xmovewindowbyclassname to usr/local/bin and I also symlink to usr/sbin

2. in root/.xonclockrc: no-winredirect = true

3. in root/.icewm/winoptions:
#xonclock
xonclock.ignoreTaskBar: 1
xonclock.allWorkspaces: 1
xonclock.dTitleBar: 0
xonclock.dBorder: 0
xonclock.dSysMenu: 0
xonclock.dResize: 0
xonclock.dClose: 0
xonclock.dMinimize: 0
xonclock.dMaximize: 0
xonclock.ignoreNoFocusHint: 1
xonclock.layer: Normal

Note: please notice that I don't put xonclock.geometry

4. I edited usr/local/pwidgets/func

replace existing lines with this part just after . "$APPDIR"/box_splash &

X_PIXELS=`xrandr -q | grep '*' | egrep "[0-9]+[ ]*x[ ]*[0-9]+" -o | cut -d "x" -f 1`
#read config
. $HOME/.pwidgets/pwidgetsrc
[ ! "$OFFSET_Y" ] && export OFFSET_Y=30
[ ! "$WIDGETS_POSITION" ] && export WIDGETS_POSITION=right
if [ "$WIDGETS_POSITION" = "left" ]; then
POS_XONCLOCK=TOP-LEFT
POS_CONKY=top_left
X_WIDTH=0
OFFSET_X_A=`grep OFFSET_X= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`
OFFSET_X=$[$OFFSET_X_A+0]
else
POS_XONCLOCK=TOP-RIGHT
POS_CONKY=top_right
X_WIDTH=$[$X_PIXELS-140]
OFFSET_X_A=`grep OFFSET_X= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`
OFFSET_X=$[$OFFSET_X_A-40]
fi
#build exec-file
echo -e "\c" > $HOME/.pwidgets/tmp/pwidgets-exec
while read TREE_WIDGET; do

HEIGHT="`grep HEIGHT= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`"
case "$TREE_WIDGET" in
"Clock-analog")

IMAGE="`grep IMAGE= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`"
echo "xonclock --position=$POS_XONCLOCK --offset-v=$OFFSET_Y --offset-h=$OFFSET_X --use-background --skin=$IMAGE &" >> $HOME/.pwidgets/tmp/pwidgets-exec
echo "sleep 5 ; xmovewindowbyclassname xonclock $[$X_WIDTH+$OFFSET_X] $OFFSET_Y" >> $HOME/.pwidgets/tmp/pwidgets-exec
;;
"Slideshow")
. $HOME/.pwidgets/configs/Slideshow
#calculate X_POS when widgets are listed at right
if [ $WIDGETS_POSITION = right ]; then
X_PIXELS=`xrandr -q | grep '*' | egrep "[0-9]+[ ]*x[ ]*[0-9]+" -o | cut -d "x" -f 1`
X_POS=$[$X_PIXELS-$OFFSET_X-140] #frame
X_POS2=$[$X_PIXELS-$OFFSET_X-133] #picture
else
X_POS=$[$OFFSET_X-20] #frame
X_POS2=$[$OFFSET_X+7-20] #picture
fi
SCALED_DIR=$HOME/.pwidgets/misc/scaledimages
mkdir $SCALED_DIR 2> /dev/null
rm -f $SCALED_DIR/* 2> /dev/null
touch $SCALED_DIR/01.jpg
#frame
echo "xli -geometry +$X_POS+$OFFSET_Y $HOME/.pwidgets/misc/frame.jpg &" >> $HOME/.pwidgets/tmp/pwidgets-exec
#build scaled images in a temporary storage
echo "scale2pics \"$IMAGE_DIRECTORY\" $SCALED_DIR 126 95 85 jpg" >> $HOME/.pwidgets/tmp/pwidgets-exec
#The actual slideshow
TMP=$[$OFFSET_Y+7]
echo "xli -geometry +$X_POS2+$TMP -delay $DELAY -goto $SCALED_DIR/01.jpg $SCALED_DIR/*.jpg &" >> $HOME/.pwidgets/tmp/pwidgets-exec
;;
*)
OFFSET_X=`grep OFFSET_X= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`
echo "conky -a $POS_CONKY -x $OFFSET_X -y $OFFSET_Y --config=$HOME/.pwidgets/configs/$TREE_WIDGET &" >> $HOME/.pwidgets/tmp/pwidgets-exec
;;

ended before these lines:
esac
OFFSET_Y=$[$OFFSET_Y+$HEIGHT]
done < $HOME/.pwidgets/tmp/pwidgets_list


5. So func file will generate root/.pwidgets/pwidgets-exec file like below:

xonclock --position=TOP-LEFT --offset-v=40 --offset-h=40 --use-background --skin=/root/.pwidgets/misc/Clock-analog.png &
sleep 5 ; xmovewindowbyclassname xonclock 40 40
xli -geometry +40+195 /root/.pwidgets/misc/frame.jpg &
scale2pics "/usr/share/backgrounds" /root/.pwidgets/misc/scaledimages 126 95 85 jpg
xli -geometry +47+202 -delay 5 -goto /root/.pwidgets/misc/scaledimages/01.jpg /root/.pwidgets/misc/scaledimages/*.jpg &
conky -a top_left -x 40 -y 320 --config=/root/.pwidgets/configs/Calender &


IMPORTANT:- ONLY USE XONCLOCK SKIN OF 140x140 pixels
- ONLY USE WALLPAPER THAT IS THE CORRECT SIZE OF YOUR SREEN

Thank you all, now somebody please test in JWM, and also Zigbert now can consider 2 alternatives:
1. mouse clicking on the xonclock with xevent
2. xmovewindowbyclassname

Thank you

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#216 Post by 01micko »

trio

Do you use geany for text editing? If so, it tells you what line you are on in the bottom left hand corner. This is just to make things faster and simpler.

I'll check it out and we could be on a winner!

Thanks for your good work!

Mick
Puppy Linux Blog - contact me for access

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#217 Post by MU »

as trio showed, the layer can be set in the icewm options.

If you need a different solution, e.g. for other windowmanagers, please let me know.
I could modify xmovewindowbyclassname to set a pogram to a certain layer.

Layers are defined by "type hints".
These hints are usually available in most windowmanagers:
http://library.gnome.org/devel/gdk/stab ... owTypeHint

Mark
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#218 Post by 01micko »

MU wrote:as trio showed, the layer can be set in the icewm options.

If you need a different solution, e.g. for other windowmanagers, please let me know.
I could modify xmovewindowbyclassname to set a pogram to a certain layer.

Layers are defined by "type hints".
These hints are usually available in most windowmanagers:
http://library.gnome.org/devel/gdk/stab ... owTypeHint

Mark
The idea is to please Icewm and Jwm. Zigbert designed Pwidgets with Jwm in mind but many of us have tested and resolved issues in Icewm. This is because both WMs are to be included in Puppy4.2-'DeepThought'. Any help with Jwm wil be appreciated, Thanks Mark.

Mick
Puppy Linux Blog - contact me for access

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#219 Post by trio »

updated, last one was buggy, this one is ok:

replace from line 15 to 74 with below lines:

X_PIXELS=`xrandr -q | grep '*' | egrep "[0-9]+[ ]*x[ ]*[0-9]+" -o | cut -d "x" -f 1`
#read config
. $HOME/.pwidgets/pwidgetsrc
[ ! "$OFFSET_Y" ] && export OFFSET_Y=30
[ ! "$WIDGETS_POSITION" ] && export WIDGETS_POSITION=right
if [ "$WIDGETS_POSITION" = "left" ]; then
POS_XONCLOCK=TOP-LEFT
POS_CONKY=top_left
X_WIDTH=0
else
POS_XONCLOCK=TOP-RIGHT
POS_CONKY=top_right
X_WIDTH=$[$X_PIXELS-140]
fi
#build exec-file
echo -e "\c" > $HOME/.pwidgets/tmp/pwidgets-exec
while read TREE_WIDGET; do

HEIGHT="`grep HEIGHT= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`"
case "$TREE_WIDGET" in
"Clock-analog")
OFFSET_X=`grep OFFSET_X= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`
IMAGE="`grep IMAGE= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`"
echo "xonclock --position=$POS_XONCLOCK --offset-v=$OFFSET_Y --offset-h=$OFFSET_X --use-background --skin=$IMAGE &" >> $HOME/.pwidgets/tmp/pwidgets-exec
if [ "$POS_XONCLOCK" = "TOP_LEFT" ] ; then

echo "sleep 5 ; xmovewindowbyclassname xonclock $[$X_WIDTH+$OFFSET_X+40] $OFFSET_Y" >> $HOME/.pwidgets/tmp/pwidgets-exec

else
echo "sleep 5 ; xmovewindowbyclassname xonclock $[$X_WIDTH+$OFFSET_X] $OFFSET_Y" >> $HOME/.pwidgets/tmp/pwidgets-exec

fi
;;
"Slideshow")
. $HOME/.pwidgets/configs/Slideshow
#calculate X_POS when widgets are listed at right
if [ $WIDGETS_POSITION = right ]; then
X_PIXELS=`xrandr -q | grep '*' | egrep "[0-9]+[ ]*x[ ]*[0-9]+" -o | cut -d "x" -f 1`
X_POS=$[$X_PIXELS-$OFFSET_X-140] #frame
X_POS2=$[$X_PIXELS-$OFFSET_X-133] #picture
else
X_POS=$[$OFFSET_X-20] #frame
X_POS2=$[$OFFSET_X+7-20] #picture
fi
SCALED_DIR=$HOME/.pwidgets/misc/scaledimages
mkdir $SCALED_DIR 2> /dev/null
rm -f $SCALED_DIR/* 2> /dev/null
touch $SCALED_DIR/01.jpg
#frame
echo "xli -geometry +$X_POS+$OFFSET_Y $HOME/.pwidgets/misc/frame.jpg &" >> $HOME/.pwidgets/tmp/pwidgets-exec
#build scaled images in a temporary storage
echo "scale2pics \"$IMAGE_DIRECTORY\" $SCALED_DIR 126 95 85 jpg" >> $HOME/.pwidgets/tmp/pwidgets-exec
#The actual slideshow
TMP=$[$OFFSET_Y+7]
echo "xli -geometry +$X_POS2+$TMP -delay $DELAY -goto $SCALED_DIR/01.jpg $SCALED_DIR/*.jpg &" >> $HOME/.pwidgets/tmp/pwidgets-exec
;;
*)
OFFSET_X=`grep OFFSET_X= $HOME/.pwidgets/configs/$TREE_WIDGET | cut -d '=' -f 2`
echo "conky -a $POS_CONKY -x $OFFSET_X -y $OFFSET_Y --config=$HOME/.pwidgets/configs/$TREE_WIDGET &" >> $HOME/.pwidgets/tmp/pwidgets-exec
;;

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#220 Post by 01micko »

trio
I can't get it to work. It is very strange, something minor. I restart X and clock appears on left of screen but with the wallpaper of the right of screen! I got a fresh copy of .xonclockrc and changed nowindirect=true. I deleted all lines about xonclock in fixwidgets.

Did you test when you want to change widgets? Can't get that to work.

If you could learn to make a .pet it would be simpler. All you need is a directory in /root, name it 'clockfix' or whatever, inside you make the directories of the exact path where you want to install your files. So you have a tree in there. You make up you 'func' file, your pwidgetsexec file your fixwidgets file , whatever you need and place them in the exact folder where they belong inside your main folder (clockfix or whatever). Then from a terminal you type "dir2pet /root/clockfix" and then you follow the instructions. It is easy. Inform people of what risks there are in your pet, upload it here as an attachment and your done!
Technosaurus has a very valuable 'howto' on pet creation. It is linked in his signature. Read it if you get the time. It is very good.


My files are a mess at the moment because I've tested and changed and edited lots of things to do with Pwidgets and some other stuff, so this way, if it works for you then you can quickly debug why it doesn't work for me or him or that other bloke! Also. it gets a lot more people testing, BUT, one valuable lesson I've learned is always warn people that they try things at 'their own risk'. That way they can't abuse you too much!

Another good thing to do is have the pet and if you think it is risky, ask people if they want it, you can PM it to them.

Regards

Mick

PS: Please do not be discouraged. I know you are very close. "Teacher" will put you at the top of the class! :D
Puppy Linux Blog - contact me for access

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#221 Post by trio »

Micko, it works just fine.....did you remember to download MU's xmovewindowbyclassname and copy correctly? maybe you should follow MU's instruction above.

I repeat again the steps:

1. download and copy MU xmovewindowbyclassname to usr/local/bin and I also symlink to usr/sbin or if it doesn't work, please follow MU's instruction above

2. in root/.xonclockrc: no-winredirect = true

3. in root/.icewm/winoptions:
#xonclock
xonclock.ignoreTaskBar: 1
xonclock.allWorkspaces: 1
xonclock.dTitleBar: 0
xonclock.dBorder: 0
xonclock.dSysMenu: 0
xonclock.dResize: 0
xonclock.dClose: 0
xonclock.dMinimize: 0
xonclock.dMaximize: 0
xonclock.ignoreNoFocusHint: 1
xonclock.layer: Normal

Note: please notice that I don't put xonclock.geometry

4. Please download attached file (func.tar.gz) and extract to /usr/local/pwidgets/
(don't forget to back up your func file first)

5. So func file will generate root/.pwidgets/pwidgets-exec file like below:

xonclock --position=TOP-LEFT --offset-v=40 --offset-h=40 --use-background --skin=/root/.pwidgets/misc/Clock-analog.png &
sleep 5 ; xmovewindowbyclassname xonclock 40 40
xli -geometry +40+195 /root/.pwidgets/misc/frame.jpg &
scale2pics "/usr/share/backgrounds" /root/.pwidgets/misc/scaledimages 126 95 85 jpg
xli -geometry +47+202 -delay 5 -goto /root/.pwidgets/misc/scaledimages/01.jpg /root/.pwidgets/misc/scaledimages/*.jpg &
conky -a top_left -x 40 -y 320 --config=/root/.pwidgets/configs/Calender &


IMPORTANT:- ONLY USE XONCLOCK SKIN OF 140x140 pixels
- ONLY USE WALLPAPER THAT IS THE CORRECT SIZE OF YOUR SREEN

Thank you all, now somebody please test in JWM, and also Zigbert now can consider 2 alternatives:
1. mouse clicking on the xonclock with xevent
2. xmovewindowbyclassname

Thank you
Attachments
func.tar.gz
(2.44 KiB) Downloaded 437 times

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#222 Post by 01micko »

Yes trio,

Followed instructions. I'll test again tomorrow.

Cheers mate

Mick
Puppy Linux Blog - contact me for access

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#223 Post by trio »

sorry, have to upload new one...last one has error when put on top-left

by the way, Micko....I know your problem, it is the xmovewindowbyclassname is not working...

the xonclock will pop up anywhere on the screen with its correct background and then be put in the right place by MU's xmovewindowbyclassname

or another probability is you have not use the GUI (start menu - desktop - pwidgets), which will create the new pwidgets-exec file.....thst includes xmovewindowbyclassname command

Try it....again :D

And MU:
Please do if you could hack the program to set window layer, it will, I think solve the problem of different wms.

Thanks, all
Attachments
func.tar.gz
pls use this one, sorry, I made mistakes...still new ......still trying...
(2.46 KiB) Downloaded 451 times
func.tar.gz
(2.44 KiB) Downloaded 422 times
Last edited by trio on Tue 20 Jan 2009, 15:32, edited 3 times in total.

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#224 Post by trio »

I don't have any puppy with JWM active, could anybody try with the same instructions, but only the part of editing icewm winoption, you edit .jwmrc instead


<Group>
<Class>xonclock</Class>
<Name>xonclock</Name>
<Option>noborder</Option>
<Option>notitle</Option>
<Option>layer:1</Option>
<Option>sticky</Option>
<Option>nolist</Option>
</Group>

Thanks all.......

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#225 Post by MU »

hm no, I have no solution for the hints at moment.
It seem, xonclock does not support most of them.
A patch of xonclock itself would be required.
I did not understand exactly the problem yet, may you explain it in other words, plesae?
Mark
[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#226 Post by trio »

Hi Mark,

I already hack Zigbert's func file to accomodate xmovewindowbyclassname, and it works fine.....

But the real problem is that without the help of wm, xonclock always hide (below layers) behind the wallpaper, in order to raise it, we have to mouse click on the wallpaper, or set the layer with the help of wm (no-winredirect=true on xonclockrc), or set the xonclock always ontop (top=true on xonclockrc) which is annoying because the clock covers any window opening up fully.

So if you could make the xmovewindowbyclassname plus xsetlayerwindowbyclassname, it will be wonderful, because we don't need the help of wm anymore.

With the hacked func file I made, we still dependant on wm to set layer, only to put the window on the right place is independant.

I hope that could explain clearly to you....

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#227 Post by trio »

Hi all,

Just a small hints:
when you put pwidgets on the right side, the widgets align properly, but when you put it on the left side, you may want to play around with each widgets config file (the x_offset) to align the widgets properly.

If zigbert wants to re-arrange all the widgets, so they will have let's say 40 of xoffset on the left or the right, then let me know so I also can change a parameter in func file to set the xonclock properly align with others. Tq

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

func update & slideshow start improved

#228 Post by trio »

Hello all, good news, I succeded in hacking func file again (sorry Zigbert, I hope you won't mind), so that:

1. like above it tells xonclock to pop up and be put in right place (w/ the help of xmovewindowbyclassname). Please read and do all above instructions also, but use the latest func file attached below.

2. this latest func file also make Slideshow will only generates scaledimages when it is chosen to be listed and applied from GUI (menu -- desktop -- pwidgets tiny edsktop apps) and never if pwidgets starts at puppy start up. please do below instructions:

a. in /root/.pwidgets/configs/Slideshow: please DO NOT put " " marks for image directory , so it should look like this ---> IMAGE_DIRECTORY=/usr/share/backgrounds
b. put the attached slide exec file that I made in ~/.pwidgets/scripts

that's all folks...please try at your own risk, do not forget to back up, (though I tested it and works fine) and have fun

ps: if anybody wants to make a pet out of new func, slide, and xmovewindowbyclassname ...please do and re-write all those instructions ......please do
Attachments
func_improved&slide.tar.gz
(2.54 KiB) Downloaded 543 times

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#229 Post by 01micko »

Did you do anything to 'fixwidgets'? The old clock fix is in there. (I just comment that bit out.)
Puppy Linux Blog - contact me for access

User avatar
trio
Posts: 2076
Joined: Sun 21 Dec 2008, 15:50
Location: अनà¥￾मोदना

#230 Post by trio »

off course, sorry.comment out/delete all the things about xevent..

Post Reply