Crappiest Launcher You'll Ever See, But Here You Go


DaveC said:
skeezix said:
And yes I've done tabbed ui's before, I know how to render 'em :) time and all that :) i'll keep at it even after release :)

jeff


Ok cool.

How will external icon files be handled if I wanted to make different art for an app's icon ?

Also how can I make the icons slightly smaller but keep the launcher from scaling them up ( scaling icon pixel art would look hideous, and I may want to make smaller for aesthetics) ? Will there be an option in a config file such as NOSCALE or something to that effect?

Worked my tail off and its 'nearly ready' (in that minimal but functioning sense) :) .. djwillis did a first quick stab at rolling it into the images, but I doubt it'll work next image (tomorrow? next day?).. but sometime in the next few days we should get it working as a default option. I should zip it up for you so you can just fiddle with it..

1) External icons; the 'real' way to do it woudl be a PXML override, but as we don't have a tool for that it coudl be annoying for you ;) So I could always make an option where.. if theres a png file with the same path/filename (except file extension) to use that instead; would be pretty easy to add. I doubt many people do that sort of thing in practice, but I know you would ;)

2) Most of the layout is specified in the conf file; you can specify the size of a grid cell, the offset from cell to cell, the padding from edge of cell to the icon, the size of the icon, the padding to the title text, the size of the title text font, the size of the title text sub-cell, and so on. So you can reasonably well customize it already.

No idea if it'll work, but take a grab of http://www.codejedi.com/pandora/minimenu/binaries/mmenu-20100309-bin.zip .. copy the libpnd.so.whatever to /usr/lib (maybe need to rename it to cover the two that are already in that dir), and in theory you should be able to run mmenu from the terminal. (extract it to /mm, then open terminal and cd /media/mmcblk1p1/mm and ./mmenu for example.) IF it doesn't work, PM me and I'll tell you which files need to go where .. that was a quick zip.)

ie:

assuming /mm on SD2

./mm/mmenu
./mm/mmwrapper
./mm/minimenu/mmenu.conf
./mm/minimenu/skin/default/ <- all those png files, the font ttf, etc.

Then open terminal, cd /media/mmcblk1p1/mm
./mmwrapper -f./mmenu <- that'll make it work like a launcher
or
./mmenu <- just run the menu, but it'll just quit when you try to run anything

Give it a shot, let me know :) lots to do, but its actualyl pretty usable I think.

Start menu brings up the menu to let you shut down, btw.

jeff
 
Last edited by a moderator:
may88 -- if by 'finger friendly' you mean 'push an icon to run it', then yes -- I'll be adding basic touchscreen; tap an icon to run it, tap a tab to switch to that category.

Its not going to be 'kinetic' like an iphone .. its not that sort of thing. Its not a smooth scrolling vertical move.. its a grid of icons, with invisible page-flipping, old school.

DaveC -- btw, I think default conf is page flipping one whole page at a time; someone can conf it to go 1 row, 2 rows, whatever number of rows they want, but I think you wanted page flip.

When you wrap the selection off the right, it just goes to the lefgt side, but 1 row down; wrap to the left means previous row, far right, but 1 row up. Its like 1 long linear list of apps, in a coil. But if you want wrap to stay on the same row, I can do that too.

Amigo .. you can take a look at the png bits now, but its not as 'well defined' as you might like; still, have at if you like :) If I get some time, I might be able to build a Windows binary for folks to fiddle with. I could probably build an OSX one, I think that box is still on in my little basement farm :)

jeff
 
skeezix said:
So I could always make an option where.. if theres a png file with the same path/filename (except file extension) to use that instead; would be pretty easy to add. I doubt many people do that sort of thing in practice, but I know you would ;)
Just wanted to drop in to say that I like the sound of this. :D
 
Last edited by a moderator:
skeezix said:
DaveC -- btw, I think default conf is page flipping one whole page at a time; someone can conf it to go 1 row, 2 rows, whatever number of rows they want, but I think you wanted page flip.

When you wrap the selection off the right, it just goes to the lefgt side, but 1 row down; wrap to the left means previous row, far right, but 1 row up. Its like 1 long linear list of apps, in a coil. But if you want wrap to stay on the same row, I can do that too.

