Minimenu Configuration Ui; What Do Uneed On It?


skeezix

Internal Development
Joined
Mar 11, 2003
Messages
8,063
Website
www.codejedi.com
Minimenu has a pile of options (some pretty involved), mostly available in config textfiles people can edit; currently there is no handy UI for setting the options short of editing the config files (in NAND, or copying them to SD and editing them there as overrides.) I'm betting 99% of people will never look at the conf files (and even ED is too lazy to muck with them :), so I really need to get around to adding a UI for specifying options. I know ED and DaveC and others either don't know about 3/4 of the options in the config, or are afraid to touch it, or confused on how to set it up. A minimenu built in GUI would sure make everyones life easier. So I drop 90% of the lines from the config file, and build them into a menu instead (which just writes out to another config file, but one intended for mm to edit, not people. ie: it might be unsorted, or lack comments, but otherwise be editable if you really want to)

That said, the UI will only cover stuff that many or most people care about; really arcane settings will remain in the config textfiles for heavy minimenu hackers to play with.

The options I'm thinking about making a menu for are these; let me know if you know of other important options you'd like to have.

Current plan is 3 or 4 main config-pages. Each page will show you a description for the selected config item, its default value, and allow you to reset to defaults.

Config pages:
1) General options
2) Show/hide applications list
3) tabs show/hide and ordering
4) defaut show/hide tab behaviour for newfound categories

X) Reset to defaults

The pages would be broken up like this, more or less:

General
default tab: <pick a tab from a drop down list>
show all tab <yes/no> <- if yes, All tab is shown; if no, there is no All tab
default cursir is placed <yes/no> <- if yes, when mm is run, the first item in default tab is selected; if no, is like now.. no default selection.
wraparond tab <yes/no> <- if yes, when you try to change tabs to the left/right, and at the left/right edge already, wrap around; if no, then just stop at left/right tab
bottom/top wrap <yes/no> - if yes, when you scroll off bottom/top, wrap selection; if no, just stop at top/bottom edge. (is Yes by default)
left/right wrap <yes/no>

Show/Hide Apps:
- show a list of every app, with <shown/hidden> status in another column.
shown/hidden swtatus woudl be stored by app unique-id in config file.
I might also have a button to hide an app in the main grid display, but this config page woudl be a quick way to go zoom down the list and check/uncheck them all

Tab hide/show/order:
- show a list of all currently known tabs (ie: shown ones, and hidden ones)
- can push a tab up/down the list to change its order
- can check show or hide each one
- currectly mmenu config lets you merge multiple tabs into one, but I'm betting few need this function, so I'll leave that for textfile config hackers for now, until I think of a easy way to UI it :)

Behaviour for newly discovered categories:
- this is used for newly discovered categories; you drop a pnd into system, does it show up as a new tab if it has some previously not seen category, or does it default to not shown?
- currently this is in config textfile and default shows tabs for main and alt cat, but not for the sub cats; if not shown, you can currently go to 'reveal hidden tab' and pull up a tab once
- with this new config UI, you'd have the otehr config page to show which tabs are hidden/shown, and set them up how you like; but when you drop a new pnd, it can have 0-6 categories on it; which get new tabs .. none? the main cat? main and alt? all 6? you can then show/hide in the other config page, but this config page helps set default.
Main cat <show/hide> - default show
Main cat sub1 <show/hide> - default hide
Main cat sub2 <show/hide> - default hide
Alt cat <show/hide> - default show
Alt cat sub1 <show/hide> - default hide
Alt cat sub2 <show/hide> - default hide

I think this covers what 90% of people would like for options, out of current features. LEt me know :)

