GnoMenuSince my last post about GnoMenu a lot has changed. Firstly, it is now up to version 2.5, and the last version I really messed with was version 1.6 or 1.7.
I will be going over how to make the following:

  1. The Start Button — updated
  2. The Icons used in the Menu
  3. The Menu itself


GnoMenu Start Button How-To

Not much has truly changed when it has come to creating your own start button. You still need to decide if you like an image that comes up over the panel, or one that doesn’t. The difference that I have noticed is that GnoMenu will now scale the button to the size that you have the panel. (When I last wrote up the how-to last year you would have had to have gone in and resize the images when you wanted to change the panel size, or have a skewed button.)

Steps you will have to take for no matter which style you want:

  • Choose your image (256px by 256px is a respectable size to exit without having to squint your eyes. You can always shrink it later.)
    • save a copy as themepreview.png
  • Top?
    • crop off the top of the image (top 10-20%) and cut and paste it to a new file
  • No Top?
    • leave the image a lone and start with the next set of steps
  • How to make the glow and depressed portions of the start button:
    • No Top
    1. save image as start-here.png
    2. change the brightness to -50, save as start-here-depressed.png
    3. undo, change brightness to 50, save as start-here-glow.png
    • Has Top
    1. Do the above for the bottom parts of the button and save them with the save names
    2. save original top part of the image as start-here-top.png
    3. change the brightness to -50, save as start-here-top-depressed.png
    4. undo, change brightness to 50, save as start-here-top-glow.png
  • Total number of images files for no top start button: 4
  • Total number of images files for start button that has a top: 7

panel button without a top  panel button with a top
Now that you have your images, you need to create an xml file for the set. There is only one difference between the xml file for one that has a top, and one that doesn’t. You will see it in the file (and in case you don’t its the line that says <theme Top=”0″ id=”HasTop”> 0 = false, 1 = true)

Button that does not extend above the height of the panel:

  1. <?xml version="1.0" ?>
  2. <content type="Button">
  3. <ContentData Name="Black22" Author="linuxgurl13" Copyright="GPL"/>
  4. <theme Top="0" id="HasTop">
  5.         <Background Image="start-here.png" ImagePressed="start-here-depressed.png" ImageHover="start-here-glow.png"/>
  6.         <Top Image="start-here-top.png" ImagePressed="start-here-top-depressed.png" ImageHover="start-here-top-glow.png"/>
  7. </theme>
  8. </content>

Button that does extend above the height of the panel:

  1. <?xml version="1.0" ?>
  2. <content type="Button">
  3. <ContentData Name="Black" Author="linuxgurl13" Copyright="GPL"/>
  4. <theme Top="1" id="HasTop">
  5.         <Background Image="start-here.png" ImagePressed="start-here-depressed.png" ImageHover="start-here-glow.png"/>
  6.         <Top Image="start-here-top.png" ImagePressed="start-here-top-depressed.png" ImageHover="start-here-top-glow.png"/>
  7. </theme>
  8. </content>



GnoMenu Icons

I have to say, that unless you are going to create your GnoMenu icons from scratch, this is the easiest one to customize. You will have a total of 40 images and one xml file when you are finished. Since the xml file is the simpliest of this process, here it is:

  1. <?xml version="1.0" ?>
  2. <content type="Icon">
  3. <theme>
  4. <ContentData Name="||icon theme name||" Author="||did you create them? or did someone else?||" Copyright="||the original copyright if known, if not, put unknown||"/>
  5. </theme>
  6. </content>

Just replace the stuff in the “||”s and its good to go.
As for creating the icon theme itself…
The easiest thing I have found to do is searching throughout my favourite icon theme until I find a comparable icon to replace it with.
Because of time restraints I’m just showing you the icons that you can replace. I have an old example that I made by finding comparable icons from the Oxygen-Refit 2 – Green Version icon theme but there aren’t enough icons for it to be a valid theme today.

