Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Request/Idea] Global App Menu in Cinnamon #3032

Closed
echozio opened this issue Apr 11, 2014 · 17 comments
Closed

[Request/Idea] Global App Menu in Cinnamon #3032

echozio opened this issue Apr 11, 2014 · 17 comments

Comments

@echozio
Copy link

echozio commented Apr 11, 2014

I've seen some old threads about this, but no one has actually made an applet or extension for it. Being a Mac user I've grown to love the global app menu, as seen in Unity. I've found Cinnamon to be the most polished DE while still retaining its customization options, but it lacks one thing. I know a lot of people want this and I think it would attract a lot more Ubuntu and Mac users to use Cinnamon. I don't want to sound demanding, but I, as well as many others, sure would love to have a global menu applet. It's one of those things that always pull me back to Ubuntu while the Unity dash and online integration constantly put me off. I would be really happy if someone who knows how to write applets for Cinnamon also showed interest in this. I'd be willing to help out in any way I can, although I'm not really good at anything but creating simple text based C++ apps.
I appreciate any feedback. Thanks.

@glebihan
Copy link
Member

As mentioned in #551 this is not something we intend to do as part of Cinnamon.
If you want to implement an applet for it, feel free to join us in the #linuxmint-dev channel on irc.spotchat.org for any help you might need with this.

@ghost
Copy link

ghost commented Feb 26, 2015

@glebihan do you know if is possible use the global menu in linux mint cinnamon? Is clear that on cinnamon is not supported yet, but what i ask, if the packages exist on the mint repository and I can install it on cinnamon. indicator-appmenu is not on any cinnamon black-list? I have some problems to start the desktop sessions on my computer(like unity) and i can not see the Dbus process of com.canonical.AppMenu.Registrar, this will be requiered to be implemented the global menu. After see the cinnamon Roadmap, and see that in https://github.com/rgcjonas/gnome-shell-extension-appindicator was removed the vala code and the support is now native, i begin to port this to cinnamon: https://github.com/lestcape/Appindicator, but with the idea of use the current code to implement the global menu.

@mtwebster
Copy link
Member

I actually started porting the original patches from that to an appindicator applet, though it's incomplete so far... hoping to maybe replace the systray applet eventually, or at least learn enough through this to improve it.

@mtwebster
Copy link
Member

Let me know if you get this in a working state, though at least for now I'm more interested in its system tray functionality than a global menu - I've stopped work on it for now, trying to work on theming improvements at the moment

BTW, https://github.com/linuxmint/cinnamon-session/blob/master/cinnamon-session/csm-manager.c#L110

We'll change this if necessary down the road.

@ghost
Copy link

ghost commented Feb 26, 2015

@mtwebster thanks... thats is the problem... is in black list...

My idea is not create the same thing of cinnamon, so i don't use the code on the message tray, i created an applet instead, and is working, of course without systray black list and with several problems, because my goals is not provide the same of cinnamon, is provide a global menu, so i' m working on other direction.
What i see is that is possible currently implement the message tray functionality on cinnamon (as i say is working), just will required destroy the memory, remove the useful code and move the implementation to the message tray instead of the applet.
I was changed several things to be working on cinnamon now, the author have an extreme way to write code that is difficult to understand.

https://github.com/lestcape/Appindicator

@ghost
Copy link

ghost commented Feb 26, 2015

As resume:
The message tray not required the com.canonical.AppMenu.Registrar Dbus service and is working on cinnamon without any hard change.

The global menu requires the com.canonical.AppMenu.Registrar Dbus service and need to be implemented a way to be controlled if will be removed to the black list, i will see if i can play with it and find a way to controlled externally the service.

@ghost
Copy link

ghost commented Feb 28, 2015

The global menu implementation (indicator appmenu) required access to xwindows id and like i see, there are problems to access this value, related with muffin. The xwindows id is also used in http://cinnamon-spices.linuxmint.com/extensions/view/29 where the xwindows id will attempt to be deduced (see the comments in the extension.js file for more information), thats could not be enough so if there are a way in cinnamon to provide this, will be better.

@mtwebster
Copy link
Member

This should help:

linuxmint/muffin@a6a4518

@ghost
Copy link

ghost commented Feb 28, 2015

@mtwebster thanks...Actually i can access to unity iface, and get the DbusAppmenu. What i do is get it directly, because i create an equivalent DBus server. So, the unity indicator-appmenu don't need to be active. This need more work, gedit and some programs are not registered directly, and i don't know why this happen... Firefox and SMPlayer called my iface without any problem... I will try to provide a beta version to be tested.

I need to say, i hate Mac OS, but global menu is very popular and sure will be a good inclusion inside cinnamon if will be implemented well and as option (ofcourse)... Anyway i will do that, just to say that I will be happy if i not need to update a thing that i hate...

@ghost
Copy link

ghost commented Mar 1, 2015

@ghost
Copy link

ghost commented Mar 2, 2015

I think that for the Gtk applications are not called the Dbus iface and is because i have a way to get the appmenu Dbus object directly. I'm not sure... Would be this?

https://github.com/linuxmint/muffin/blob/a6a4518148c09fe774110b8a331c5f228ee3f745/src/core/window.c#L186

@ghost
Copy link

ghost commented Mar 2, 2015

Thats appear to be, now i don't know if i need some enviroment variables....

RafaelBocquet/i3-hud-menu@a29a052

@ghost
Copy link

ghost commented Mar 2, 2015

Cinnamon(muffin) filled this two value:
https://github.com/linuxmint/muffin/blob/a6a4518148c09fe774110b8a331c5f228ee3f745/src/core/window.c#L186
https://github.com/linuxmint/muffin/blob/a6a4518148c09fe774110b8a331c5f228ee3f745/src/core/window.c#L183

Thats occurs excelent when user execute a Gtk3 app. The problem is that Gtk2 application have a different way to export the menu that can not be used. This is why is requiered a translation for gtk 2 app and this is implemented by canonical in the unity-gtk-module, that is ported to several distros.

The problem is that, this need to be called explicit when an app started. Thats will be possible if cinnamon add this to the cinnamon enviroment variables, to be filled correcty the inicial values on muffin and can be used to implement a glogal menu, for a gtk application to.

There are a way to include this as default?

Example here:
RafaelBocquet/i3-hud-menu@a29a052

@ghost
Copy link

ghost commented Mar 11, 2015

@ghost
Copy link

ghost commented Mar 18, 2015

I don't know why the output of xprop and muffin don't match....
After do this:
linuxmint/cinnamon-session#15 (comment)

muffin continues fill incorrectly this values:
https://github.com/linuxmint/muffin/blob/a6a4518148c09fe774110b8a331c5f228ee3f745/src/core/window.c#L186
https://github.com/linuxmint/muffin/blob/a6a4518148c09fe774110b8a331c5f228ee3f745/src/core/window.c#L183

But ['xprop', '-id', window_id, '-notype', '_GTK_MENUBAR_OBJECT_PATH'] and ['xprop', '-id', xid, '-notype', '_GTK_UNIQUE_BUS_NAME'] give me the correct values...

Will be better that muffin give me the correct values, but at less will be a solution called xprop directly. The problem is that nemo start faster and i can not set the enviroment variables when the applet start, because is to late if i not insert the code here:

https://github.com/linuxmint/cinnamon-session/blob/1209a65281819d9ed46338fa66c01ea2766e224d/cinnamon-session/main.c#L346

Another option will be override the ~/.profile but aparently this is not supported on all distros... There are not any general solution that i can use, without modify the cinnamon code.

@ghost
Copy link

ghost commented Mar 18, 2015

@akash-258
Copy link

Any update in 2021?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants