[CLOSED]JWM Desktop Updates to V755(Release) and V910(Test)

Window managers, icon programs, widgets, etc.
Post Reply
Message
Author
scsijon
Posts: 1596
Joined: Thu 24 May 2007, 03:59
Location: the australian mallee
Contact:

#106 Post by scsijon »

@Karl, if you can give me enough info to document the problems after trying 733 to make sure their still there, I'll put them into joe's problem list, he's fixing them as he knows about them at present as he wants to put out a 'stable revision step' as soon as their all fixed and confirmed as fixed.

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#107 Post by Karl Godt »

Jon, look here for the tray :
After jwm -restart in v722 many tray swallow apps or tray apps that find their way into the tray themselves, don't show up in the tray, just empty spaces .
One problem is that tray apps that don't have a kill former my_pids , return or exit if already running, show up another time if put into .jwmrc-tray .

Puppy's freememapplet_xlib-404 has an odd codeline :

Code: Select all

system("kill `pidof freememapplet | grep ' ' | cut -f 2 -d ' '`");
which will kill always even if pidof is empty, thus polluting /tmp/xerrs.log
PLUS that my installation has got a freememappletshell wrapper that kills too without tests :D

Code: Select all

system("FREEMEMPIDS=`pidof freememapplet | grep ' ' |cut -f2- -d' '`;for PiD in $FREEMEMPIDS;do kill $PiD;done");
works for me :shock:

*

And what I found out :
my jwmrc-tray wrote:

Code: Select all

        <Swallow name="fbxkb">
            pidof fbxkb >/dev/null 2>/dev/null || fbxkb
        </Swallow>
        <Swallow name="absvolume">
            pidof absvolume >/dev/null 2>/dev/null || absvolume
        </Swallow>
        <Swallow name="retrovol">
            pidof retrovol >/dev/null 2>/dev/null || retrovol -hide
        </Swallow>
        <Swallow name="blinky">
            pidof blinkydelayed >/dev/null 2>/dev/null || blinkydelayed -bg "#4D525B"
        </Swallow>
        <Swallow name="asapm">
            pidof asapm >/dev/null 2>/dev/null || asapmshell -u 4
        </Swallow>
        <Swallow name="freememapplet" width="34">
            freememapplet
        </Swallow>
        <Swallow name="xload" width="32">
            xload -nolabel -fg red -hl white -bg "gray45"
        </Swallow>
Works quiet well on my side to prevent apps showing up multiple times if I do a jwm -restart .
Attachments
jwm-722-debug-tray-after-jwm--restart.jpg
(17.74 KiB) Downloaded 655 times
jwm-722-debug-tray-after-restartwm.jpg
(14.97 KiB) Downloaded 643 times
jwm-456-debug-tray-after-jwm--restart.jpg
(19.35 KiB) Downloaded 652 times
jwm-456-debug-tray-after-restartwm.jpg
(19.4 KiB) Downloaded 635 times

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#108 Post by Karl Godt »

About geany and suddenly appearing windows from other virtual screens :

This happens if I shadow / roll up geany to be able to scroll to the next screen, click a text file :

joewing
Posts: 25
Joined: Sun 24 Dec 2006, 20:43

#109 Post by joewing »

Karl,
Thanks for reporting the bug. I'm able to reproduce the virtual desktop issue and should have a fix shortly.
I'm not sure what the deal with the swallowed application issue is, is there a difference in the configuration that's causing that?

Please keep me informed of any bugs, I can't fix them unless I know about them (and, unless they're listed in issues on GitHub, I don't know about them).

- Joe

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#110 Post by Karl Godt »

Hi Joe !

I had configured jwm as

Code: Select all

./configure --enable-debug
and because of not being able to configure newer fribidi until now

Code: Select all

./configure --enable-debug --disable-fribidi
for versions >=634

I also don't do a make install but

Code: Select all

cp ./src/jwm ./src/jwm-VERSION-COMPILEOPTIONS
cp  ./src/jwm-VERSION-COMPILEOPTIONS /usr/bin
do a wmexit,