jeff
Well yes one page at a time flipping is good. The reason is for wrap. It sounds like it doesn't support it in the up/down direction though. That is unfortunate and hopefully you can add it. If you are at the top and have two pages and want to quickly get to the second page, now you need to tap, tap,tap, tap down on the pad. With vertical wrap just press up once and you are there, much faster. This is the same with one page if you are on the top row and want to get to the bottom row just press once up. This way you are only a couple of pad moves to your target. This is the main thrust of this launcher is speed and ease of use. I see no advantage to not using wrap in the up/down direction, only disadvantage. Can you add this at least as an option? even though would disable line by line scroll why would you do that anyway? That just causes it to be a sequential one by one selection which is slow.

Also I think the left-right wrap should be on a straight line. It is just more intuitive that way. The other way it can get weird especially if you are in the top or bottom rows (what happens on the last row when you wrap? can't go down if there is no other page, it would be inconsistant). If it pops to the first row that will get kind of confusing. I would at least put in an option for straight line wrap if you prefer the other way.

I will try this soon. Maybe not tonight but tomorrow as I may need to set up some things. I am terible at linux CLIs and terminal stuff so It may take me some fidling around :p

Thanks for the great Work.

Prometheus said:
skeezix said:
So I could always make an option where.. if theres a png file with the same path/filename (except file extension) to use that instead; would be pretty easy to add. I doubt many people do that sort of thing in practice, but I know you would ;)
Just wanted to drop in to say that I like the sound of this. :D
+1 here too.

That would be a nice and easy way to override default icon. Put the icon in the same dir as the pnd as appname.png. This has worked on the GP2X and Wiz so it would be pretty straightforward to anyone who used those. I bet more than you think would use it, much easier than using a separate tool.

This concept could also work with the appdata dir. Have the pnd look in two spots. If it finds an appdata dir in the same dir as the pnd it would use that. If it isn't there it looks in the other place that is cutrrently set up (desktop/appdata or something).
 
Last edited by a moderator:
For vertical wrap, I can make an option to toggle behaviour .. right now if you're on bottom and hit down, it just jumps to last app. (ie: you're in bottom left, hit down, it goe sto bottom right, thats as 'far down' as it can go.) I could make it just wrap to the top.

Its a little inconsistent there though.. if you've got >1 screenfull, then wrap off bottom means go to next page; but on the last page, wrap off bottom means go to the top. (I suppose thats some consistency, since it becomes like a rolodex then.)

I've tried to keep it implemented so options specify if its wrap-around or stop-at-last. ie: Some people like to just go whippign through the tabs to the right with 10 clicks, even though they have 8 tabs.. the same way you want to just fling your mouse to the top right and it lands on X, since X is at the top right.. tab-wrap would annoy these people; at the same time, so people are 'near the right', and want to go to the far left tab, and just hit right-shoudfler tweice to do it, rather than have to hit left-shoulder 8 times, say. Depends on the person.

I'll see if I can add some wrap options, but worst case, I can add them later. But I expect we've got a couple weeks of play yet.

I'm just worn out, working too hard and spending all my spare time on this stuff.. need to chill out a bit :)

jeff
 
hitbyambulance said:
skeezix said:
though the code will bring shame on the House of Skeezix for being rushed out the door

just wondering - is there a rewrite in the works after Pandora launch?

Well its not _that_ bad, I just mean its not how I'd do it were I to have a normal amount of time :)

So I doubt I would rewrite 'minimenu', since it will serve its purpose well (being minimal, being fast).

If I get the itch to make a 'bigger' menu with plugin support etc, then I'd write a new menu, sure. At the same time though, if people want to write 'plugins' have the source of minimenu (they do, I GPL'd it), then they could just modify minimenu :) The main boon of plugins though is where dozens of peopel write tiny little complimentary well behaved extensions that play well together, and that'd definately require a new codebase.

So whose to say? minimenu is solidly written (its not crap!), its just not designed for expandability in the way a web browser is :)

But that does keep it simple, which was its goal :)

jeff
 
