GeoShell menus are defined in the registry and can be called up using HotKeys, plugin buttons (GeoMenu, GeoMenuLaunch, or EButton) on bars, or desktop mouse clicks.
Defining Custom Menus
Each menu is defined under the key HKEY_CURRENT_USER\Software\geO\geOShell\Services\Menu There should be some default menus defined there already, and you can follow their examples.
To create a new menu
- Open regedit, navigate to ...Geo/Geoshell/Services/Menu .
- Create a new subkey within Menu, and give it any meaningful name you want.
 | TIP Special menu names allow you to access the menu via a click on the desktop Those names are combinations of: Rbutton , Mbutton , Lbutton and optionally Shift and/or Ctrl . For example, if you simply click the right mouse button, you will see the menu defined under the registry key Rbutton , if you are holding down the shift key, the menu name is RbuttonShift , if you are holding down the control key then RbuttonCtrl is used and if you have both pressed it's RbuttonShiftCtrl . |
You now have a new, empty menu.
To configure your new menu
Menus consist of a list of regedit string values and keys, each named after a numerical value, starting with "0" (zero), that determines what order they appear in the menu. Sound confusing? It is at first, but follow these steps and it should start to make sense:
- In regedit, in your new, empty menu subkey, create a new string value and change its name from New Value #1 to 0
- Double-click the string 0 and for Value Data, enter the path to a folder, without quotes. (for example, C:\MyDocuments\... , although for the purposes of this tutorial you should probably pick a folder with very few files.)
- Click OK.
- Perform these same steps to create a second string value, this time named 1 pointing to a different folder.
- Now, we'll create a sub-menu for our menu. Create a new key within your menu, and name it 2 Once again, it is best to pick a folder with just a few files in it.
- Same as before, create yet another menu-style string value. However, since we are branching off of another menu, effectively starting a new one, we must start again at 0
- We're not done yet, however. We need to give this submenu its own characteristics. The following are optional string values for submenus that you can use to customize its appearance and function:
| Icon |
a path that references the icon you want to use for the submenu item in your menu. |
| Name |
a string with the name you want to give your submenu. |
| Folder Filter |
a comma-delimited list of file extensions you want included in the menu. The "dots" should not be included. Ex: jpg,gif,bmp or doc,pdf,txt,html |
| Folder Display Subs |
a boolean value, which if FALSE (0) means that the subdirectories of the menu items will not be shown (geoshell boolean should be defined in the registry as a DWORD which accepts a value of 1 or 0, where 1 is "true" and 0 is "false") |
| Display Without SubMenus |
a boolean value, which if TRUE (1) means that files in subdirectories will all be 'flattened' into one menu. |
 | IMPORTANT!
- Menu entries must be consecutive (0,1,2,3,4,...), starting with 0. If you miss one number, the menu won't work correctly!
- You may not link directly to an application from within a menu, only to folders. (If you don't like this, holler on the forums and maybe someone will change it.)
|
You're done
Congratulations, you've configured a menu. You can use these concepts to modify the rbutton menu to your liking, or add the name of your menu (that you specified in "To Create A New Menu) to the Menu section of a GeoMenuLaunch button. What follows is reference information that you can use to add more power and flexibility to your menus.
Special values
There are two special things about the actual menu items (the REG_SZ values with numbers as names .. which are the actual menu items).
First:
You can merge menus by using a pipe "|" to put two paths into one menu item.
For instance, setting a value to
C:\myFolder|C:!AnotherFolder would create ONE MENU with all the items in myFolder and AnotherFolder. This even merges subfolders ... so if there was a folder C:\myFolder\images which had a picture called myface.jpg , and another folder C:!AnotherFolder\images with a picture called herface.jpg , the resulting menu would have one submenu "images" with two items: myface and herface.
 | IMPORTANT!
When you use the pipe to merge two paths into one, that menu will no longer auto-refresh if files are added to the folder, which means that to update it you'll have to recycle (which – due to a bug – will break any menus that were auto-refreshing). The current default start menu is done this way (with pipes) and therefore does not refresh ... here is a reg file which will fix this. |
Second
You can use certain special key words instead of actual paths, or to get special menu items which you can't otherwise create:
The following are keywords which point to special paths.
 | TIP These paths are configureable in HKEY_CURRENT_USER\Software\geO\geOShell\Services\Launch and if set to "standard" in there are automatically set. Note that erasing the values in ...Services\Launch (ie: setting "Favorites" to an empty, non-value, not deleting it.) will result in that keyword not actually doing anything if used in a menu (ie: it creates no menu items) |
| Common Start Menu |
The "All Users" Start Menu (not present on most 9x system). Commonly merged into one setting with "Start Menu", like desribed above |
| Start Menu |
Your username's Start Menu folder. Note, BOTH start menus leave out the "Programs" submenu, so you must add it seperately. Don't ask why. |
| Programs |
The Programs submenu which is purposefully left out of the Start Menu |
| Common Programs |
The Programs submenu which is purposefully left out of the Common Start Menu |
| Desktop |
Your user name's Desktop folder. |
| Common Desktop |
The "All Users" Desktop folder (not present on some 9x systems) Commonly merged into one setting with "Desktop" like desribed above |
| Favorites |
Your username's IE favourites folder |
| Documents |
Your username's "recently used documents" folder |
| Quick Launch |
Your "Quick Launch" Folder. Usually ...!YourUserProfileFolder\Application Data\Microsoft\Internet Explorer\Quick Launch |
The following are keywords which create menu items with special functions:
| About |
When clicked, pops up the GeoShell About dialog (useful for checking what version you're running). |
| Run |
When clicked, pops up the shell's RUN dialog |
| Logoff |
When clicked, starts the log off user procedure (windows creates a confirmation dialog). |
| Shutdown |
When clicked, starts shutting down windows (windows creates a confirmation dialog). |
| Recycle |
Creates a menu item to recycle Geoshell (same as pressing the Core_Recycle HotKey, usually Win|C |
| Properties |
When clicked, displays the "Display Properties" control panel. |
| Close |
Creates a menu item to close (exit) GeoShell. (same as pressing the Core_Exit HotKey, usually Win|X |
| NewGeoBar |
Creates a menu item to create a new empty geoBar(same as pressing the Core_NewHost HotKey, usually Win|H |
| Plugins |
Creates the plugins menu items (usually put this on it's own submenu .. it lists all the installed plugins, and if you click a plugin on the list, it will create a new GeoBar with that plugin on it instantly. |
| InstallPlugin |
Allows you to install a plugin. (same as pressing the Core_!InstallPlugin HotKey, usually Win|I |
| Tasks |
Creates a list of all the running tasks (same list as GeoTasks plugin) |
| Drives |
Creates a list of all the drives on your computer, plus a menu item for "My Computer" |
| Settings |
A few special "settings" related items: Control Panel, Printers, and Dial Up Networking .. which should open their respective items in your filemanager. |
| Sep |
Creates a separator line in the menu |
Firing a hotkey when I click on the desktop with my mouse:
Yes, you can BindDesktopClicksToHotKeys 
More menu examples
For more menu examples, look in your registry under HKEY_CURRENT_USER\Software\geO\geOShell\Services\Menu\...