------------------------------------------------------------------------------- lxpanel configuration notes... ------------------------------------------------------------------------------- No 'start-here' menu... https://wiki.lxde.org/en/LXPanel#Fix_empty_menu_in_LXPanel BUT this is incomplete as it assumes you are running a full LXDE system This may also be needed after new software is installed lxpanel NEEDS the "kdelibs3" package to create the hashed file located in ~/.cache/menus Rebuild menus... killall lxpanel find ~/.cache/menus -name '*' -type f -print0 | xargs -0 rm lxpanel & At this point kdelibs3 should have re-created a hashed filename in the ~/.cache/menus directory. File lists directories with desktop files. ------------------------------------------------------------------------------- Desktop (GUI to application glue) files... These have a suffix of ".desktop", and are located in... /usr/share/applications/ /usr/local/share/applications/ and for users ~/.local/share/applications/ NB: The prefix up to 'share' is known as $XDG_DATA_PATH". For example "gvim.desktop"... =======8<-------- [Desktop Entry] Version=1.0 Type=Application GenericName=Graphical Vi Improved Name=GVim Comment=Graphical Vim Text Editor Icon=gvim MimeType=text/plain; Exec=gvim %f Terminal=false StartupNotify=true Categories=Utility;TextEditor; =======8<-------- Desktop syntax is available in http://wiki.lxde.org/en/Main_Menu You can create one using lxshortcut -o .local/share/applications/xscreensaver-lock.desktop or edit an existing one using lxshortcut -i .local/share/applications/xscreensaver-lock.desktop The "Exec" can contain a "%f" which will launch files of a given "MimeType" which should become merged (somehow) into the file "mimeinfo.cache" in the same directory. Adding "TryExec" is an executable path that must exist or entry is ignored. Adding "Categories=" will add the desktop to the menu when panel is restarted. Without it it will be added to the "Other" sub-menu. Adding "NoDisplay" means don't display it in menus! To remove something added at a higher level a user-level desktop entry can add "Hidden" (it really means "Deleted") To make a specific application... > xdg-mime query filetype text.txt text/plain > xdg-mime query default plain/text > xdg-mime default gedit.desktop plain/text > xdg-mime query default plain/text gedit.desktop Manuals man xdg-desktop-menu http://wiki.lxde.org/en/Main_Menu http://standards.freedesktop.org/desktop-entry-spec/latest/ ------------------------------------------------------------------------------- Icon Handling The "Icon=" is the absolute file path or theme filename of icon to use, and is read from .../share/icons/{theme}/{size}/{type}/{name}.png Also in /usr/share/pixmaps Note that "hicolor" theme must always exist, as is the default theme for applications to place thier icons, it should be searched if icon was not found in the 'current' theme. Default theme in FC16 is "gnome". Note "thunar" will only assign an icon to a "desktop" file if the icon has a ".png" suffix or is located in the system icon directory. However "nautilus" will only display the icon is a full path is provided! ------------------------------------------------------------------------------- Mime Handling http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec ------------------------------------------------------------------------------- LXPanel General You can edit the pannel configs in the directory... ~/.config/lxpanel/default/panels/ After editing the configuation using a text editor lxpanelctl restart WARNING: the GUI configuation will re-write the panel config files. so do not run the GUI and a text edit of the configs at the same time For lxpanel syntax that can be used (but no explaination of the syntax) see http://manpages.ubuntu.com/manpages/oneiric/man5/lxpanel.hints.5.html This manpage is NOT part of the current lxpanel package! ------------------------------------------------------------------------------- Launchbar Command... =======8<-------- Plugin { type = launchbar Config { Button { id=/google-chrome.desktop image=icons/local/google-chrome.png } } } You can use a "image=" to override the icon in the "id=" desktop file This image can be relative to home The other way is to set a 'action' entry of the script to be run. But only can launch a single command with no arguments!!! Arrggghhh... =======8<-------- Plugin { type = launchbar Config { ... Button { id=exo-file-manager.desktop action=bin/lxpanel_scripts/open_notes image=/usr/share/icons/gnome/48x48/places/folder-templates.png } ... =======8<-------- Where the file "bin/lxpanel_scripts/open_notes" contains.... =======8<-------- #!/bin/sh exo-open --launch FileManager lib/notes =======8<-------- Notes... The "action=" can only contain a single executable name! If multiple words are used, then only the last word is 'executed'. Some type of "id=" is also required for GUI config, though it should not really be needed. You can not use shell variables either. Launch directory is the same as the panel (your home). ------------------------------------------------------------------------------- Add 'execute commands' to the 'menu'... Plugin { type = menu Config { image=/usr/share/icons/Fedora/48x48/places/start-here.png system { } separator { } item { command=run } separator { } item { name=Logout image=gnome-logout action=/usr/bin/openbox-logout } } } -------------------------------------------------------------------------------