Last edited by a moderator:
That looks pretty cool, keep at it.
Perhaps you might want to check out Self Boot Inducer for the Dreamcast for inspiration, might give you some ideas.
 
skeezix said:
For vertical wrap, I can make an option to toggle behaviour .. right now if you're on bottom and hit down, it just jumps to last app. (ie: you're in bottom left, hit down, it goe sto bottom right, thats as 'far down' as it can go.) I could make it just wrap to the top.

Its a little inconsistent there though.. if you've got >1 screenfull, then wrap off bottom means go to next page; but on the last page, wrap off bottom means go to the top. (I suppose thats some consistency, since it becomes like a rolodex then.)
jeff

I think it is more inconsistant the way it is. Now with horizontal wrap instead of just wrapping to the opposite side it also moves down a row. That means that if you have two pages are on the bottom row (first page) and just want to wrap to the other side it will instead wrap down causing the next page to show. So now you have to think "wait I am on the bottom so to wrap right I should go up one row then wrap left so that when the icon drops down automatically I will stay on the same row and page" That is too much thinking and is counterintuitive.


To keep things simple and intuitive I would just wrap in-line both horizontal and vertical the same. That is the most consistant as it behaves the same in both directions. The row by row scroll thing is not too useful and I doubt anyone would use that, there is really no advantage to it.

As far as icon scaling the setup for sizes in the config won't help many times. What if I have one icon that is 55 x 30 and one that is 58 x 40 such as a game system icon like I drew on my first example? If I set it to the 58 pixel wide one then it will slightly scale the 55 wide icon making uneven scale lines through it and ruining the look of the icon. Icons are not always perfect squares or the exact same size. There really needs to be a way to shut the scaling OFF somehow for all icons so that it won't make a pixely mess out of those that vary slightly in size and smaller than the max that is set.
 
Last edited by a moderator:
All pretty easy to add; I'm trying to avoid going feature-nuts on minimal though, but ok.

I can add option not to scale _up_, but for oversized 'icons' will scale down. (ie: if the dev attaches, or you override to, a 5mega pixel image, I gotta do somethign with it :)

jeff