Code: Select all

ln -sf /usr/bin/jwm-VERSION-COMPILEOPTIONS /usr/bin/jwm
xwin
in the kernel console .

Problem is that tray applications started by .xinitrc ( /usr/sbin/delayedrun -> /root/Startup ) seems to be treated differently than if added to .jwmrc-tray ( ie some seem to load +1 times if jwm -restart ) .

The icons that show as empty space in the tray are mainly .png .
ldd on both versions shows libpng12.so.0 => /usr/lib/libpng12.so.0

722:
ldd `which jwm` |sort

Code: Select all

	libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb75a3000)
	libc.so.6 => /lib/libc.so.6 (0xb72c4000)
	libdl.so.2 => /lib/libdl.so.2 (0xb72b8000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb706f000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb745b000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb73fd000)
	libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb762f000)
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xb70c2000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb74b8000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7566000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7569000)
	libgsf-1.so.114 => /usr/lib/libgsf-1.so.114 (0xb7281000)
	libICE.so.6 => /usr/X11R7/lib/libICE.so.6 (0xb6fe1000)
	libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7498000)
	/lib/ld-linux.so.2 (0xb776b000)
	libm.so.6 => /lib/libm.so.6 (0xb760d000)
	libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7122000)
	libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7161000)
	libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb716b000)
	libpcre.so.0 => /usr/lib/libpcre.so.0 (0xb7040000)
	libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xb708b000)
	libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7675000)
	librsvg-2.so.2 => /usr/lib/librsvg-2.so.2 (0xb7645000)
	libSM.so.6 => /usr/X11R7/lib/libSM.so.6 (0xb6ff5000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xb7698000)
	libXau.so.6 => /usr/X11R7/lib/libXau.so.6 (0xb72c1000)
	libXdmcp.so.6 => /usr/X11R7/lib/libXdmcp.so.6 (0xb72bc000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xb73d5000)
	libXft.so.2 => /usr/lib/libXft.so.2 (0xb7489000)
	libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb73bf000)
	libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7194000)
	libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb73c2000)
	libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb73e1000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7481000)
	libXt.so.6 => /usr/X11R7/lib/libXt.so.6 (0xb6ffd000)
	libz.so.1 => /lib/libz.so.1 (0xb73ee000)
	linux-gate.so.1 =>  (0xb776a000)
ldd /usr/bin/jwm-456-debug |sort

Code: Select all

	libc.so.6 => /lib/libc.so.6 (0xb7412000)
	libdl.so.2 => /lib/libdl.so.2 (0xb7406000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb73c7000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb75b7000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7559000)
	libfribidi.so.0 => /usr/lib/libfribidi.so.0 (0xb753c000)
	libICE.so.6 => /usr/X11R7/lib/libICE.so.6 (0xb7369000)
	libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0xb75f4000)
	/lib/ld-linux.so.2 (0xb7725000)
	libm.so.6 => /lib/libm.so.6 (0xb73e3000)
	libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb762f000)
	libSM.so.6 => /usr/X11R7/lib/libSM.so.6 (0xb737d000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0xb7652000)
	libXau.so.6 => /usr/X11R7/lib/libXau.so.6 (0xb740f000)
	libXdmcp.so.6 => /usr/X11R7/lib/libXdmcp.so.6 (0xb740a000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0xb7523000)
	libXft.so.2 => /usr/lib/libXft.so.2 (0xb75e5000)
	libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb750d000)
	libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb7510000)
	libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb752f000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb75de000)
	libXt.so.6 => /usr/X11R7/lib/libXt.so.6 (0xb7384000)
	libz.so.1 => /lib/libz.so.1 (0xb754a000)
	linux-gate.so.1 =>  (0xb7724000)
J456=`ldd /usr/bin/jwm-456-debug |sed 's% (.*)%%'|sort`
J722=`ldd $(which jwm) |sed 's% (.*)%%'|sort`
echo "$J722" | grep -v "$J456"

