[Jaffa Software]

Tuesday 12 January 2010

Catorise: auto-organise N900 applications

In a brief break from Hermes-related Maemo work, I was inspired by Manfred Weiss' MyMenu to create an auto-organising menu application for the N900:

[New application menu: top-level]

Catorise organises the application menu to have top-levels corresponding to the sections in Application Manager. Features:

  • Uses the section icons from the current theme, falling back to the default theme if none available.
  • Determines an application's section from the same information the packager used when uploading it to Extras.
  • Keeps track of application installs/uninstalls.
  • Entirely non-destructive: remove the package and everything goes back to how it was before.
  • "All" and "Other" sections, just as in the App Manager, to provide additional access routes.

So, with Catorise the section you find an application's icon is the same you used to install it!

It is currently in Extras-devel. This should, therefore, only be tested by people who are willing to suffer potential data loss, hair loss and the eating of babies.

It's largely feature complete, however there are some known problems/future developments:

  • Applications installed from Ovi will go into the "Other" section, due to the way Ovi on Maemo has been designed. I've some thoughts on how to work around this, though.
  • Changing the theme will only update the icons on the next application install/removal.
  • A quick GUI editor could be created to manipulate /opt/catorise/menu which is a simple text file cache to speed-up rebuilding. This would allow the user to shuffle the apps to best suit their use cases.

