global_menu

Differences between revisions 66 and 69 (spanning 3 versions)
Revision 66 as of 2008-11-23 20:30:03
Size: 16463
Editor: hotlink
Comment: further refactoring
Revision 69 as of 2009-01-13 17:27:53
Size: 477
Editor: 137
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:

Aggregation of the Gnome Global Menu Patch data,
Originally By AqD

----
== 2008.05.14 : WARNING ==
'''''Most of the content in this page is obsolete. This page needs to be completely rewritten''''' <<BR>>
'''''Latest packages for 32 bits (hardy and gutsy) and instructions to install can be found on the global menu project website''''' : <<BR>>
'''''http://code.google.com/p/gnome2-globalmenu/wiki/InstallingonUbuntu ''''' <<BR>>

'''''end of warning''''' <<BR>>
----
Refactoring in progress as part of the upstream documentation effort. Do not modify for the moment.
Gnome Global Menu
Line 16: Line 4:

New Global menu Project home page (main dev : rainwoodman):<<BR>>
http://code.google.com/p/gnome2-globalmenu/
Line 20: Line 11:
''note : this gtk mac menu hack won't work with XUL apps (e.g. firefox) Java swing apps (e.g. open office) and all kde apps or non gtk apps.''<<BR>>
Line 24: Line 13:

New Global menu Project home page (main dev : rainwoodman):<<BR>>
http://code.google.com/p/gnome2-globalmenu/
----

= Installation instructions =