Code: Select all

	libcairo.so.2 => /usr/lib/libcairo.so.2
	libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0
	libgsf-1.so.114 => /usr/lib/libgsf-1.so.114
	libjpeg.so.62 => /usr/lib/libjpeg.so.62
	libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0
	libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0
	libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0
	libpcre.so.0 => /usr/lib/libpcre.so.0
	libpixman-1.so.0 => /usr/lib/libpixman-1.so.0
	librsvg-2.so.2 => /usr/lib/librsvg-2.so.2
	libxml2.so.2 => /usr/lib/libxml2.so.2

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

#111 Post by L18L »

Karl Godt wrote:... because of not being able to configure newer fribidi until now

Code: Select all

./configure --enable-debug --disable-fribidi
for versions >=634...
Hi Karl,
if you got fribidi configured you will be another unsung heroe for the Arabic world see
http://sourceforge.net/tracker/index.ph ... tid=805416

But one thing after the other. No net huudle :D

joewing
Posts: 25
Joined: Sun 24 Dec 2006, 20:43

#112 Post by joewing »

About the Swallow thing, programs started via "Swallow" are treated differently than programs in .xinitrc in that JWM will always attempt to start programs in "Swallow" when starting (or restarting). JWM will also attempt to kill programs in "Swallow" when shutting down (or preparing to restart) assuming the program was successfully swallowed.

Programs started with .xinitrc will only be started when X starts. It's problematic if you expect such a program to be swallowed by JWM because because JWM won't swallow windows are visible when JWM starts (JWM tries to only swallow programs that it started with that explicit purpose). Of course, if the window wasn't visible when JWM started, a program started via .xinitrc could get swallowed accidentally. This is because JWM has no way of knowing that it wasn't responsible for starting the application that created that window.

Doing things like checking if the program is already running in the command for Swallow probably isn't a good idea since it will cause strange things to happen, like JWM not swallowing windows because they are already visible. Likewise, starting windows from .xinitrc that you expect JWM to swallow won't always work (though it might sometimes, depending on how long it takes the window to map). I don't think anything has changed with this version of JWM that should affect this, but it's very timing dependent.

