Gnome-Shell Extensions, Themes & Tweaks

Still no luck. I wish there were an error log somewhere.

Hmmmm. I don’t know what to tell you. My system is a pretty standard OpenSUSE 12.1 with Gnome 3.2 and a few extra repositories (ie Packman, Subpixel Hinting, Mozilla…) I did a “fresh” install using the RC2 DVD and upgraded to the final release using zypper dup. There’s nothing unusual about my set up that I can think of.

Is it possible for you to start fresh by reinstalling OpenSUSE 12.1? Other than that, I really don’t know what else to try. The Mint Menu SHOULD be working “out-of-the-box,” but obviously that isn’t happening for some reason. :question:

I downloaded http://www.fpmurphy.com/gnome-shell-extensions/lhsmenu-1.0.tar.gz, unpacked it, then created a zipfile from it, and installed that using gnome-tweak-tool. Now I have a nice Mint menu on the left. A right hand side menu is also available as well as noa11y from [GNOME Shell Extensions

E](GNOME Shell 3.8 Extensions)dit: this is how I did one:

mkdir ~/temp
cd ~/temp
wget http://www.fpmurphy.com/gnome-shell-extensions/lhsmenu-1.0.tar.gz
tar -xvf lhsmenu-1.0.tar.gz
zip lhsmenu.zip lhsmenu@fpmurphy.com/*

Then I ran gnome-tweak-tool, Shell extensions - install - select zip file, logout login and voila, Robert est ton oncle.

The zip file can be installed from tweak tool? I did an upgrade from 11.4 and some things are a bit screwy.

Still no dice. This wouldn’t be the first bug i’ve found from upgrading from 11.4. Either i’ll have to do a fresh install or magically figure out the problem.

What i really need to do is find the config directory and just trash it O.o

Umm… sorry for the multi-post. I just trashed some old config files and they were replaced after restart. So, this is what 12.1 is supposed to look like… wow. Apparently the upgrade route is kind of a joke!

Unfortunately the mint menu still doesn’t work.

I rather suspected something like this. The changes from 11.4 to 12.1 were pretty major, making an in place upgrade dicey. A clean reinstall may be a pain, but I think you’ll find the effort to be worth it.

There were a lot of bizarre problems with the upgrade route that I was slowly fixing.

I did a clean install and it’s working fine now, but **** was the installer buggy.

Brilliant! I must have been reading in a hurry when I first read your post and completely missed this.

These user configurable settings really need to be under “System Settings” in the user’s menu (the menu in the top-right with the user’s name). Even better, integrate gnome-session-properties with the gnome-tweak tool. Hopefully, as GTK3/gnome-shell matures, these things will be handled. I’m all for having a user interface that is as simple and clean as possible. Exposing too many configuration options to end-users right up front DOES confuse and frustrate the less technically inclined user (I know this from experience). In other words, they should not have to browse through a myriad of “geek-speak” setting controls just to change their wallpaper. But the advanced user settings need to be more easily discoverable to those that want/need them and in a location that makes sense.

(Slightly different topic but within the scope of this thread, I hope)

Anyone managed to replace the splash screen at login on Gnome 12.1? I’m stuck with the green screen which contrasts rather violently with my general blue theme when logged in.

A few weeks ago, I started messing with the -branding- packages to see if I could get rid of the green stuff. I succeeded with everything EXCEPT the login screen. But your question motivated me to look into it further and I found this: Change the Background of Gnome 3 GDM Login Screen | Smashing Web.

I HAVEN’T tested it yet. I’m heading out to spend the day with family, but I’ll give it a go tonight – but will check in here to see if others have commented further on this issue first.

After a futile session with the /etc/bootsplash/themes/openSUSE/images files, I found on a similar page to yours that the login background was in the /usr/share/backgrounds/upwind directory. So rather than run the dbus stuff I just changed the morning/day/night .jpg files to what I wanted. This avoids confusing the upwind stuff anyway, whatever that’s supposed to do. This seems to work!

I wanted to add another “Must Have” extension to my list:
Presentation Mode - https://github.com/RaphaelKimmig/Gnome-Presentation-Mode

This adds a “Presentation mode” switch to the Power Status indicator (battery icon) and inhibits screen blanking/locking when activated. It is great for watching videos or using your laptop for giving presentations or any use case where the 1 hour maximum provided by the “Screen” setting just isn’t long enough.

However, there is a problem – Desktop users don’t have a battery icon. But never fear, there is a fix. Open up the extension’s “extension.js” file and scroll all the way to the bottom and look for this line:

let batteryMenu = Main.panel._statusArea.battery;

and change it to:

let batteryMenu = Main.panel._statusArea.userMenu;

The switch will now appear at the bottom of your user menu.

UGH! I kept tweaking the Presentation Mode extension and I lost track of the changes I made. Here is the complete extension.js file that I KNOW works (well… works for me, at least):

/* -*- mode: js2 - indent-tabs-mode: nil - js2-basic-offset: 4 -*- */
const DBus = imports.dbus;
const Lang = imports.lang;
const St = imports.gi.St;

const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const GnomeSession = imports.misc.gnomeSession;
const UserMenu = imports.ui.userMenu;

const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;

const SessionIface = {
    name: "org.gnome.SessionManager",
    methods:  
    { name: "Inhibit", inSignature: "susu", outSignature: "u" },
    { name: "Uninhibit", inSignature: "u", outSignature: "" }
    ]
};
let SessionProxy = DBus.makeProxyClass(SessionIface);