(There are other options in the configs, but you probably don't care about them. Also, there is a pile of skinning options, but thats for skinners to worry about, and is documented in the wiki and my guide in the Software Hacking forum.)

jeff
 
FWIW, I'm tired out, but strikes me I shoudl change the buttons a bit..

Currently:
Start -> Start the selected app (also B does it as well, but Start is to make Craig happy ;)
Select -> goes to menu

Pandora button - when not in xfce desktop mode, kills current pnd so minimenu can come back up.

Occurs to me (duh?) that Pandora button doesn't actually do anything while _in_ minimenu, so why didn't I use it?

Could change buttons like so..

Start -> start app
Pandora -> pull up the menu (is Select right now)
Select -> go to search mode; ie: start typing a word, and it filters apps to only show ones with that word at the start. hit Select again to drop the filter.

What do you think?

In this post, I am not addressing the larger concern of changing the Pandora buttona cross the board; I just got bak from my 4 weeks of no free time, give me a bit of breather ;)

jeff
 
That is fine but I think the GUI should not be loaded unless it is called. Could be a separate module or something. It could start getting a bit of bloat and no use loading code that would only be used every once in awhile. I know you will say " it is fast" but even now I notice mm taking longer to load.

I am not sure the wrap options need their own menu, could be left in config file if someone wanted to hack out, would anyone ever want to shut of scroll wrap anyway?

I would just default new loads to their normal catagory then let the user change from there if wanted. So if Hatari's catagory is GAMES by default a tab called GAMES will pop up, or if there already is one it will be filed there. The user can change. If an app's catagory is hidden it could unhide then show in there. The user can then move and re-hide if wanted. I would just show the main cat. If the user wants to change he can. It would be easier than cleaning up 5 catagories he doesn't want.
 
I don't have a Pandora yet but I have had a go on a Friends' machine. I did find one problem in the minimenu. I couldn't see the highlighting colour for the item selection at all. I have a slight form of red/green colour blindness, which is fairly common and is likely to affect others too. So a simple way of changing the text colour on the minimenu would be most appreciated. If its just a case of hacking a script which one do I need to adjust?

Thanks
 
The big thing I would like it the option to move and copy icons to different categories. Perhaps pressing 'X' on an icon could bring up a little menu with 'hide app/coppy app to/move app to' options. I guess this would involve the gui creating/altering ovr files?

I'd also like it if minimenu would refrain from showing PNDs that are in the 'apps' directory two times.

Finally if it could be updated so that it looks for configs and skins in pandora/appdata/mmenu rather than pandora/mmenu that'd be great (I know you posted a fix on the forum a while back for me to test, but I guess that's out of date since hotfix 3 addresses the cards differently?)
 
Wookiee said:
I don't have a Pandora yet but I have had a go on a Friends' machine. I did find one problem in the minimenu. I couldn't see the highlighting colour for the item selection at all. I have a slight form of red/green colour blindness, which is fairly common and is likely to affect others too. So a simple way of changing the text colour on the minimenu would be most appreciated. If its just a case of hacking a script which one do I need to adjust?

Thanks

I've used this to design color blind friendly sites and games. I highly recommend it.
 
Last edited by a moderator:
Pleng -- moving apps to different tabs/cats is on a per-app basis; you can currently do it using .ovr files (but making them is a pita of course :) -- I will make a tool one of these days to make and edit ovr files as well (outside of minimenu, since the ovr mechanism works for minimenu, xfce, or any other freedesktop DE). So that one is a 'separate project' per se.

I will remove the doubled apps, if thats still there; I thought I'd fixed that one, but I don't recall now :)

Hmm, I did have a local git blow up, I wonder if some of those changes never got pushed up; the looking for configs in appdata I thought was moved into the formal git as well, but seems not. Thanks for remembering :)


Wookiee -- in the mmskin.conf for a given skin you can hack some of the font colour stuff


Anyone have any comments about the proposed button changes?


jeff
 
Presumably we'll get the repo posted soonish (ED and djwillis and notaz were working on it and have something basic working in testing) and cover such things, or hotfixes as for now. (ie: should add a 'check for updates' typo option to mmenu and xfce, that does a opkg update and report changes, or something.) *shrug*

I doubt mm needs something mm-specific for that sort of thing; not that many updates and they're not 'critical' per se, and I can post alphas easily enough. (I've just been Away for a month, so not much changed during that time.)

jeff
 
