pDeskIcons - "Advanced" desktop Icon package

Stuff that has yet to be sorted into a category.
Post Reply
Message
Author
User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

pDeskIcons - "Advanced" desktop Icon package

#1 Post by ecomoney »

One of the main frustrations new users encounter when first running puppy linux is the fact it is set to single click to open applications. Double clicking (from their previous windoze training) produces two of whatever application the start from the desktop icons.

These icons are used extensively in EcoPup, a puplet I developed for use in a cybercafe I ran, and later customized for home use. They have proved very useful in giving a good first impression of Puppy Linux (v. important). They also provide a "tooltip" function when hovered over, and launch a simple splash screen. User feedback is very important, especially on slow computers. When they click on something they like to know something is actually happening as a result...this is especially true of slower machines like those Puppy is designed for where opening an application can take several seconds or more.

They are based on a script by guesttoo, the origional post about them I have lost. Technically I have very little knowlege of what they actually are...they seem to be some kind of subfolder hybrid launcher with a script "inside" that runs when they are clicked to launch an application and detect a double click. Inside they also have a file for the tooltip text when hovered over, and an xpm file for the icon graphic. You get "inside" by right clicking them and selecting "look inside", and a rox folder comes up with the files. I have also successfully put programs "inside" the icons...making them very portable, i.e. the executables are inside the folder. They can then be dragged and dropped between different pup_saves to transfer entire programs in one go....very powerful. None of those are in this pack however.

The script inside that runs when clicked is typically something like this

Code: Select all

#!/bin/sh
# roxapp wrapper 0.0.1 - GuestToo - Feb 10, 2007

[ -r /tmp/firefox2.lck ] && exit
> /tmp/firefox2.lck;(sleep 3;rm -f /tmp/firefox2.lck)&

DISPLAY_TIME=6

if which gxmessage > /dev/null
then
  gxmessage -timeout $DISPLAY_TIME -buttons "" -bg "#d0ffd0" -borderless -center -title "Firefox" "
  Firefox is starting" &
else
  xmessage -timeout $DISPLAY_TIME -buttons "" -bg "#d0ffd0" -center -fn "10x20" -title "Firefox" " Firefox is starting " &
fi

export MOZ_DISABLE_PANGO=1
export G_FILENAME_ENCODING=UTF-8

exec defaultbrowser "$@"
the display time is hard coded (basically I have to guess) but at least it gives some kind of feedback. If opening firefox takes ten seconds...at least it warns the user they have to wait. Puppy doesnt have a "hourglass" feature when starting new apps, something that IMHO is severely lacking for a distro designed for slow hardware.

Like I say, there are arguments in the for and against camp for double clicking vs single clicking. Although I prefer single clicking (now I am used to it) double clicking is so intuitive for new users. This gives the best of both worlds...both single clicking and double clicking them produces just one instance of an application - what new and seasoned puppiers expect to happen.

I realise a lot of the code is copied in each of the icons (BAD programming practice), and many things are guessed at. I would also like to include a connection check for the launchers for apps that require a working internet connection (i.e. the browser). This will inform the user their internet connection is not currently setup, and offer to either work offline or launch the Internet Connection Wizard. Any tips on how to do this appreciated.

Im also nervous about disclosing some of my "nasty hacks" to the wider puppy community...but they work and they serve an important purpose! I have personally introduced linux to hundreds of people over the last few years, and I know from that experience that these make one huge difference to "linux newbs" first impression and initial acceptence of a new operating system....so many people are quick to dismiss what is unfamiliar and scurry back to their "comfort zones" in proprietary software.

Im hoping that by releasing them, they can be (vastly) improved by someone with more technical coding skill than I (i.e practically anyone on this forum). From what Ive seen of the difference they make to the impression that all important first boot, and puppy linux's rare and honorable intentions of being accessible to "linux newbs", that a vastly improved and "technically correct" version, or derivative with similar/better functions, will one day be included in mainstream puppy linux. I sincerely hope this is achievable.

The icons in this pack Im going to have to supply as a zip attachment to this post (my webserver is temporarily down with all of the software downloads and fixes for 4.2). I will edit it with some screenshots soon. It currently contains only the desktop icons used in EcoPup.
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#2 Post by disciple »

This gives the best of both worlds...both single clicking and double clicking them produces just one instance of an application - what new and seasoned puppiers expect to happen.
Sorry to be a bit pedantic, but double-click people still don't see what they expect to happen. They are used to having an additional set of functionally - something is selected if they click on it - but with these the program will be launched. And a Rox window will not match what happens on the desktop - if they double-click on a file in Rox it will open twice.
Why on earth not set Puppy up for double-clicks by default, and people can change to single-clicks if they want?
Especially since open/save dialogs require double-clicks...
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#3 Post by ecomoney »

I would totally agree disciple, double clicks would be the obvious choice for a distro aimed at "Linux Newbies", and the way that even most other Linux distros now do it. Thats not to say we cant do it better. Single click does make things so much easier, and makes other distros/windows seem "cludgy" to operate now I am used to it. This doesnt take long in my experience.

From my observations, I dont see many people actually highlighting their desktop icons, thats really of not a lot of use to computer users, why is this done?
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#4 Post by disciple »