Anyway, I think a problem that may present itself (perhaps this is the reason for the process checks in the configuration file?) is that a window doesn't map soon enough before JWM is restarted. When a window doesn't map before JWM is restarted, JWM will fail to close the window before exiting (because the window doesn't exist) and you end up with two copies of the application (one that gets swallowed). There is a delay built into JWM on restart to prevent this, but it's not long enough on some systems. Is this what's happening?

Assuming this is the problem, I modified JWM to wait longer before a restart if there are still applications that have yet to be swallowed. Unfortunately, I can't make JWM wait indefinitely, or a typo in the configuration file would prevent you from exiting or restarting JWM. So I made JWM wait for up to a second longer for swallow windows to map (so they can be killed) in the latest snapshot (736).

For the png icons, what does the your configuration look like for the icons that aren't showing up?

Regarding fribidi, does the 19 spaces thing still happen in the latest version of JWM?

- Joe

joewing
Posts: 25
Joined: Sun 24 Dec 2006, 20:43

#113 Post by joewing »

I've reproduced the bi-directional font problem, so hopefully I should have a fix soon.

- Joe

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

#114 Post by L18L »

joewing wrote:I've reproduced the bi-directional font problem, so hopefully I should have a fix soon.

- Joe
glad to read that.

- L
Waiting while playing your tile slider game internationalized. :D

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

#115 Post by 01micko »

IMHO the way we start tray apps is an abomination! Every decent WM has a way to start apps on start of the WM. JWM achieves this with the <StartupCommand> tag which you can put in the main .jwmrc or as an <Include>.

On my raspi I have raspbian-wheezy and/or slackware-14.0 running and have a few tray apps adapted and compiled for the Pi.

Code: Select all

   <StartupCommand>network_tray</StartupCommand>
   <StartupCommand>volcont</StartupCommand>
   <StartupCommand>temp2tray</StartupCommand>
I'm not saying Puppy should change, it would break an awful lot of programs. But for tinkerers (Karl :wink: ) this is a great way to experiment.

2c
Puppy Linux Blog - contact me for access

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#116 Post by Karl Godt »

Short update for now :
jwm-736 now expects some keyboard input after
jwm -restart from xterminal to actually execute the restart feature .

Stable tray programs that have never failed drawing their icon-window into the tray are :

* absvolume
* recent freememapplet_tray-2.X versions
* network_tray and blinkydelayed
* xload

Wonky programs :

* fbxkb ( keyboard switcher program )
* retrovol
* old xlib freememapplet versions

Am testing further with different possibilities to launch them from .xinitrc or .jwmrc-tray .

What I can tell for now is , that a wrapper script seems to work to manage the freememapplet versions :

Code: Select all

ERR=/dev/null
QUIET=''

pidof inotifywait && killall inotifywait 
## PUPPY-4 xlib-404 uses inotifywait, 
## PUPPY-5 xlib-0.1.2 already df 

for p in `echo -e "${PATH//:/\n}"` ; do
FREE_MEM_APPLETS="$FREE_MEM_APPLETS
`ls -1 ${p}/*freemem* 2>$ERR`"
done

FREE_MEM_APPLETS=`echo "$FREE_MEM_APPLETS" | grep -vw "${0##*/}"`

for app in $FREE_MEM_APPLETS ; do
echo -n "$app "
[ -f $app -a -x $app ] || { echo " not a file andor not executable";continue; }
echo -n " is file and executable "
ldd $app | grep $QUIET -i 'xpm' && { pidof ${app##*/} && { kill `pidof ${app##*/}`;sleep 2; }; }
pidof ${app##*/} && { echo " already running";continue; }
echo " not already running"
$app &
done

echo
sleep 1
ps -A -o pid,s,cmd,args | grep free
freememapplet xlib has to be killed.
It has a kill other freememapplet compiled into it, but that works only as long as the new pid is higher than the previous pid .
Also new freememapplet instances then don't go into the tray anymore, they open a tiny window in the NW corner of the desktop.

*

ABOUT the timing :

Code: Select all

for i in `seq 1 1 10` ; do sleep $i ; jwm -restart ; done
did not show any relyable results . The wonky applications sometimes showed up fully functional and somes not. Have not recognized a sleep value that worked always.

*

WHAT I am investigating about further with these tray applications :
GTK-2.0 problems .

Puppy-5 libgtk-x11-2.0.so.0.2000.X seems to work better for retrovol v0.11 and v0.12 than earlier libgtk-x11-2.0.so.0.1X.X .
The default v0.6 showed up as empty space always anyway .

Will have to check that the the link targets for *.so and *.so.0 match on my system . ldconfig only updates the *.so.X links, not the *.so links .

joewing
Posts: 25
Joined: Sun 24 Dec 2006, 20:43

#117 Post by joewing »

Karl:
I think the source of the problems you're experiencing is due to having JWM swallow applications that run in the dock (or "system tray" according to EWMH). For example, retrovol will dock itself (it should not be swallowed). So rather than doing "Swallow", just start the program (possibly in StartupCommand). The "Swallow" feature is only for windows that don't support running in the dock natively, for example, xload, xclock, xbiff, etc.

What's happening is that JWM starts those applications to attempt swallow them, and then the applications don't create a window (instead they just create an icon on the dock area). So JWM continues thinking that the application never started. Finally, when you restart, JWM will start the application again without killing it because JWM doesn't know it's already running. This is when retrovol will create a window, which JWM happily swallows (though you probably don't want JWM to swallow that window).

L18L:
Fribidi support should work correctly in JWM now (as of 737). I can't read it, but it appears to be showing all the text and setting the width correctly.

- Joe

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

#118 Post by L18L »

joewing wrote:Fribidi support should work correctly in JWM now (as of 737). I can't read it, but it appears to be showing all the text and setting the width correctly.
Sorry not with me
Here is what I have done:

./configure --prefix=/usr
make
make install

sed -i 's#Name=Abiword word processor#Name=معالج الكتابة آبي وورد#' /usr/share/applications/Abiword-wordprocessor.desktop

fixmenus
jwm -restart
Attachments
arabic_733.png
missing the right most word
(34.61 KiB) Downloaded 381 times

joewing
Posts: 25
Joined: Sun 24 Dec 2006, 20:43

#119 Post by joewing »

L18L:
That seems to work for me. Did you exit JWM and start it again? Running "jwm -restart" just restarts the currently running instance.

- Joe

scsijon
Posts: 1596
Joined: Thu 24 May 2007, 03:59
Location: the australian mallee
Contact:

#120 Post by scsijon »

i'm back, sorry folks business has got in the way of "puppy fun". :? I will build new test versions of v738 tonight and after testing, if ok, will upload tomorrow.

@joe, thanks for keeping an eye on the thread.

scsijon

User avatar
L18L
Posts: 3479
Joined: Sat 19 Jun 2010, 18:56
Location: www.eussenheim.de/

fribidi

#121 Post by L18L »

joewing wrote:...Did you exit JWM and start it again? Running "jwm -restart" just restarts the currently running instance...
...repeated the procedure using jwm738
having restarted X everything is OK now
Thank you Joe.

updating jwm.pot
"Project-Id-Version: jwm 2.1.1\n"
"Report-Msgid-Bugs-To: joewing@joewing.net\n"
"POT-Creation-Date: 2011-12-22 18:24-0600\n"

jwm.pot had 449 lines


Creating an actual myjwm.pot by

Code: Select all

xgettext --keyword=_ -f po/POTFILES.in -o - > myjwm.pot
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-05-01 08:42+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"

new (my)jwm.pot has 360 lines only

----
In puppy we have messages from src/winmenu only, 103 lines :)
No idea where the other stuff is hidden in puppy :roll:
Attachments
right_to_left_problem_solved.png
JWM ready for Arabic and other right-to-left languages now
(3.39 KiB) Downloaded 883 times

joewing
Posts: 25
Joined: Sun 24 Dec 2006, 20:43

#122 Post by joewing »

L18L:
I've updated jwm.pot in the latest snapshot (I need to be more careful about keeping that updated!).
Anyway, if you point me to a po for Arabic (or any language), I'd be happy to include it with JWM.

- Joe

scsijon
Posts: 1596
Joined: Thu 24 May 2007, 03:59
Location: the australian mallee
Contact:

#123 Post by scsijon »

I have upgraded the Test version to 746.

Also, try a right-click on the minimum button, an interesting addition that allows you to read what's on the window below without loosing access to your working window. I like it!

User avatar
session
Posts: 89
Joined: Mon 07 Feb 2011, 23:11
Location: Valley of the Sun

#124 Post by session »

A right-click on the minimize button will shade the window... is there a new addition I'm missing?

OK, I have a tiny usability bug worth mentioning: If two+ windows share one application entry in the tray (ex. mtpaint w/ settings toolbar), you cannot minimize the windows with a left-click in the tray.
[color=green]Primary[/color] - Intel Pentium 4 2.40GHz, 571MB RAM, ATI Radeon 7000. Linux Mint 17 Qiana installed.
[color=blue]Secondary[/color] - Pentium 3 533MHz, 385MB RAM, ATI Rage 128 Pro ULTRA TF. Precise Puppy 5.7.1 Retro full install.

scsijon
Posts: 1596
Joined: Thu 24 May 2007, 03:59
Location: the australian mallee
Contact:

#125 Post by scsijon »

session wrote:A right-click on the minimize button will shade the window... is there a new addition I'm missing?
A right-click on minimize 'rolls' the 'window' up to only show the blue heading line, like raising a roller blind, right clicking again drops it back down. Means I can write a report with the data behind and only roll up and down the report when I want to check the source data.
session wrote:OK, I have a tiny usability bug worth mentioning: If two+ windows share one application entry in the tray (ex. mtpaint w/ settings toolbar), you cannot minimize the windows with a left-click in the tray.
Issue #45 allocated in joe's git issues list.

Post Reply