skeezix
Internal Development
(RFC being 'request for comment.)
Theres a million things we'd all like to do in the firmware; this is not to discuss that. We know, but we only have a couple hands at it
Or should minimenu just stay as it is, nice and 'simple' (its already pretty flexible)? It may not please everyone, but the goal was simple to use, and simple consistent default setup.. not to please everyone, but to just work. Should we leave it alone, or grow it?
Still, a few suggestions seem to come up (mostly from DaveC), but a few I've onserved over the months... hence things I've been working on and considering; any problem with the below, let me know
- currently (to avoid making too much work for skinners) minimenu uses 'info panel' on the 'right' for menus; add a basic dialog box renderer to minimenu so it can do popup menus instead; a bit more work for all existing skins, but gotta push for it sometime. This sort of frees me up to do a few things without being 'stuck'.
- switch 'Select' menu to dialog box instead of living in the right side info panel; implication -- the info panel is _always info_ then, instead of sometimes being info, sometimes being a menu.
- add some menu items (context dependant) and re-arrange the select menu. ie: if an item is selected, and menu is brought up, could offer a 'delete this app' option, or 'hide this app'. (Delete I've avoided since you might have 5 apps in one pnd, and deleting it deletes all at once. Most pnds are a single app, so it makes sense there. As a workarond, when hitting Delete, could show a list of impacted apps in confirmationdialog..);
- for re-arrange, need to consider .. select menu to do config and global changes, and X or something to pop up item menu with Toggle Info Panel, Delete pnd, Change preferred cpu speed, Hide app, stuff like that. Need to review all the options and mull it over still. (minimenu was meant to be simple and not too configurable, but seems we've got a lot of people who want it to be configurable and complex)
- now that the info panel is purely info panel and not menus for random things, can make it togglable; maybe changes to skins to support this effect, but I'm thinking about something like .. default to info panel on, but allow alt-f or Y or something to toggle it on and off, with the goal of letting you have a full screen of icon grid if you want it. Another option is to make the info panel cease to exist entirely, and just make it a hovering panel (either locked in place or even movable with drag and drop but mostly just a pop up when needed thing) -- ie so you could summon the info panel and then dismiss it; I dislike hovering panels since it implies _Covering_ stuff, and is lots of UI rework. (Remember, minimenu was originally written pretty quick, so its not the most architecturally awesome piece of code So all told, I'm thinking of just toggling between two modes -- info panel on, and info panel off, and each skin would really branch into two skin-configs maybe (one for each mode), or something. For toggling .. 'Y' currently goes to Help/Documentation for a given pnd, but it occurs to me we coudl have Y toggle info panel on and off, and a menu item to bring up the Help (though that puts the help a few steps removed, peopel dont' use it all the time after the first look I imagine, so maybe thats okay.)
- a new option in the config panel that could be enabled; "intuit tab from directory structure" (ie: insetad of pullign categories from PXML and then using categories for tabs, you could eelct to file the apps to tabs entirely yourself, using directory structure.) This would be 'last step in the chain of decisions' so would override everything (ie: PXML first, then ovr file overrides that if present, then this.) The way this would work is still to be nailed down (since its a fuzzy thing), but I was figuring something like ...
- a second option that only is used if the first option (intuit tab from dir struct) is used "allow subcategories as well".
For any given search path entry (such as /pandora/menu, but there are others and you can change the searchpaths all you want of course, if you're a config spelunker), make directory contained within imply category; if the second option is set as well, then _Two directories_ are used (so you can have subcat.)
Implication -- an app now has a single category per pnd file (normally PXML can imply multiple categories per app); also, a pnd file may have multiple apps within, so this rather implies the tab for all of them.
Example: Currently you make /pandora/menu/foo.pnd (or even /pandora/menu/bar/foo.pnd) and the PXML (and optional .ovr file) specify the categories and thus tabs
-- currently you can hide/show the app or tabs from the menu, of course
Example: Turn on this option (intuit from dir structure), and then /pandora/menu/bar/foo.pnd implies that all apps within foo.pnd are in tab called 'bar'. Thats it. Suddenly you use drag and drop in windows or the dir browser on device to specify tabs. (for minimenu, ignored by xfce etc, which would use PXML/.ovr files as normal.)
Example: If option is on, and pnd file is in /pandora/menu/foo.pnd (not in a subdir of the searchpath), then PXML/.ovr-file category would be used as normal (since nothing is implied by dir structure location.) ie: 99% of people don't know they can subdirectory pnd files within a searchpath, so their stuff is in /pandora/menu or /pandora/desktop or whatever .. so turning on the option wouldn't _break anything_, which seems ideal
Example: If option is on, and the second option is also on, then you coudl do .. /pandora/desktop/bar/subdir/foo.pnd to imply that foo.pnd is in both 'bar' and 'subdir', and then use tabs for both (disabling as you see fit in the config menu of course.)
So essentially, we'd have a option or two, that are globally effective; if you want to specify category by dir structure, then you do it as either single-category, or cat+subcat, for all tabs. Not 'some tabs have subcats, others don't; but you can easily hide/show tabs in the config panel already, so I figure no biggy; I imagine most people would just pick the first option and categories apps to a single tab, and not worry about subcats. (ie: or maybe Games, and Games with subcat Emu's, perhaps.)
- a new option in config 'keep appdata with pnd-file'; when turned on .. if you have /pandora/desktop/bim.pnd, then it would put appdata in /pandora/desktop/bim-1234/ instead of /pandora/appdata/bim-1234; note that the user woudl be responsible for relocating any existing appdata to the new location on his own.
- I've been debating a 'ovr editor' since no one knows about ovr's excdept the 5 people who looked closely at the wiki But with options above to specify category in alternate ways, it might confuse people; still, ovr's override PXMLs in a pnd, and are useful for minimenu and xfce and any other desktop, so they have a place. ovr's let you override the cpu-speed preference of an app, its advertised categories, the name of the app, a few things like that. An ovr editor (since it works for all environments) woudl probabyl be a tiny standalone dialog box based app, which would look goofy when run from minimenu, but such is life (unless I write everything twice, and who has time for that?) Alternatively, I could just put a 'cpu speed editor' into minimenu, since thats really the option people woudl mess with, I bet. As a separate app, anyone can do it, and I can atleast od it separetly to the rest.
- Right now, theres a 'reveal hidden' menu item to show the suppressed tabs; it might be worth changing so that instead of letting you 'bring a hidden tab into the shown tab list', to change the way it works entirely; so only show 'top level tabs', and not show sub-cat tabs at all; then hit the menu item 'drill down', which pops up a list of subcats, and you pick one, and it temporarily shows that one instead. That is goofy from a UI design imho, since look away for 10 mins and look back, and you migjht see only 1 tab and say 'wtf' .. but I could put a note in the tab bar .. show the one tab, and say to the right of it 'we're in drill down mode; hit menu to drill up again' or something. This is why I built it how it is now .. show shown tabs, and then let you reveal a hidden tab idf you like; stil same tab UI, no confusion. But it weirds ED out
- Really low priority, but trivial to implement; a couple people asked if they could have minimenu not quit when an app is run. Thats rrivial to add technically. UI could be work .. could add a global conf item 'keep minimenu up when running apps', and it woudl always be that way. Just shoves minimenu into a window when another app is up, and no app switching/management in minimenu. Another option is when you hit Start or B to run an app, if you hold it down (say), could leave minimenu up, or something. But I'm not sure this option is useful at all (since mm is designed to quit on run, then come back up later)
Discuss.
jeff
Theres a million things we'd all like to do in the firmware; this is not to discuss that. We know, but we only have a couple hands at it
Or should minimenu just stay as it is, nice and 'simple' (its already pretty flexible)? It may not please everyone, but the goal was simple to use, and simple consistent default setup.. not to please everyone, but to just work. Should we leave it alone, or grow it?
Still, a few suggestions seem to come up (mostly from DaveC), but a few I've onserved over the months... hence things I've been working on and considering; any problem with the below, let me know
- currently (to avoid making too much work for skinners) minimenu uses 'info panel' on the 'right' for menus; add a basic dialog box renderer to minimenu so it can do popup menus instead; a bit more work for all existing skins, but gotta push for it sometime. This sort of frees me up to do a few things without being 'stuck'.
- switch 'Select' menu to dialog box instead of living in the right side info panel; implication -- the info panel is _always info_ then, instead of sometimes being info, sometimes being a menu.
- add some menu items (context dependant) and re-arrange the select menu. ie: if an item is selected, and menu is brought up, could offer a 'delete this app' option, or 'hide this app'. (Delete I've avoided since you might have 5 apps in one pnd, and deleting it deletes all at once. Most pnds are a single app, so it makes sense there. As a workarond, when hitting Delete, could show a list of impacted apps in confirmationdialog..);
- for re-arrange, need to consider .. select menu to do config and global changes, and X or something to pop up item menu with Toggle Info Panel, Delete pnd, Change preferred cpu speed, Hide app, stuff like that. Need to review all the options and mull it over still. (minimenu was meant to be simple and not too configurable, but seems we've got a lot of people who want it to be configurable and complex)
- now that the info panel is purely info panel and not menus for random things, can make it togglable; maybe changes to skins to support this effect, but I'm thinking about something like .. default to info panel on, but allow alt-f or Y or something to toggle it on and off, with the goal of letting you have a full screen of icon grid if you want it. Another option is to make the info panel cease to exist entirely, and just make it a hovering panel (either locked in place or even movable with drag and drop but mostly just a pop up when needed thing) -- ie so you could summon the info panel and then dismiss it; I dislike hovering panels since it implies _Covering_ stuff, and is lots of UI rework. (Remember, minimenu was originally written pretty quick, so its not the most architecturally awesome piece of code So all told, I'm thinking of just toggling between two modes -- info panel on, and info panel off, and each skin would really branch into two skin-configs maybe (one for each mode), or something. For toggling .. 'Y' currently goes to Help/Documentation for a given pnd, but it occurs to me we coudl have Y toggle info panel on and off, and a menu item to bring up the Help (though that puts the help a few steps removed, peopel dont' use it all the time after the first look I imagine, so maybe thats okay.)
- a new option in the config panel that could be enabled; "intuit tab from directory structure" (ie: insetad of pullign categories from PXML and then using categories for tabs, you could eelct to file the apps to tabs entirely yourself, using directory structure.) This would be 'last step in the chain of decisions' so would override everything (ie: PXML first, then ovr file overrides that if present, then this.) The way this would work is still to be nailed down (since its a fuzzy thing), but I was figuring something like ...
- a second option that only is used if the first option (intuit tab from dir struct) is used "allow subcategories as well".
For any given search path entry (such as /pandora/menu, but there are others and you can change the searchpaths all you want of course, if you're a config spelunker), make directory contained within imply category; if the second option is set as well, then _Two directories_ are used (so you can have subcat.)
Implication -- an app now has a single category per pnd file (normally PXML can imply multiple categories per app); also, a pnd file may have multiple apps within, so this rather implies the tab for all of them.
Example: Currently you make /pandora/menu/foo.pnd (or even /pandora/menu/bar/foo.pnd) and the PXML (and optional .ovr file) specify the categories and thus tabs
-- currently you can hide/show the app or tabs from the menu, of course
Example: Turn on this option (intuit from dir structure), and then /pandora/menu/bar/foo.pnd implies that all apps within foo.pnd are in tab called 'bar'. Thats it. Suddenly you use drag and drop in windows or the dir browser on device to specify tabs. (for minimenu, ignored by xfce etc, which would use PXML/.ovr files as normal.)
Example: If option is on, and pnd file is in /pandora/menu/foo.pnd (not in a subdir of the searchpath), then PXML/.ovr-file category would be used as normal (since nothing is implied by dir structure location.) ie: 99% of people don't know they can subdirectory pnd files within a searchpath, so their stuff is in /pandora/menu or /pandora/desktop or whatever .. so turning on the option wouldn't _break anything_, which seems ideal
Example: If option is on, and the second option is also on, then you coudl do .. /pandora/desktop/bar/subdir/foo.pnd to imply that foo.pnd is in both 'bar' and 'subdir', and then use tabs for both (disabling as you see fit in the config menu of course.)
So essentially, we'd have a option or two, that are globally effective; if you want to specify category by dir structure, then you do it as either single-category, or cat+subcat, for all tabs. Not 'some tabs have subcats, others don't; but you can easily hide/show tabs in the config panel already, so I figure no biggy; I imagine most people would just pick the first option and categories apps to a single tab, and not worry about subcats. (ie: or maybe Games, and Games with subcat Emu's, perhaps.)
- a new option in config 'keep appdata with pnd-file'; when turned on .. if you have /pandora/desktop/bim.pnd, then it would put appdata in /pandora/desktop/bim-1234/ instead of /pandora/appdata/bim-1234; note that the user woudl be responsible for relocating any existing appdata to the new location on his own.
- I've been debating a 'ovr editor' since no one knows about ovr's excdept the 5 people who looked closely at the wiki But with options above to specify category in alternate ways, it might confuse people; still, ovr's override PXMLs in a pnd, and are useful for minimenu and xfce and any other desktop, so they have a place. ovr's let you override the cpu-speed preference of an app, its advertised categories, the name of the app, a few things like that. An ovr editor (since it works for all environments) woudl probabyl be a tiny standalone dialog box based app, which would look goofy when run from minimenu, but such is life (unless I write everything twice, and who has time for that?) Alternatively, I could just put a 'cpu speed editor' into minimenu, since thats really the option people woudl mess with, I bet. As a separate app, anyone can do it, and I can atleast od it separetly to the rest.
- Right now, theres a 'reveal hidden' menu item to show the suppressed tabs; it might be worth changing so that instead of letting you 'bring a hidden tab into the shown tab list', to change the way it works entirely; so only show 'top level tabs', and not show sub-cat tabs at all; then hit the menu item 'drill down', which pops up a list of subcats, and you pick one, and it temporarily shows that one instead. That is goofy from a UI design imho, since look away for 10 mins and look back, and you migjht see only 1 tab and say 'wtf' .. but I could put a note in the tab bar .. show the one tab, and say to the right of it 'we're in drill down mode; hit menu to drill up again' or something. This is why I built it how it is now .. show shown tabs, and then let you reveal a hidden tab idf you like; stil same tab UI, no confusion. But it weirds ED out
- Really low priority, but trivial to implement; a couple people asked if they could have minimenu not quit when an app is run. Thats rrivial to add technically. UI could be work .. could add a global conf item 'keep minimenu up when running apps', and it woudl always be that way. Just shoves minimenu into a window when another app is up, and no app switching/management in minimenu. Another option is when you hit Start or B to run an app, if you hold it down (say), could leave minimenu up, or something. But I'm not sure this option is useful at all (since mm is designed to quit on run, then come back up later)
Discuss.
jeff