why is this done?
I think it is mostly useful if you want to select several things together and do something to them.
The more important point is not what single click is useful for, but simply that it is good to have consistency.
With your system the double-click behaviour is different on the pinboard from in a filer window, and and the single click behaviour is different in the gtk open/save dialogue from both of them.
In a standard Puppy only the open/save dialog is different. And if Rox is set up for double-click in filer windows and on the desktop, all three are consistent.
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#5 Post by disciple »

BTW I do agree your system would be less disconcerting for newbies than the current default, but I think double-click settings would be much better... unless you know how to make the open/save dialogue use single-click?
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#6 Post by ecomoney »

Your right....consistency is important. When I install puppy for people, I set aside an hour. Since puppy is usually running by the time theyve come back from the Out house with a coffee for me now Im not using windows (Very 8) ), I have plenty of time to give them training. Others who just download the ISO might not have access to someone to show them around.

Youve given me the idea for another possible feature...
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#7 Post by disciple »

Youve given me the idea for another possible feature...
Hey, don't keep us in suspense :)
We might have some useful input on the idea.
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
synth
Posts: 209
Joined: Wed 18 Mar 2009, 17:51

#8 Post by synth »

@disciple & ecomoney: Just try Turbopup :)

http://www.murga-linux.com/puppy/viewtopic.php?t=40477

You'll love the default setup.

amigo
Posts: 2629
Joined: Mon 02 Apr 2007, 06:52

#9 Post by amigo »

Uh, those are each an AppDir -mostly for use with ROX-Filer. The ROX-filer has a routine which checks all directories to see if the ar an AppDir and lets you execute the AppRun script inside simply by clicking on the icon for the directory. You can also run the AppRun script directly, or link them to a suitable progam name in you PATH, which allows them to be used with other file managers. They can also handle drag-n-drop which makes them very insteresting indeed.
I have about 50-75 AppDirs which I have created which include the sources. Each AppDir is completely self-contained -when you first click the unpackaged archive, the program will be compiled from the sources, installed locally inside the AppDir and then run from there. I also have a bunch of AppDirs which I really call WrapDirs, which, like some of yours, are simply wrappers to programs which are already installed on your system. I have a built setup which can use a preferences directory for any program that needs it.
To me, the drag-n-drop functionality is what makes them really special -it really turns the desktop paradigm upside down by orienting the user to his own files instead of the programs. In other words, instead of the user browsing the file system or menus, starting a program and then browsing again for a file to open, he simply drops the file on an icon to have the file acted on. My most sueful one is called ZipZap -it's just a wrapper around the various archive tools, but by using a special AppRun script, it 'discovers' what it should do. If you drop a compressed archive on it, it unpacks it. If you drop a plain file or a directory on it, it pops up a dialog and lets you choose what kind of archive to create from it.
I use AppDirs or WrapDirs for nearly every program which I use often -but rarely are they just a simple 'shortcut' which executes the program.
Of course, you can find many AppDirs on the ROX site, but they usually require python or ruby. Mine rely on just bash or sh, plus other common CLI utilities.
You may want to check out some of mine here:
http://distro.ibiblio.org/pub/linux/dis ... d/AppDirs/

Particularly this one:
http://distro.ibiblio.org/pub/linux/dis ... er-0.4.tbz
AppBuilder is a template you can use to build either a wrapper or source-based AppDir. Compare the AppRun and other files with svereal of my pre-made AppDirs for ideas of how to implement your own.

User avatar
WhoDo
Posts: 4428
Joined: Wed 12 Jul 2006, 01:58
Location: Lake Macquarie NSW Australia

#10 Post by WhoDo »

amigo wrote:To me, the drag-n-drop functionality is what makes them really special -it really turns the desktop paradigm upside down by orienting the user to his own files instead of the programs. In other words, instead of the user browsing the file system or menus, starting a program and then browsing again for a file to open, he simply drops the file on an icon to have the file acted on.
Now THAT is what I call usability. I would have liked to implement that in Puppy 4.2 for the new Xarchiver application, but at the time didn't know how. Now I do thanks to you! 8)
amigo wrote:My most sueful one is called ZipZap -it's just a wrapper around the various archive tools, but by using a special AppRun script, it 'discovers' what it should do. If you drop a compressed archive on it, it unpacks it. If you drop a plain file or a directory on it, it pops up a dialog and lets you choose what kind of archive to create from it.
Would you be kind enough to have a look at the archive features in Puppy 4.2 and suggest a neat way to handle archiving in line with what you've done here? I'm happy to learn, but you have the experience and knowledge with this, and I'd like our Puppy 4.2 users to benefit from that sooner rather than later. I'd like to release a patch that adds this functionality for Puppy 4.2 users. Are you up for it, amigo? :wink:
amigo wrote:Of course, you can find many AppDirs on the ROX site, but they usually require python or ruby. Mine rely on just bash or sh, plus other common CLI utilities.
You may want to check out some of mine here:
http://distro.ibiblio.org/pub/linux/dis ... d/AppDirs/
Yes, python and ruby are never likely to find their way into the standard Puppy on size grounds, so I'm really happy to see you sticking with bash etc for these features. :D
amigo wrote:Particularly this one:
http://distro.ibiblio.org/pub/linux/dis ... er-0.4.tbz
AppBuilder is a template you can use to build either a wrapper or source-based AppDir. Compare the AppRun and other files with svereal of my pre-made AppDirs for ideas of how to implement your own.
Got it, thanks amigo! :wink:
[i]Actions speak louder than words ... and they usually work when words don't![/i]
SIP:whodo@proxy01.sipphone.com; whodo@realsip.com

Post Reply