(Experts only! If anyone cares: http://www.codejedi.com/pandora/minimenu/patches/sort-jump-ts-changes/mmenu is a binary that has some fixes in it - touchscreen should work again for invoking apps, sort order should be fixed so its H h I i, not H I h i, using jump-to-keyboard-letter lets you cycle through multiple apps, and no more duplicates for apps in /pandora/apps, and looks for mmenu.conf overrides in /pandora/appdata/mmenu in addition to usual /pandora/mmenu); copy it to SD, then do something in the Terminal, like 'sudo cp /media/FOO/mmenu /usr/bin/mmenu', _while in xfce mode_, and shojuld be okay. Experts only!)

DaveC - adding a bit of code for a conf UI wll not slow anything down at all, whatsoever; there is some slowdown in minimenu load time, based on number of apps in searchpaths (and depth of searchpaths if you're adding 600 subdirectories.) IT shoudl still be pretty darned fast now, but there is some little cleanups that I need to do one of these days, change how things work a bit, so that it doesn't vary speed by size of app inventory. Some lazy coding :)

Still, one thing is loading icons -- it takes a fraction of a second to load up a small image but if you have to pull 1000 icons from 1000 apps its going to take a moment (Even on your modern heavy duty Windows PC, you can see it yoinking in icons sometimes.)

Minimenu already has the ability to multithread that step -- you can say 'just ignore icons entirely' and it'll load up near instantly, and then you can have it pull in X number of icons per second over time; thats just a flag int he config file. But in practice, I found it chugged the UI a bit to be pulling inicons over time, and if you had 1000 apps.. it might not even have loaded the icon you want by the time you find the app and want to run it. So I may have to look into some clever stuff -- if you config it to defer icon load until later, but still want icons to load in background, maybe it should try to load the icons 'near' the highlight .. right now it tries to load them in alphabetic order or something.

Anyway, to summarize.. it shoudl load fast, and run fast, now; if thigns do start to bog down, let me know .. theres lots of tricks to speed up load and run times, even now. But a config UI shouldn't impact either of those speeds whatsoever.
 
Oh yeah, will something be added to the PND library so that override preview pics will be shown even when lazy devs don't include their own in their PNDs?

Can the apps be in any dir or do they need to be in "menu". I could put directories called "games" and "Emus" etc in the root of my SD if they will be read.
 
DaveC said:
Oh yeah, will something be added to the PND library so that override preview pics will be shown even when lazy devs don't include their own in their PNDs?

Can the apps be in any dir or do they need to be in "menu". I could put directories called "games" and "Emus" etc in the root of my SD if they will be read.

Well, theoretically, you can put then in any dir. The dirs the PND system look for are set in a configuration file in /etc/pandora/conf/
 
Last edited:
DaveC said:
Can the apps be in any dir or do they need to be in "menu". I could put directories called "games" and "Emus" etc in the root of my SD if they will be read.
There's three search paths it sets up: one for menu, one for desktop, and one for both. You can add any number of arbitrary directories to any of these paths.
Alternatively, you can create "games", "emus", etc as subdirectories in the /pandora/menu/ and it will still find them.
 
Last edited by a moderator:
The thing I want the most is simply show/hide tabs options, with the ability to set a default tab. I've gotten kind of used to making .ovr files for every pnd to organize them into the tabs I like.

I also haven't figured out how to change the background image of minimenu, so either I'm missing something or that could be an option as well.

Lastly, I have never gotten clock speed to set correctly through .ovr files, so it would be great if there was a quick option to change clock speed without opening another program, like in gmenu for gp2x. Not sure how feasible that is.
 
EvilDragon said:
DaveC said:
Oh yeah, will something be added to the PND library so that override preview pics will be shown even when lazy devs don't include their own in their PNDs?

Can the apps be in any dir or do they need to be in "menu". I could put directories called "games" and "Emus" etc in the root of my SD if they will be read.

Well, theoretically, you can put then in any dir. The dirs the PND system look for are set in a configuration file in /etc/pandora/conf/

yep, ED is specifically referring to /etc/pandora/conf/desktop, which currently looks like:
http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-libraries.git;a=blob;f=deployment/etc/pandora/conf/desktop;h=a43e22a2fc2f0d6ce22621d82fda32cb722df0a5;hb=60a7ee774fcec2ae07461037ae7b3ca1619a8c6d

Consider the desktop section:
[desktop]

6 searchpath /media/*/pandora/desktop:/media/*/pandora/apps

You can change that to be /media/* if you want to scan the entire SD cards/USB-drives/etc, or something like /media/*/games:/media/*/apps to look in 'games' and 'apps' at top level.

I know you hate mucking with config files so someday we shoudl maybe make a simplew tool to tweak them, but I rather figure -- they're good enough for most people, and for peopel who want to tweak, they can learn how :)

So you can edit the file in place in NAND, or copy it to SD and edit it there as an override (so if you blow it up, eject the SD and everything still works.) Stick override conf files in /pandora/conf on your SD. (That said, looking at the code, I think overrides might've broke in hf#3, so I'll put a fix in for hf#4)

jeff
 
Last edited by a moderator:
We've been avoiding setting clock in minimenu, since we should just be relying on (future) auto-clocing by CPU, or the setting in the PND files and ovr files.

But it is tempting to add a 'default speed for minimenu' and a 'default speed when running an app' to the conf, so maybe I'll do it (for now.)

You can specify a default tab now (in the text conf file, mmenu.conf), but I'll be having that in the config UI so you can just specify it (as well as pecify which categories to show/hide as tabs, and in what order)

For background image, it is currently set by the theme in use; you can easily duplicate a theme (its just a directory) into a new directory and copy in your image for the background; if you guys like, I can make an option in the config UI to specify your own image to use for background, even when the theme specifies something else; it could look like hell then, but it'd be up to you, and save you doing theme directory copying?

jeff
 
skeezix said:
6 searchpath /media/*/pandora/desktop:/media/*/pandora/apps

You can change that to be /media/* if you want to scan the entire SD cards/USB-drives/etc, or something like /media/*/games:/media/*/apps to look in 'games' and 'apps' at top level.

So you can edit the file in place in NAND, or copy it to SD and edit it there as an override (so if you blow it up, eject the SD and everything still works.) Stick override conf files in /pandora/conf on your SD. (That said, looking at the code, I think overrides might've broke in hf#3, so I'll put a fix in for hf#4)

jeff
I had my emu pnds in for example: /media/pandora/menu/hatari/

But recently I put my emu pnds in for example: /media/pandora/menu/emus/hatari/ as with all of the stuff being released the MENU dir was geting unwieldy like the appdata is getting with everything in one big pile.

Then in Hatari I have Hatari.pnd, Hatari.ovr, Hatari.png, hatari_#0pvw.png, ROMs.

I noticed as soon as I added another dir level minimenu comes up slower. Now I want to be able to bring those dirs up a few levels to gain speed back. I also have ROMs in those same subdirs I wonder if that is slowing things down? I hate putting ROMs in appdata as that is really starting to get big and messy but I wonder if it would be faster?

Also putting the preview pics in doesn't work if the original pnd didn't have a pic. It seems there must be a pic to override in order for that to work. I hope that will be changed so that the pvw pic will be read even if the original didn't have anything.

Oh yeah how do I get to the NAND to copy the mm config file?
 
Last edited by a moderator:
Using subdirectories shouldn't appreciably slow it down (unless perhaps a really slow SD); possibly it could slow it down, but I'd be surprised; If so, it wouldn't be by distance from SD-root, but by distance from searchpaths-roots; interesting. I'll have to do some experimentation, but I shoudl thyink the directory scanning is pretty darned fast, and the only slow bit would be icon-reading, but if directory scanning gets slow from the multiple directory openings, perhaps I'll have to do some trickery.

jeff
 
Way more effort than intended, but ah well :)

One of the config pages looks like this, but it already nearly works for all of it; I just need to get it saving and loading and switch a few things arond, and I'll throw you guys a beta; probably a couple of days, since weekends are tough for my time.

minimenu_0008.png
 
Back
Top