28 comments:

  1. There's a bug with theme detection if you're using the orange-based "Digital Nature" theme.

    You'll be stuck with the bluish icons above, I'm afraid. Will fix in the next version :-)

    ReplyDelete
  2. good idea, and good looking (much than my-menu thaht i've been using a lot) but i've a question :

    i've modded /opt/catorise/menu with leafpad in root mode but nothing changed in the menu, so i tried to uninstall an application but nothing append, but the file is just as i modded it so it have not been updated or replaced ...

    i'm just trying to reboot or install a program just to see but how can i force the update of the menu ?

    thanks for advance ...

    ReplyDelete
  3. At the moment, it doesn't support anything in the root other than the sections. I don't know if that'll change.

    To regenerate the menu after changing /opt/catorise/menu, just run /opt/catorise/catorise (as root) or install/uninstall another application.

    ReplyDelete
  4. Thanks Jaffa!!!
    Was just wishing for something like this...
    (Need to get back into coding so that I can become a productive maemo-citizen)

    ReplyDelete
  5. it's ok for regenerating menu by using catorise script in root , but i still have another problem : both Web browser and Foreca Weather appears in categories, not even in other or utilities... just in All, what is the problem ?

    ReplyDelete
  6. Wow! Nice!

    It's already good but I'm sure it will get better!

    It would be nice to control in which category the icons go. Like the bounce is now in Other and not in Games and there's nothing I can do about.

    ReplyDelete
  7. you can change this : just edit file /opt/catorise/menu

    and chage line 'bounce.desktop = other' to 'bounce.desktop = games'


    then in xterm do a 'sudo gainroot' and then a '/opt/catorise/catorise'

    ;-)

    ReplyDelete
  8. I know I'm making a fool of myself bringing up the same idea whenever somebody in the communty says "menu"... But anyway:

    Wouldn't it be more elegant to encourage package maintainers to add freedesktop.org compliant "Categories="-entries to their desktop files? Yes, for any menu application that would support this now it'd be "dead code" for a while, but in the long run I firmly believe it's just one of these chicken-egg problems that need to be solved by a few brave people taking the lead.

    Other mechanisms of course *must* be used as fallbacks. Still I believe it's a bit of a dirty hack to rely on app manager categories for the application menu - as the example with Ovi apps in "Other" shows.

    ReplyDelete
  9. i've have problems :

    - MicroB only appears in 'All', nowhere else
    - i'm using Matrix theme which have it's own categories icon (as it shows them in HAM) but menu is still using NSeries ones, i've tried rebooting, adding apps, removing apps, regenerating menu ... nothing happended ....

    help :-)


    thx for this work however !

    ReplyDelete
  10. http://hrw.pastebin.ca/1749489 is version which has few fixes:

    - uses icons from default theme not from alpha (NSeries) one
    - handle desktop files with many Type=something lines (Browser for example)

    To get proper icons go to /usr/share/themes/ and check where "default" links and fix it it does into inproper place.

    ReplyDelete
  11. Thanks for all the feedback.

    @Oscar; when we chose the package sections we did it to try and align closely with the desktop categories. So, v0.0.3 of Catorise will use them if present. How we encourage devs to use them is an interesting question, however.

    @hrw; thanks - I was about to upload a version which did that, and better handled Ovi apps (a starting point, anyway). I'll check your patch to see if there's anything I've missed and get that uploaded shortly.

    @TheBootroo; the changes that hrw & I have made will fix both issues.

    Suggestions on how to invoke /opt/catorise/catorise on a theme change welcome :-)

    ReplyDelete
  12. ok great job guys !

    is the new version already on extras-devel or not ?

    ReplyDelete
  13. for invoking catorise script on theme change, look at Dbus i think ...

    ReplyDelete
  14. @TheBootroo, indeed. In fact, I've just realised I don't need any extra dependencies, just a .service file (I think).

    ReplyDelete
  15. v0.0.2 is on its way to Extras-devel. Changelog:
    Ignore location of 'other' items when reloading cached menu.Add an 'Ovi' category pending better categorisation of Ovi-sourced items.Fix theme handling; credit also to Marcin Juszkiewicz (hrw) for the same.Fix multi-sectioned .desktop files (e.g. Web); credit also to Marcin Juszkiewicz (hrw) for the same.Upcoming work:
    Use .desktop file categories, if present (the community chose the package sections on Maemo to align with the desktop menu categories on purpose :-))Try and register a DBus service to pick up theme changes.Use the localisation strings from App Manager (although wrapping is an issue in the application menu; in that it doesn't).
    Further Ovi categorisation work.Try to work out why some people get "More..." ordered alphabetically.

    ReplyDelete
  16. Beautiful.
    Two imidiate suggestions:
    - Localization. The categories should be translated like in Application manager. We don't all speak English. For me only "More..." is translated. And I think that one should be titled "Other" like in app manager.
    - "More..." should always be last and not sorted alphabetically (it doesn't seem to be in your screenshot but it is for me)
    - Add application to bugs.maemo.org so I can write further findings there :-)

    thanks!

    ReplyDelete
  17. thebootroo [Member]13 January 2010 at 14:15

    i've installed the 0.0.2 and it work fine for me, but i've a suggestion !

    instead of deleting the hildon menu file during refreshing , which causes a few second with no apps at all in menu, a propose to construct file in a temporary directory (e.g. /tmp) and when the script finish, do a simple mv to the right place.
    doing that the refreshing will seems almost instantaneous i think !

    i hope you like my idea ;...

    ReplyDelete
  18. @thebootroo, I don't think that'll help - the problem is hildon-desktop noticing the file changes and rereading it.
    The actual task of writing the menu is pretty instantaneous. Now, I *think* the level of disruption could be reduced by having each section in its own .menu file (just like the "More..." menu is by default).

    ReplyDelete
  19. Great idea, it would be good to have say all games that are installed appearing in one directory etc.

    Perhaps you could use the categories on the Maemo store as an example

    Multimedia in Mulimedia
    Internet in Internet etc

    Would help make it nice and tidy instead of having 50 odd app icons on one huge scrollable screen lol.

    Keep up the good work !

    ReplyDelete
  20. Its good but I think it need to have some editting function for us to organise it better. some of the app go into the wrong category...

    ReplyDelete
  21. @David, agreed - I've a number of ideas how to use Ovi's categorisation as the basis for Ovi app filing.

    @First Knight, which go into the wrong category? The built-in ones have specific overrides, so better suggestions (in particular, Phone and Conversations) are welcome.

    ReplyDelete
  22. I guess that there isn't room to keep it all on one screen, but it would be nice to be able to specify a few apps that would appear in the first row for direct launching (kind of like the "My Selection" folder in the previous Maemo version's app menu)

    ReplyDelete
  23. Each level can scroll; if you put a lot of stuff on the top-level, it's scrollable just like every other.

    Of course, this'd mean creating a GUI...

    ReplyDelete
  24. @Jaffa: Just make us edit the catorise/menu file... ;)

    ReplyDelete
  25. There's a thread with further discussion on talk.maemo.org:

    http://talk.maemo.org/showthread.php?t=40265

    v0.0.5 is now in Extras-devel and has fixes or workarounds for all known bugs.

    ReplyDelete
  26. Wow! I love the feature on tracking of application installs/uninstall 'coz I sometimes having a hard time if I accidentally uninstall an application and then after that, needed it again. This tool is really perfect for my needs. Is it available for other phone as well? Aside from N900? Anyway, that was a excellent idea. Good job!

    ReplyDelete