The number of files has gone up from 19 to 41.
There are repeats throughout the icons, and no sym-links to be found in any so it seems as though you will have to rename them one by one (default icon size is 60px by 60px).
all the files needed to make a GnoMenu icon theme 3 accessory type icons 2 computer type icons 4 control panel type icons 2 document type icons 2 email program type icons 1 favorites icon 2 internet program icons 2 game icons 2 help icons 2 home icons 2 image/picture icons 2 music icons 2 network icons 2 network connection icons 2 no user image icons 2 recent documents icons 2 search icons 1 shutdown icon 2 video icons
The simple thing to do is to go into the folder of your favorite icon theme and search for key words in the name of the files; like video for the folder-videos.png and m_videos.png



GnoMenu Menu

With Menus, its truly up to you on how you want it to look. I decided to revisit a modified Menu theme that I made to go with the aforementioned icons and the softwhite gtk theme. I edited the image for the main menu background and changed the aux, lock, and power buttons to match the icon theme.

I edited the xml file to where it looked like this:

  1. <?xml version="1.0" ?>
  2. <content type="Menu">
  3. <ContentData Name="GreenGlass" Author="LinuxGurl (S. Harris)" Version="0.0.1.0" Copyright="Artwork by unknown"/>
  4. # If only one theme type available then specify color=’All’
  5. <theme color="white" color_lang="White" colorvalue="#FFFFFF">
  6.         <Background Image="start-menu.png"/>
  7.         <WindowDimensions Width="409" Height="575"/>
  8.         <IconSettings X="300" Y="6" Width="65" Height="66" InsetX="6" InsetY="6" InsetWidth="46" InsetHeight="46"/>
  9.         #SearchBar: Widget can either be ‘Custom’, ‘GTK’ or ‘None’. This tag has to be present, everything after Widget needs to be there only if it’s ‘Custom’
  10.         #InsetX, Y = topleft location to start displaying text
  11.         #Widgetname = the file name of the python searchbar module without ‘.py’ on the end.
  12.         <SearchBarSettings  X="7" Y="544" Width="254" Height="24" Widget="Custom" WidgetName="SearchBar" InitialText="Start Search" InsetX="6" InsetY="16" Background="m_searchbar_light.png"/>
  13.         <ProgramListSettings X="9" Y="41" Width="250" Height="493"/>
  14.         <Capabilities HasSearch="1" HasIcon="1" HasFadeTransition="1"/>
  15.         #Submenu="1" Commands can be: 0=Program list back button  1=Program list show base menu  2=Unmount drives list  3=Auxiliary functions  4=Recent items  5=Search(cannot be used in button context)  6=Launch top item in a search results window
  16.         <Button Name="Home Folder"      Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Home Folder</span>"              TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="76" SubMenu="0" Command="Home" CloseMenu="1" Icon="m_home.png"/>
  17.         <Button Name="Documents"        Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Documents</span>"                TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="111" SubMenu="0" Command="Documents" CloseMenu="1" Icon="m_documents.png"/>
  18.         <Button Name="Pictures"         Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Pictures</span>"         TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="146" SubMenu="0" Command="Pictures" CloseMenu="1" Icon="m_pictures.png"/>
  19.         <Button Name="Music"            Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Music</span>"            TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="181" SubMenu="0" Command="Music" CloseMenu="1" Icon="m_music.png"/>
  20.         <Button Name="Videos"           Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Videos</span>"           TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="216" SubMenu="0" Command="Games" CloseMenu="1" Icon="m_videos.png"/>
  21.         <Button Name=":SEPARATOR:"      Markup="" TextX="0" TextY="0" Image="m_separator.png" ButtonIcon="" ButtonIconSel="" ButtonX="270" ButtonY="251" SubMenu="0" Command="0" CloseMenu="0" Icon=""/>
  22.         <Button Name="Search"           Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Search</span>"           TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="254" SubMenu="0" Command="Search" CloseMenu="1" Icon="m_search.png"/>
  23.         <Button Name="Show History"     Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Show History</span>"             TextX="8" TextY="10" Image="m_button.png" ButtonIcon="m_submenu_icon.png" ButtonIconSel="" ButtonX="266" ButtonY="289" SubMenu="1" Command="4" CloseMenu="0" Icon="m_recentitems.png"/>
  24.         <Button Name="Computer"         Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Computer</span>"         TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="324" SubMenu="0" Command="Computer" CloseMenu="1" Icon="m_computer.png"/>
  25.         <Button Name="Network"          Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Network</span>"          TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="359" SubMenu="0" Command="Network" CloseMenu="1" Icon="m_network.png"/>
  26.         <Button Name="Connect to _Server…"    Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Connect to _Server…</span>"            TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="394" SubMenu="0" Command="Network Config" CloseMenu="1" Icon="m_connect.png"/>
  27.         <Button Name=":SEPARATOR:"      Markup="" TextX="0" TextY="0" Image="m_separator.png" ButtonIcon="" ButtonIconSel="" ButtonX="270" ButtonY="429" SubMenu="0" Command="0" CloseMenu="0" Icon=""/>
  28.         <Button Name="Control Center"   Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Control Center</span>"   TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="432" SubMenu="0" Command="Control Panel" CloseMenu="1" Icon="m_controlpanel.png"/>
  29.         <Button Name="Package Manager"  Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Package Manager</span>"  TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="467" SubMenu="0" Command="Package Manager" CloseMenu="1" Icon="m_synaptic.png"/>
  30.         <Button Name="Help"             Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Help</span>"     TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="502" SubMenu="0" Command="Help" CloseMenu="1" Icon="m_help.png"/>
  31.         <Button Name="Power"            Markup="" TextX="0" TextY="0" Image="m_power_sel.png" ButtonIcon="m_power.png" ButtonIconSel="m_power_sel.png" ButtonX="266" ButtonY="544" SubMenu="0" Command="Power" CloseMenu="1" Icon=""/>
  32.         <Button Name="Lock"             Markup="" TextX="0" TextY="0" Image="m_lock_sel.png" ButtonIcon="m_lock.png" ButtonIconSel="m_lock_sel.png" ButtonX="320" ButtonY="544" SubMenu="0" Command="Lock" CloseMenu="1" Icon=""/>
  33.         <Button Name="Aux"              Markup="" TextX="0" TextY="0" Image="m_aux_sel.png" ButtonIcon="m_aux.png" ButtonIconSel="m_aux_sel.png" ButtonX="372" ButtonY="544" SubMenu="1" Command="3" CloseMenu="0" Icon=""/>
  34. </theme>
  35. <theme color="black" color_lang="Black" colorvalue="#000000">
  36.         <Background Image="start-menu-template_black.png"/>
  37.         <WindowDimensions Width="409" Height="575"/>
  38.         <IconSettings X="300" Y="6" Width="65" Height="66" InsetX="6" InsetY="6" InsetWidth="46" InsetHeight="46"/>
  39.         <SearchBarSettings  X="7" Y="544" Width="254" Height="24" Widget="Custom" WidgetName="SearchBar_dark" InitialText="Start Search" InsetX="6" InsetY="16" Background="m_searchbar_dark.png"/>
  40.         <ProgramListSettings X="9" Y="41" Width="250" Height="493"/>
  41.         <Capabilities HasSearch="1" HasIcon="1" HasFadeTransition="1"/>
  42.         <Button Name="Home Folder"      Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Home Folder</span>"              TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="76" SubMenu="0" Command="Home" CloseMenu="1" Icon="m_home.png"/>
  43.         <Button Name="Documents"        Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Documents</span>"                TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="111" SubMenu="0" Command="Documents" CloseMenu="1" Icon="m_documents.png"/>
  44.         <Button Name="Pictures"         Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Pictures</span>"         TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="146" SubMenu="0" Command="Pictures" CloseMenu="1" Icon="m_pictures.png"/>
  45.         <Button Name="Music"            Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Music</span>"            TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="181" SubMenu="0" Command="Music" CloseMenu="1" Icon="m_music.png"/>
  46.         <Button Name="Videos"           Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Videos</span>"           TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="216" SubMenu="0" Command="Games" CloseMenu="1" Icon="m_videos.png"/>
  47.         <Button Name=":SEPARATOR:"      Markup="" TextX="0" TextY="0" Image="m_separator.png" ButtonIcon="" ButtonIconSel="" ButtonX="270" ButtonY="251" SubMenu="0" Command="0" CloseMenu="0" Icon=""/>
  48.         <Button Name="Search"           Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Search</span>"           TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="254" SubMenu="0" Command="Search" CloseMenu="1" Icon="m_search.png"/>
  49.         <Button Name="Show History"     Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Show History</span>"             TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="289" SubMenu="1" Command="4" CloseMenu="0" Icon="m_recentitems.png"/>
  50.         <Button Name="Computer"         Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Computer</span>"         TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="324" SubMenu="0" Command="Computer" CloseMenu="1" Icon="m_computer.png"/>
  51.         <Button Name="Network"          Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Network</span>"          TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="359" SubMenu="0" Command="Network" CloseMenu="1" Icon="m_network.png"/>
  52.         <Button Name="Connect to _Server…"    Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Connect to _Server…</span>"            TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="394" SubMenu="0" Command="Network Config" CloseMenu="1" Icon="m_connect.png"/>
  53.         <Button Name=":SEPARATOR:"      Markup="" TextX="0" TextY="0" Image="m_separator.png" ButtonIcon="" ButtonIconSel="" ButtonX="270" ButtonY="429" SubMenu="0" Command="0" CloseMenu="0" Icon=""/>
  54.         <Button Name="Control Center"   Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Control Center</span>"   TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="432" SubMenu="0" Command="Control Panel" CloseMenu="1" Icon="m_controlpanel.png"/>
  55.         <Button Name="Package Manager"  Markup="<span foreground=’#FFFFFF’ font_desc=’sans 8′ stretch=’normal’ weight=’normal’>Package Manager</span>"  TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="467" SubMenu="0" Command="Package Manager" CloseMenu="1" Icon="m_synaptic.png"/>
  56.         <Button Name="Help"             Markup="<span foreground=‘#FFFFFF’ font_desc=‘sans 8′ stretch=‘normal’ weight=‘normal’>Help</span>"     TextX="8" TextY="10" Image="m_button.png" ButtonIcon="" ButtonIconSel="" ButtonX="266" ButtonY="502" SubMenu="0" Command="Help" CloseMenu="1" Icon="m_help.png"/>       <Button Name="Power"            Markup="" TextX="0" TextY="0" Image="m_power_sel.png" ButtonIcon="" ButtonIconSel="" ButtonX="306" ButtonY="544" SubMenu="0" Command="Power" CloseMenu="1" Icon="m_power.png"/>
  57.         <Button Name="Power"            Markup="" TextX="0" TextY="0" Image="m_power_sel.png" ButtonIcon="m_power.png" ButtonIconSel="m_power_sel.png" ButtonX="266" ButtonY="544" SubMenu="0" Command="Power" CloseMenu="1" Icon=""/>
  58.         <Button Name="Lock"             Markup="" TextX="0" TextY="0" Image="m_lock_sel.png" ButtonIcon="m_lock.png" ButtonIconSel="m_lock_sel.png" ButtonX="320" ButtonY="544" SubMenu="0" Command="Lock" CloseMenu="1" Icon=""/>
  59.         <Button Name="Aux"              Markup="" TextX="0" TextY="0" Image="m_aux_sel.png" ButtonIcon="m_aux.png" ButtonIconSel="m_aux_sel.png" ButtonX="372" ButtonY="544" SubMenu="1" Command="3" CloseMenu="0" Icon=""/>
  60. </theme>
  61. </content>

and the result was this:
Green Glass GnoMenu Theme
Since all I did was modify someone else’s theme (its called Glass and can be found in this pack), I can’t really help with creating one from scratch. If you want to make one similar, I suggest you do what I did – find one you like and open up GIMP and let the picture editing commence!
It takes a while, but if you want a complely blank slate to start from, you can download the XCF file for the menu background only from here.
I’ve modified many a theme to make it fit. All you really need are basic knowlege of GIMP’s selector tools and what colors you want to change things to.


I hope this small how-to helps people. Special thanks to Anonymous/iNsOmNiOuS for messaging me wanting to know more since I promised it and never did over a year ago.