// Put your extension initialization code here
function init(extensionMeta) {
    imports.gettext.bindtextdomain("gnome-shell-extension-presentationmode",
                           extensionMeta.path + "/locale");
    imports.gettext.textdomain("gnome-shell-extension-presentationmode");
}

function enable() {
    let userMenu = Main.panel._statusArea.userMenu;

    userMenu._itemSeparator = new PopupMenu.PopupSeparatorMenuItem();
    userMenu.menu.addMenuItem(userMenu._itemSeparator);
    userMenu._presentationswitch = new PopupMenu.PopupSwitchMenuItem(_("Presentation Mode"), false);
    userMenu.menu.addMenuItem(userMenu._presentationswitch);
    userMenu._inhibit = undefined;
    userMenu._sessionProxy = new SessionProxy(DBus.session, 'org.gnome.SessionManager', '/org/gnome/SessionManager');

    userMenu._onInhibit = function(cookie) {
        userMenu._inhibit = cookie;
    };

    userMenu._presentationswitch.connect('toggled', Lang.bind(userMenu, function() {
        if(userMenu._inhibit) {
            userMenu._sessionProxy.UninhibitRemote(userMenu._inhibit);
            userMenu._inhibit = undefined;
            } else {
                try {
                    userMenu._sessionProxy.InhibitRemote("presentor",
                        0, 
                        "Presentation Mode",
                        9,
                        Lang.bind(userMenu, userMenu._onInhibit));
                } catch(e) {
                    //
                }
            }
    }));
}

function disable() {
    let userMenu = Main.panel._statusArea.userMenu;

    userMenu._presentationswitch.destroy();
    userMenu._itemSeparator.destroy();
    if(userMenu._inhibit) {
        userMenu._sessionProxy.UninhibitRemote(userMenu._inhibit);
        userMenu._inhibit = undefined;
        }
}

The gnome-session-properties package includes the file /usr/share/applications/session-properties.desktop which contains the line

NoDisplay=false

Changing true to false, or removing the line entirely, makes gnome-session-properties show up in the Application browser as ‘Startup Applications’ - the same name it used to appear as in the GNOME 2 Control Centre.

I briefly looked at how to make it show up in the System Settings. Looking at my list of running processes reveals that the System Settings executable is actually called gnome-control-center. Looking at the files that are provided in the package that provides that executable and looking files the name of which contain the name of one of the items that does appear in System Settings

mike@continuity:~$ rpm -qf $(which gnome-control-center)
gnome-control-center-3.2.1-2.4.1.x86_64
mike@continuity:~$ rpm -ql gnome-control-center | grep -i screen
/usr/lib64/control-center-1/panels/libscreen.so
/usr/share/applications/gnome-screen-panel.desktop
/usr/share/gnome-control-center/ui/screen.ui
/usr/share/gnome/help/control-center/C/config-screensaver.xml

reveals that screen.ui file. There’s one of those .ui files for every icon that appears in the System Settings. /usr/share/applications/gnome-screen-panel.desktop contains

Exec=gnome-control-center screen

So those items are not separate executables that get launched like they were in GNOME 2. I guess this explains why Startup Applications does not appear in System Settings. Why it is hidden from the Application browser though I’ve no idea. Evince is similarly hidden and has been since at least GNOME 2.28. I once read an explanation for why Evince is hidden but it failed to convince me that it being hidden is sensible.

There we go! I made the change and it appears in the “Other” menu.

Thank you so much for doing all this research! So, just adding them to the System Settings menu is a non-starter. I can live with that. What I find bizarre is how the various settings apps are scattered haphazardly about the menu – gnome-tweak-tool in “Accessories,” gconfig-editor in “System Tools,” and session-properties in “Other.” That’s just silly. Of course, that could be changed by further editing the *.desktop files, but who wants to have to do THAT – and do it every time updates to the apps are installed.

I think it should be possible to get these settings into the User Menu. Something that would be simple would be to modify the Alternate Status Menu to add an advanced settings menu item that links to a directory with the appropriate *.desktop files in it. Since I agree with the Gnome developers that these more advanced settings should not be immediately exposed to users, I would propose that the new menu item would be shown when the user presses the “Alt” button while the User Menu is open (rather like the way the default User Menu reveals the shutdown option). In other words, when the User Menu is open, you will see the “System Settings” menu item just as you normally would until you press the “Alt” key, which will change “System Settings” to “Advanced Settings.”

Any thoughts?

RE: Evince – I get why that is hidden. I think it has to do with having a “Task” oriented desktop vs. an “Application” oriented desktop. That design decision makes sense to me. Since Evince isn’t really useful without a document, it makes sense that it would be accessed by opening a supported document rather than opening the application directly. BUT, I understand your perspective on that as well.

Another helpful extension from https://github.com/linuxmint/MGSE – A Trash extension. Very convenient!

https://lh5.googleusercontent.com/--9zUAOalE4g/TteKO9WSYQI/AAAAAAAAABA/kdyQDdcQQGo/s268/Mint-Trash.png

If you like the trash extension, you may like this one a little better (I know I do!): GitHub - bertoldia/gnome-shell-trash-extension: A Trash icon in your panel.
It is very similar to the one I mention above, BUT, it only appears in your panel if there is actually something in your trash folder.

This is taken directly from Malcolm’s post: