Release
Notes For MenuToGo Milestone 1
Please Note: MenuToGo is still in development. This is a Milestone release to investigate if the MenuToGo concept is something that people want and would be willing to use. It will be offloaded to a proper committee of people to manage the format, if it is liked, so that further standardisation can take place (and maybe it can become an ISO standard)!
Introduction:
MenuToGo is a cross-platform, yet secure, Autorun on steroids. Developers can drop a menu into any folder or archive, allowing users to easily perform the most common actions on the archive, without requiring extra reading or knowledge of commands to run.
Please email me to give your honest opinion. I am hoping that I can get this integrated into every distro, and need your help to do so.
This is an implementation of brainstorm idea: http://brainstorm.ubuntu.com/idea/7167/
Developer Contact details
Email me (Andrew Luecke ) at auzy@users.sf.net
Use the services on the project page to get started: http://sourceforge.net/projects/menutogo/
Developers interested in helping can contact “auzy” on IRC too, at #menutogo in irc.freenode.net
Features:
CROSS PLATFORM!!!! Runs in Linux and windows currently. But has been designed with portability in mind, so should also run on OSX, and other OS's with only a change to the options file (which you can do without needing to recompile)
Inbuilt variable system. You can create variables with specialised contents for operations, which can be defined based on NOT, OR, AND operations
Can identify if a file/program, environment variable or internal variable exists
Can compare the contents of a variable, text string, or contents of an environmental variable
Commands can be either text, or complex. Complex commands is a string composed of Environment variable contents, internal variable contents, or internal variable. In fact, you can even have requirements for only small parts of the complex command. So you may change the command based on whether the user is using RPM or DEB for instance. Or, change the command if they are using windows
Unlike Windows Autorun, will never autorun any programs. So you cant put a menutogo file on a memory stick, and autorun a trojan. The MenuToGo will always show up.
Secure. Whilst you can never guarentee the security in anything, this has been designed with security in mind. In fact, it is no less secure then normal. Users who are tricked into running programs normally, will just as easily be tricked with this. And users who wouldn't be normally tricked regardless, will be tricked just the same.
Uses the Xdg Base Directory standard. At the moment it is only implemented for per user config, however, will be extended in the future to fully support the standard. Some slight changes may have to be made though for other OS's (like /etc and $HOME doesn't exist on windows, so will fall back to something different for them). If you have “XDG_CONFIG_HOME” currently defined as an environment variable though in any OS, it will use it.
Why would I want to use MenuToGo as a user?
I simply ask, what would you prefer to see when you open a program.
And then you need to read the readme to work out how to compile this thing, or install it, and it really doesn't help much. Why should you have to dig around in a readme to work out how to install it. Way to go scaring off users!
Or would you prefer the following?
Notice, MenuToGo can actually identify Prerequisites which are missing for you, and can offer ways of getting them (RPM, DEB, it doesn't matter, or tar.gz). And, it can automatically start the compile, so that you don't need to read a readme text to simply work out how to install a program. Developers can make it show whatever they think is relevent to the user, so you don't need to jack around and work out whats relevent yourself.
Why support it as a developer?
Unlike a package file, it doesn't require you to archive your package in a special way. You simply dump the menutogo file on your repository, and when anyone zips it up, if they have menutogo, it will work. The problem with debs or rpm's, is that they require special packaging EVERY release, and you need to make each package seperately. This file once made, will only need changing if you make major changes. And, you can make it perform differently on different platforms. It is cross platform, and works equally on different platforms (no missing features)! In fact, for some people, they wont even need to change the file for their archive to run on any platform.
And instead of getting tons of people asking “how do I compile this”, or “why am I getting this flamingly obvious issue that is caused by a missing file?” you can actually show links to installing prerequisites on your menu if you want to do so. The problem with compiling from source for newbies, is actually working out the command to compile, and what they need to install as prerequisites. This can help that. And since its just a file, even if they get it off SVN, they can still use the MenuToGo system to help with dependencies (unlike debs or RPM's, which need to be prepackaged)
You also can make it easy for people to access the readme, because you can make it first link. So no excuse for not RTFM. If its easy to access, people will read it, but if they need to jack around with dozens of files to find it, they generally wont bother. ;)
Furthermore, you can detect if they have RPM, or deb, or whatever, and automatically, help them install their pre-requisite packages, or block them from trying to install unless they have the packages installed.
And its not just for developers, you can have an archive with 15000 htm files in it, and just use the menutogo menu to provide a list of the index's, so they can see which ebooks are available.
Setting up MenuToGo in Windows
Remember, Menutogo is still in development
Download MenuToGo from the MenuToGo project site.
Unzip it whereever you wish. Most people would probably pick “Program Files” or their desktop at the moment.
We
recommend that you also associate .menutogo files with MenuToGo (its
not required, but you do lose some usefulness without it). To do so,
browse to the Examples directory, and select “the regression
tests folder”. Right-click the “regressiontest.menutogo”
file within it, and select “Open With”, “Choose
Default program”.
Ensure you have “always use the selected program to open this kind of file” checked with a tick in it.
Go to browse, and browse to your MenuToGo folder, and select the MenuToGo.exe program. You may need to also select menutogo from the new window that opens up, before clicking ok.
The MenuToGo window should pop up with regression tests open. You are done, press ignore for now (the regression tests don't actually have any valid programs, and is only for testing, the other examples do though).
Skip down to using MenuToGo.
Setting up MenuToGo in Ubuntu/Linux/Gnome
Download MenuToGo from the MenuToGo project site.
Please note, KDE4 instructions are similar in concept, to these, so just use these as a guide for now
Unzip it whereever you wish. Most people would probably pick their desktop at the moment.Go to the directory and open it
We
recommend that you also associate .menutogo files with MenuToGo (its
not required, but you do lose some usefulness without it). To do so,
browse to the Examples directory, and select “the regression
tests folder”. Right-click the “regressiontest.menutogo”
file within it, and select “Open With Other Application”
You
must next select a custom command, press browse.
Find the MenuToGo Program, and select it.
The
Regression test window should pop up, everything is now done. Press
ignore.
Using the Examples.
There are a few ways to currently use MenuToGo. You may either double click .MenuToGo files, drag .menutogo files into the menutogo icon, or, the easiest way (is to drag a directory containing a menutogo file into the menutogo icon. It will automatically find the menu and activate it (as shown in the below picture.
How will integration with MenuToGo help users in the future?
If developers place a Menutogo menu in the zips of their programs, or even the developer tree, by integrating MenuToGo with your unzip program the zip simply needs to send the directory name of the decompressed file to the menutogo system, and it will automatically show the users the options available. So what this means, is that if you want it to, when you open a zip, the zip can tell you what you can do with it.
The MenuToGo file format
We are using XML for the file format, so it is very extendible, and can be edited with a file editor! The first revisions used a special layout, to make it easier to write, but MenuToGo has now grown so far beyond it, that it needed something better.
I recommend taking a look at the regression test to get an idea of the variable processing. There is a simple example of the complex processing too (but I will extend this). I can also help you too.. Proper documentation will be out soon if there is interest in menutogo.
Current Limitations:
Can integrate into zip programs, but hasn't been yet. But should work in any zip program that supports running a script/program on a directory, after unzipping
Needs better documentation. Sorry about that.. Examples need improving too
Better default config file.
No debug mode
QT dependant. Will remove QT dependency over time.