This page offers several different methods to install the patched Gtk:
 * you can use [[#deb|deb packages]]. (debs of the new global menu project)
 * you can built yourself the [[#ng|new global menu]] from rainwoodman project
 * you can use the standard [[#autotools|autotools]] (configure/make/make install) method. (based on the old AdQ patch)
 * you can use the [[#apt-build|apt-build]] method (you will build debs). (based on the old AdQ patch)

You can as well build the applet from the source code
 * Instructions to [[#compile|compile]] the Gnome Global Menu Applet.

= Skinning instructions =
The default install doesn't handle well transparency or colors , and you may want it to look like more a famous OS, or just add a bit more transparency. Head to [[#skinning|skinning]] for detailed instructions.

= Uninstall instructions =
Should you wish to uninstall global-menu, head to the [[#uninstall|uninstall instructions]]

----
= Installation instructions =
<<Anchor(deb)>>
=== Packages ===
==== For i386 ====
Global Menu devs have uploaded the 0.4 deb package at :<<BR>>
http://gnome2-globalmenu.googlecode.com/files/gnome-globalmenu-0.4_ubuntu-gusty-svn679.tar.gz

And updated install guideline for Ubuntu Gusty :<<BR>>
http://code.google.com/p/gnome2-globalmenu/wiki/InstallingonUbuntu

'''Installation:'''

Fellow the steps describe in the guide linked above.<<BR>>

'''NOTE:''' At no time during this should there be Error messages. If there are try not to restart your system until any errors are resolved. Look for further help posting your Error message here:<<BR>>
http://ubuntuforums.org/showthread.php?t=241868

==== For AMD64 (64bit computer, intel included) ====
See http://code.google.com/p/gnome2-globalmenu/wiki/InstallingonUbuntu
----
<<Anchor(ng)>>
=== Info to build the lastest Global Menu ===

Originally Posted by rainwoodman on ubuntuforums.org 2008-01-29, version number and links corrected : 2008-03-05<<BR>>

The applet has been rewitten, and renamed from macmenu to globalmenu. (since I don't want to go to law issues).<<BR>>
That's why the file is so difficult to find. If you really want the very old adq's original code you can check it out from : <<BR>>
http://gnome2-globalmenu.googlecode.com/svn/tags/0.1_11/

The most recent version is 0.4 : <<BR>>
http://gnome2-globalmenu.googlecode.com/svn/trunk/ <<BR>>

'''Perhaps the documentation in this link will be useful if you want to build this : ''' <<BR>>
'''http://code.google.com/p/gnome2-globalmenu/wiki/BuildFromScratch?updated=BuildFromScratch&ts=1204258474 ''' <<BR>>

But using the [[#deb|packages]] should be easier.

Look for [[#fdi|further development infos]] <<BR>>

----

<<Anchor(autotools)>>
=== Install using autotools ===

We're first going to install the mac menu applet:

-Download this file (note: you must be a member of ubuntuforums.org to be able to download it)
http://ubuntuforums.org/attachment.php?attachmentid=47781&d=1193338299

-Open a terminal, go to the directory where you've downloaded the file using cd and execute the following command lines.

Code: {{{

tar jxvf gnome-macmenu-applet-1.0.11.tar.bz2
cd gnome-macmenu-applet-1.0.11
sudo cp gnome-macmenu-applet /usr/lib/gnome-applets/
sudo cp GNOME_MacMenuApplet.server /usr/lib/bonobo/servers/
}}}


We're now gonna patch gtk+ with a gtk+ patch

-But we need dependencies installed first. I don't know what is needed exactly, here is the list of dev packages I have:

Code: {{{
autotools-dev comerr-dev dpkg-dev libart-2.0-dev libatk1.0-dev libaudiofile-dev libavahi-client-dev libavahi-common-dev libavahi-glib-dev libbonobo2-dev libbonoboui2-dev libc6-dev libcairo-directfb2-dev libcairo2-dev libcupsys2-dev libdbus-1-dev libdirectfb-dev libesd0-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgail-dev libgconf2-dev libgcrypt11-dev libgdk-pixbuf-dev libglade2-dev libglib1.2-dev libglib2.0-dev libgnome-keyring-dev libgnome2-dev libgnomecanvas2-dev libgnomeui-dev libgnomevfs2-dev libgnutls-dev libgpg-error-dev libgtk1.2-dev libgtk2.0-dev libhal-dev libhal-storage-dev libice-dev libidl-dev libjpeg62-dev libkrb5-dev liblzo2-dev libopencdk8-dev liborbit2-dev libpanel-applet2-dev libpango1.0-dev libpng12-dev libpopt-dev libselinux1-dev libsepol1-dev libsm-dev libstartup-notification0-dev libstdc++6-4.1-dev libsysfs-dev libtasn1-3-dev libtiff4-dev libusplash-dev libwnck-dev libx11-dev libxau-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxkbfile-dev libxml2-dev libxrandr-dev libxrender-dev libxres-dev libxt-dev linux-libc-dev x11proto-composite-dev x11proto-core-dev x11proto-damage-dev x11proto-fixes-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev x11proto-render-dev x11proto-resource-dev x11proto-xext-dev x11proto-xinerama-dev xtrans-dev xutils-dev zlib1g-dev
}}}

you can install them before patching gtk+ by typing
Code: {{{
sudo apt-get install ...packages from the list above...
}}}

Then we're starting the patching itself.

-Download this file (note: you must be a member of ubuntuforums.org to be able to download it)
http://ubuntuforums.org/attachment.php?attachmentid=47782&d=1193338357

-Open a terminal, go to the directory where you've downloaded the file using cd and execute the following command lines.

Code: {{{
gzip -d gtk+-2.12.0-r2-gtkmenubar.diff.gz
sudo apt-get install build-essential
apt-get source gtk+2.0
tar zxvf gtk+2.0_2.12.0.orig.tar.gz
cd gtk+2.0-2.12.0
patch -p0 < ../gtk+-2.12.0-r2-gtkmenubar.diff
./configure --prefix=/usr
make
sudo make install
}}}

'''NOTE''' Be Patient, this compiles from source, which will take considerably longer than installing from the Binary Package (Binary ~1 Minute | Source ~30 Minutes)<<BR>><<BR>>

You're now ready to use all the mac menu goodness ! Please report in the forum thread any problems you might have encountered.

----
<<Anchor(apt-build)>>
=== Install using apt-build ===

Install the mac menu applet deb package (note: you must be a member of ubuntuforums.org to be able to download it: http://ubuntuforums.org/attachment.php?attachmentid=47899&d=1193414016) , then in a terminal, type in this to install apt-build

Code: {{{
sudo apt-get install apt-build
}}}
Choose to add apt-build repository to your sources.list when asked.

After, I told apt-build to get libgtk2.0-0 source package (apt-build takes care of the build deps for you, ie: -dev packages)
You need to have the Ubuntu sources repositories enabled (menu System > Administration > Software sources, then pick Ubuntu software tab and check Source Code box).

Code: {{{
sudo apt-build source libgtk2.0-0
}}}
Next step was to copy the downloaded patch [[#two|2]] from where is was (on the desktop in _this_ case, replace "~/Desktop/" with the path where you downloaded the gzipped patch) to the libgtk2.0-0 source package directory
If you also want to remove the underlines use the patch 098_no_label_underline.patch [[#three|3]]

First, uncompress 099_mac_menubar.patch.gz :

Code: {{{
gzip -d ~/Desktop/099_mac_menubar.patch.gz
}}}
then copy the patches to the patches directory (assuming they are on your Desktop, if it's not the case replace ~/Desktop/ with the path were the patches are located)

Code: {{{
sudo cp ~/Desktop/099_mac_menubar.patch /var/cache/apt-build/build/gtk+2.0-2.12.0/debian/patches/
sudo cp ~/Desktop/098_no_label_underline.patch /var/cache/apt-build/build/gtk+2.0-2.12.0/debian/patches/
}}}
And, add the name of the patches you have added (i.e."099_mac_menubar.patch", "098_no_label_underline.patch")to the debian/patches/series list

Code: {{{
sudo gedit /var/cache/apt-build/build/gtk+2.0-2.12.0/debian/patches/series
}}}


Now we use use apt-build to build the packages

Code: {{{
sudo apt-build install libgtk2.0-0
}}}
'''NOTE''' Be Patient, this compiles from source, which will take considerably longer than installing from the Binary Package (Binary ~1 Minute | Source ~30 Minutes)<<BR>><<BR>>
After that you'll have an update for libgtk in your update manager (it won't install automatically because local apt-build repository isn't signed), let update manager install them and finally, add the applet to the top panel.
Now you need to log out/in gnome to see the changes.


----
<<Anchor(compile)>>
=== Compile it from the source code ===
'''''For those who want/need to compile themselves the mac menu applet (ie: 64bits)'''''

Install this before

Code: {{{
sudo apt-get install build-essential libwnck-dev libpanelappletmm-2.6-dev
}}}
Then unpack the applet source and go in its folder

Code: {{{
tar -xvzf macmenu-applet-0.1.tar.gz
cd macmenu-applet-0.1/
}}}
Then compile and install

Code: {{{
make
sudo make install
}}}
'''NOTE''' Be Patient, this compiles from source, which will take considerably longer than installing from the Binary Package (Binary ~1 Minute | Source ~30 Minutes)<<BR>>

= Skinning instructions =
<<Anchor(skinning)>>


Here’s an (non exhaustive) list of mac menu compatible themes for gtk :

    * imetal (http://gnome-look.org/content/show.php/imetal?content=63734)
    * snow leopard (http://gnome-look.org/content/show.php/snow+leopard?content=61924)
    * mac4lin (http://gnome-look.org/content/show.php?content=68411)
    * kougyoku black (http://gnome-look.org/content/show.php/Kougyoku-Black?content=65299)
    * and more kougyoku (make a search on http://gnome-look.org )

You can also hack your theme, like I did. I edited the gtkrc file of the theme I use. (the gtkrc file of your theme is located under ~/.themes/[YOUR_THEME_NAME]/gtk-2.0/gtkrc)

here’s the code I added in my gtkrc file :

Code: {{{
#panel stuff
style "panelbg"
{
  xthickness = 0
  ythickness = 0
  bg_pixmap[NORMAL] = "panel-bg.png"
  fg[NORMAL] = "#ffffff"
  fg[PRELIGHT] = "#ffffff"
  fg[ACTIVE] = "#555555"
  fg[SELECTED] = "#555555"

}
style "theme-menubar"
{
  xthickness = 0
  ythickness = 0
  #bg[NORMAL] = "#000000"
  bg_pixmap[NORMAL] = "panel-bg.png"
  fg[NORMAL] = "#ffffff"
  fg[PRELIGHT] = "#ffffff"
  fg[ACTIVE] = "#555555"
  fg[SELECTED] = "#555555"
        engine "pixmap"
        {
                image
                {
                        function = BOX
                        state = NORMAL
                        file = "panel-bg.png"
                        border = { 0, 0, 0, 0 }
                        stretch = TRUE
                }
    }
}

class "GtkMenuBar" style "theme-menubar"

# panel styles
#class "*Panel*" style "panelbg"
widget "*PanelApplet*" style "panelbg"
class "*notif*" style "panelbg"
class "*Notif*" style "panelbg"
class "*Tray*" style "panelbg"
class "*tray*" style "panelbg"
class "*Netstatus*" style "panelbg"
class "*netstatus*" style "panelbg"
class "*Deskbar*" style "panelbg"
class "*deskbar*" style "panelbg"
}}}

I saved the panel-bg.png image in the same directory as the gtkrc file, and also used this png as panel background image (right click on the panel, choose properties, then background tab where you specify the background image location).

= Transparency =
The menubar can be set clear, and remain certified to the panel, using Compiz-Fusion (I hope it and others features will be possible also the new Metacity..) and appropriate parameters (in General Options> Opacity Settings-> add (dock) &! (class = Avant-window-navigator) and the value of transparency you want).

The problem is to use a theme that checks the same color to the panel and bg_color windows (or pass an appropriate parameter in the "menubar-theme" and use an image for the panel).


----

= Uninstall instructions =
<<Anchor(uninstall)>>

==== For the apt-built method ====


If you have used the apt-build method to install the patched gtk do this to uninstall :
1. Go to menu system > administration > software sources. Pick the “third party software” tab, and uncheck apt-build repository.

2. Then in a terminal type in:
      
 Code: {{{
      sudo apt-get clean && sudo apt-get update && sudo apt-get install --reinstall -y libgtk2.0-0
      }}}

3. Logout / in gnome to apply changes.


==== For all methods ====

Because Mac-Applet-Menu is hacked, the way to uninstall it has a trick.

Open Gedit and paste this : export GTK_MENUBAR_NO_MAC=1

Name the text file .gnomerc and save it in your home folder (/home//).
Logout ,relogin and the hack should be disabled.

If you want to completely remove it, fire up synaptic and search for libgtk2.0-0.
Highlight it and go to menu -> packages -> force version ,
select the version that ends with the stable release of the ubuntu version you're running (eg: edgy, feisty, gutsy) , press ok and then apply in synaptic.


----
'''''latests patches/sources/packages:'''''
http://code.google.com/p/gnome2-globalmenu/source


Mac menu applet:
http://ubuntuforums.org/attachment.php?attachmentid=54026&d=1198381611 (rainwoodman version - new)
http://ubuntuforums.org/attachment.php?attachmentid=47781&d=1193338299 (Aqd version - old)

gtk2 spec file for fedora 8
http://ubuntuforums.org/attachment.php?attachmentid=53555&d=1197951405 (rainwoodman version - new)

gtkMenuBar Patch:
http://ubuntuforums.org/attachment.php?attachmentid=47782&d=1193338357

gtk2MenuPatch:

http://ubuntuforums.org/attachment.php?attachmentid=48733&d=1193950276

Patch against 2.12.1 (removing annoying underlines):

http://ubuntuforums.org/attachment.php?attachmentid=48738&d=1193954936

__Links related to the second method:__

<<Anchor(one)>> __1__ Mac menu applet deb package (gusty gibbon 32bits):
http://ubuntuforums.org/attachment.php?attachmentid=47899&d=1193414016

<<Anchor(two)>> __2__ 099_mac_menubar.patch.gz:
http://ubuntuforums.org/attachment.php?attachmentid=48015&d=1193500579

<<Anchor(three)>> __3__ 098_no_label_underline.patch:
http://ayozone.org/wp-content/uploads/2007/11/098_no_label_underline.patch

Other resources :

.conkyrc:

http://ubuntuforums.org/attachment.php?attachmentid=48019&d=1193501364

----

<<Anchor(fdi)>>
== Further development ==

As it is now, the global menubar is only hack. To get it included into GTK+, quite some changes will be necessary. GTK+ developers have stated that they will not include the patch in it's current form.

A rewrite would probably also include patches made for Gtk+ for OSX from Imendio.
http://developer.imendio.com/projects/gtk-macosx

Also, please see<<BR>>
http://code.google.com/p/gnome2-globalmenu/wiki/DevelopmentHome <<BR>>
for a brief idea about the recent development.

On the inability of KDE apps to use this menu, doesn't KDE already have support for a global menu bar? Wouldn't it be feasible to make some sort of link between the KDE menus and this menu bar?
----
CategoryLookMergeDelete

Gnome Global Menu

globalmenusmallScreenshot.png

New Global menu Project home page (main dev : rainwoodman):
http://code.google.com/p/gnome2-globalmenu/

Forum thread about the Gnome Global Menu where you can help improve it, package it, find the latest info...
http://ubuntuforums.org/showthread.php?t=241868

Bug report on Gnome's Bugzilla, vote for inclusion! :
http://bugzilla.gnome.org/show_bug.cgi?id=353076

global_menu (last edited 2009-01-13 17:27:53 by 137)