FWIW, we got preview pics working now; I have options for it to load all previews up front (slow startup), or do deferred load (if the selection sits in same place for 1sec, it'll then pull in the preview pic), or do no previews.

I trhink I'll add a menu item (there is onyl 1 menu, the one that offers shutdown) to load up xfce4 .. trhen can do a fast boot ino mmenu, and if you want, run xfce4 to get desktop to do pdf's or whatever.
 
skeezix said:
All pretty easy to add; I'm trying to avoid going feature-nuts on minimal though, but ok.

I can add option not to scale _up_, but for oversized 'icons' will scale down. (ie: if the dev attaches, or you override to, a 5mega pixel image, I gotta do somethign with it :)

jeff

FWIW, we got preview pics working now; I have options for it to load all previews up front (slow startup), or do deferred load (if the selection sits in same place for 1sec, it'll then pull in the preview pic), or do no previews.

I trhink I'll add a menu item (there is onyl 1 menu, the one that offers shutdown) to load up xfce4 .. trhen can do a fast boot ino mmenu, and if you want, run xfce4 to get desktop to do pdf's or whatever.
I just thought about that and was going to add, It would make sense to scale down as an oversized icon would not be intentional, but not to scale up as an undersized one could very well in most cases be intentional. So yeah that option would be great.


One thing though. Autoscanning on EVERY start would be a waste of time especially when we start getting tons of apps, it could get real sloooooooooooooow. Could there be a manual scan and even manual app add (and remove)option somewhere so it didn't waste all of that time scanning even when nothing new was added or removed? I know the tendancy is to really dumb this down but that will cause too much waiting. We have to make this so that it will be useable much later when we get allot of stuff. A menu option such as "scan for apps" or something could be added.
 
Last edited by a moderator:
skeezix said:
FWIW, we got preview pics working now; I have options for it to load all previews up front (slow startup), or do deferred load (if the selection sits in same place for 1sec, it'll then pull in the preview pic), or do no previews.

Of those options, deferred load sounds best, though it feels jerky to me.

What about loading the first X previews (Or first 1/2X and last 1/2X in case of wrapping) in advance and loading the rest in the background?
Is that even possible?
 
Last edited by a moderator:
@Skeezix and DaveC:
For a quick and intuitiv access I would love to see it like this (or maybe make it possible to configure it like this? Don't want to make it too complicate :unsure: ):

If the cursor is at the first column in the 2nd row and you hit left on the dpad the corsor appear at the last column in the 2nd row.
If the cursor is at the last column in the 2nd row and you hit right on the dpad the cursor appear at the first column in the 2nd row.
So like DaveC said, no column change for wraping from left to right and vice versa.

If the cursor is at the 3rd column in the first row and you hit up on the dpad the corsor appear at the 3rd column in the last row.


I would like to see a modifier for page changing.
Convenient would be fn+dpat up/down
I would prefer no cursor change for relating to column and row during page changing.

Tab change could be the shoulder buttons.

Just a thought :unsure:
 
I've already added it so it has the option to stay on same row when wrapping left/right, and I've added an option to either stop at first/last, or wrap to top/bottom when wrapping off the top/bottom.

(More work than I thought.. if you are on col5, and wrap up and onto the bottom, and the bottom only has 3 icons, then has to jump back to the 3rd col, for instance. ie: trying to keep same column when wrapping around top/bottom.)

As to changing pages requirews modifier .. well, I'll worry about that after release. For now, scrolling off top/bottom will attempt to scroll (with scroll row-count being configurable so it can be 1, 2, whole page, whatever.)

I've added clock to the bottom right (configurable), with battery on the bottom left (configurable).

I've added option to suppress scaling up of icons (will scale down always, to conserve memory and make things look ok); when not scaling up, it will center the icon horizontally within the cell.

Added option to run xfce4 from the menu.

"Scan on launch" is default for now, though there is a "rescan" on the menu; currently it does not auto-rescan on insert/eject, but I could add option for that. The trick is.. it does not cache anywhere the info, so it has to scan on run, or theres nothing to show. I coudl cahde out the icon and details for slightly faster loadup next time, but its already pretty fast (ie: pulling the info from the pnd footer is not much different than reading a regular file.) ie: I can easily pull in 100 pnd's in less than a second, so I'm not too worried about it. I'll have to time it one of these days, but its pretty fast. If I cache out the icons (thats the speed hit), it still has to read them in next time .. same speed from pnd or file really.

The speedup there is deferred icon load -- just discover the pnd apps and ignore icons, go to the grid display and then start puilling icons; at this point is pretty fast so I'm not concerned, but if it starts to be a problem, I can always code it up.

I've been killing myself in my spare time to get this thing ready, but it doesn't have to be "mega done" for day one (and in fact that would be stupid -- it is always better to gatehr real usage info and then optimize, than to pre-optimize before peopel know how things work.)

Anyway, its nearly 'done enough'.

jeff
 
Wow, that all sounds great. I'm probably ending up using only your minimenu if I'm not on xfce. :)
 
Here is the main screen as of last night:
http://www.codejedi.com/pandora/minimenu/screenshots/IMG_0179.JPG

I didn't bother to take a pic of the menu screen since its highly boring; the right-side detail panel just fills in with the 8 menu items (as text) .. nice and easy and boring :)

jeff
 
skeezix said:
Here is the main screen as of last night:
http://www.codejedi.com/pandora/minimenu/screenshots/IMG_0179.JPG

I didn't bother to take a pic of the menu screen since its highly boring; the right-side detail panel just fills in with the 8 menu items (as text) .. nice and easy and boring :)

jeff

nice work! love the minimalism...

OT: is openjazz already ported? i think missed something :D
 
Last edited by a moderator:
skeezix said:
Here is the main screen as of last night:
http://www.codejedi.com/pandora/minimenu/screenshots/IMG_0179.JPG

I didn't bother to take a pic of the menu screen since its highly boring; the right-side detail panel just fills in with the 8 menu items (as text) .. nice and easy and boring :)

jeff
Is there a way to abbreviate the icon text by renaming the file? Or is that imbedded in the PND (if so that is going to really be annoying and I will start to really dislike PND, yet another thing we can't customize)? I could rename something like "Great Giana sisters remake version 2.0" That would get all cropped off to just "Giana" to make it more readable etc.

Also for vertical wrap it would be much better if say you are on row 4 of the last page you could just press down to go to row 1 of page 1. If on row 4 of page 2 and press down you just go to page three.

I also noticed that there is still a line dividing the active tab with the icon panel. It doesn't "open up" like it should. Is that hard to fix?

Thnaks for the great work.
 
Last edited by a moderator:
the line under the selected tab is just piece of the tab art, pretty easy to cut off; but notice I also made the selected tab have a different alphamask (colour in essence), so taking off the line.. you'd still see the highlight box. So woudl have to make the hilight do some gradiant effect anyway, but that in effect is just a fuzzier line. So in effect, having a line there is not so different perhaps, until I make or get all new artwork for that anyway :) Hence, not motivated to do it.

Get yesterdays build running, and then you can futz with the 'skin' as much as you like ;)

Everything in the PXML.xml is overridable, but theres no tool for it for now; I think for mmenu just for you I'm going to make an override mechanism thats easy (and maybe directly support it in libpnd, so it works for all apps.)

ie:

/pandora/desktop/foo.pnd
If /pandora/desktop/foo.desktop (like a .desktop file), then inhale and try to overide

The .desktop file could have replacement title, cpu speed, category, whatever. PRobably not support the full .desktop spec as its reasonably comprhensive, but something like this..

.desktop
-----------
[Application]
name=Giana
X-CpuClock=200
Category=Fooby

Then those 3 values could override their counterparts in PXML.xml, while all the other PXML bits would stay.

Then also /pandora/desktop/foo.png would override for the icon, if present.

So yeah, could do that pretty easily. Don't be so quick to 'hate the system' ;)

Vertical wrap is..

If you're on true row 0, and push up, then it goes to the bottom most row (be in 10 pages away or same page), and tries to get to the same column.
If you're on screen bottom roe and hit down, it goes to next page; if you're on true bottom row, it tries to wrap to the first true row, same column. (Be it same page or another page.)

The icon naming only gets funnyin the case of multi-apps per pnd .. ie: You see CDogs and CDogs Level Editor, bundled into one pnd; but both with "CDogs" at the front, so hard to see the name unless really wide columns (stupid), or linear list (I don't do that.) So abbreviating coudl be useful, or just watch the detail panel to get the full name.

It is tempting to put in SELECT button to pop up an alphanbetic list of apps, so you can see full wide names and scroll up/down to pick one, or show a list of subcategories so you can pick them, but I'm not sure I want to add that sort of thing to a 'minimal' menu.

For categories, we have up to 6 per app -- Main, Main Sub 1, Main Sub 2, and Alt, Alt Sub 1, Alt Sub 2. (PXML.xml can hold more, but thats how many we currently parse into libpnd.)

By default it registers an app to All, and to Main and to Sub. You can turn on and off any of them in the conf, so can register to all 6 cats, or to just 1 of them if you want.

BTW, I changed PXML.xml so it can specify the apps requirement for X .. ie: doesn't care if X is there or not (like SDL apps), needs X, or needs no X. Now, mmenu will ignore apps that need X, when its running without X (since you can't run them anyway, until such time I add runnig X to minimenu.) But looks like minimenu and pmenu will be running on top of X (with no window manager or desktop environment) for now anyway, so thats moot. (They know how to kill X temporarily when they need to.) Still, booting up kernel, then X, then pmenu/minimenu should be pretty quick.

(And down the road I might make a ultra mini distro, which is just kernel + mmenu + libs, and no apps or gunk, maybe no X even. Try and get that beloved 10s boot time end to end or something :)

jeff
 
skeezix said:
(And down the road I might make a ultra mini distro, which is just kernel + mmenu + libs, and no apps or gunk, maybe no X even. Try and get that beloved 10s boot time end to end or something :)
That would be great :) A Quake distro, yeah I like that :D
 
Last edited by a moderator:
Back
Top