Fixing Background Image Display in GNOME Shell 3.10

On upgrading from Ubuntu GNOME 13.10 to Ubuntu GNOME 14.04, a few rough edges were to be noticed. One was the display of my chosen background image: it was garbled. Later, I discovered that there is a maximum width of 2560 px for background images in GNOME Shell these days and that things get messy beyond that.

In my case, the image width was around 6000 px and I was used to its getting resized in GNOME Shell 3.8 and its predecessors. It seems that the functionality got removed after that though so the workaround of manual image resizing in the GIMP needed to be employed. Though having big images open in memory creates an additional overhead, not handling them very well at all looks like a bug caused by setting 2560 px as a maximum screen width for the GNOME Shell panel and the complete removal of Nautilus from desktop rendering duties. Let’s hope that sense is seen with ever larger screen sizes and resolutions coming our way.

It’s the sort of thing that did get me looking at adding on Cinnamon 2.2 for a while before setting background image scaling using the indispensable GNOME Tweak Tool was discovered. LinuxG.net has a useful tutorial on this for anyone with such an adventurous streak in them. For now though, I am OK with my set up but the GNOME project’s focus on minimalism could affect us in other ways so I can see why Clem Lefebvre started the Cinnamon one primarily for Linux Mint and the desktop environment is appearing elsewhere too. After all, Gedit lost its menu bar in GNOME 3.12 so it’s just as well that we have alternative choices.

Update 2014-05-06: It seems that the desktop image bug that afflicts GNOME Shell 3.10 got sorted for GNOME Shell 3.12. At least, that is the impression that an Antergos instance in a VirtualBox virtual machine gives me.

Surveying changes coming in GNOME 3.10

GNOME 3.10 came out last month but it took until its inclusion into the Arch and Antergos repositories for me to see it in the flesh. Apart from the risk of instability, this is the sort of thing at which rolling distributions excel. They can give you a chance to see the latest software before it is included anywhere else. For the GNOME desktop environment, it might have meant awaiting the next release of Fedora in order to glimpse what is coming. This is not always a bad thing because Ubuntu GNOME seems to be sticking with using a release behind the latest version. With many GNOME Shell extension writers not updating their extensions until Fedora has caught up with the latest release of GNOME for a stable release, this is no bad thing and it means that a version of the desktop environment has been well bedded in by the time it reaches the world of Ubuntu too. Debian takes this even further by using a stable version from a few years ago and there is an argument in favour of that from a solidity perspective.

Being in the habit of kitting out GNOME Shell with extensions, I have a special interest in seeing which ones still work or could work with a little tweaking and those which have fallen from favour. In the top panel, the major change has been to replace the sound and user menus with a single aggregate menu. The user menu in particular has been in receipt of the attentions of extension writers and their efforts either need re-work or dropping after the latest development. The GNOME project seems to have picked up an annoying habit from WordPress in that the GNOME Shell API keeps changing and breaking extensions (plugins in the case of WordPress). There is one habit from the WordPress that needs copying though and that is with documentation, especially of that API for it is hardly anywhere to be found.

GNOME Shell theme developers don’t escape and a large border appeared around the panel when I used Elementary Luna 3.4 so I turned to XGnome Enhanced (found via GNOME-Look.org) instead. The former no longer is being maintained since the developer no longer uses GNOME Shell and has not got the same itch to scratch; maybe someone else could take it over because it worked well enough until 3.8? So far, the new theme works for me so that will be an option should there a move to GNOME 3.10 on one of my PC’s at some point in the future.

Returning to the subject of extensions, I had a go at seeing how the included Applications Menu extension works now since it wasn’t the most stable of items before. That has improved and it looks very usable too so I am not awaiting the updating of the Frippery equivalent. That the GNOME Shell backstage view has not moved on that much from how it was in 3.8 could be seen as a disappointed but the workaround will do just fine. Aside from the Frippery Applications Menu, there are other extensions that I use heavily that have yet to be updated for GNOME Shell 3.10. After a spot of success ahead of a possible upgrade to Ubuntu GNOME 13.10 and GNOME Shell 3.8 (though I remain with version 13.04 for now), I decided to see I could port a number of these to the latest version of the user interface. Below, you’ll find the results of my labours so feel free to make use of these updated items if you need them before they are update on the GNOME Shell Extensions website:

Frippery Bottom Panel

Frippery Move Clock

Remove App Menu

Show Desktop

There have been more changes coming in GNOME 3.10 than GNOME Shell, which essentially is a JavaScript construction. The consolidation of application title bars in GNOME applications continues but a big exit button has appeared in the affected applications that wasn’t there before. Also there remains the possibility of applying the previously shared modifications to Nautilus (also known as Files) and a number of these usefully extend themselves to other applications such as Gedit too. Speaking of Gedit, this gains a very useful x of y numbering for the string searching functionality with x being the actual number of the occurrence of a certain piece of text in a file and y being its total number of occurrences.GNOME Tweak Tool has got an overhaul too and lost the setting that makes a folder path box appear in Nautilus instead of a location part, opening Dconf-Editor and going to org > gnome > nautilus > preferences and completing the tick box for always-use-location-entry will do the needful.

Essentially, the GNOME project is continuing along the path on which it set a few years ago. Though I would rather that GNOME Shell would be more mature, invasive changes are coming still and it leaves me wondering if or when this might stop. Maybe that was the consequence of mounting a controversial experiment when users were happy with what was there in GNOME 2. The arrival of Fedora 20 should bring with it an increase in the number of GNOME shell extensions that have been updated. So long as it remains stable Antergos is good have a look at the latest version of GNOME for now and Cinnamon fans may be pleased the Cinnamon 2.0 is another desktop option for the Arch-based distribution. An opportunity to say more about that may arrive yet once the Antergos installer stops failing at a troublesome package download; a separate VM is being set aside for a look at Cinnamon because it destabilised GNOME during a previous look.

A look at Ubuntu GNOME 13.10

With its final release being near at hand, I decided to have a look at the beta release of Ubuntu GNOME 13.10 to get a sense of what might be coming. A misstep along the way had me inadvertently download and install the 64-bit edition of 13.04 into a VirtualBox virtual machine. The intention to update that to its soon to be released successor was scuppered by instability so I never did get to try out an in situ upgrade to 13.10. What I had in mind was to issue the following command:

gksu update-manager -d

However, I found another one when considering how Ubuntu Server might be upgraded without the GUI application that is the Update Manager. To update to a development version, the following command is what you need:

sudo do-release-upgrade -d

To upgrade to a final release of of a new version of Ubuntu, drop the -d switch from the above to use the following:

sudo do-release-upgrade

There is one further option that isn’t recommended for moving between Ubuntu versions but I use it to get updates such as new kernel subversions that are released:

sudo apt-get dist-upgrade

Rather than trying out the above, I downloaded the latest ISO image for the beta release of Ubuntu GNOME 13.10 and installed onto a VM that instead. Though it is the 32 bit version of the distro that is installed on my main home PC, it has been the 64 bit version that I have been trying. So far, that seems to be behaving itself even if it feels a little sluggish but that could be down to the four year old PC that hosts the virtual machine. For a while, I have been playing with the possibility of an upgrade involving an Intel Core i5 4670K CPU and 16 GB of RAM (useful for running multiple virtual machines at a time) along with any motherboard that supports those so looking at a 64 bit operating system has its uses.

The Linux kernel may be 3.11 but that is not my biggest concern. Neither is the fact that LibreOffice 4.1.2.3 was included and GIMP wasn’t, especially when that could be added easily anyway and it is version 2.8.6 that you get. The move to GNOME Shell 3.8 was what drew me to seeing what was coming because I have been depending on a number extensions. As with WordPress and plugins, GNOME Shell seems to have a tempestuous relationship with some of its extensions and I wanted to see which ones still worked. There also has been a change to the backstage application view in that you either get all installed applications displayed when you browse them or you have to start typing the name of the one you want to select it. Losing the categorical view that has been there until GNOME Shell 3.6 is a step backwards and I hope that version 3.10 has seen some sort of a reinstatement. There is a way to add these categories and the result is not as it once was either; also, it shouldn’t be necessary for anyone to dive into a systems innards to address things like this. With all the constant change, it is little wonder that Cinnamon has become a standalone entity with the release of its version 2.0 and that Debian’s toyed with not going with GNOME for its latest version (7.1 at the time of writing and it picked a good GNOME Shell version in 3.4).

Having had a look at other distribution that already have GNOME Shell 3.8, I knew that a few of my extensions worked with it. The list includes Frippery Bottom Panel, Frippery Move Clock, Places Status Indicator, Removable Drive Menu, Remove Rounded Corners (not really needed with the GNOME Shell theme that I use, Elementary Luna 3.4, but I retain it anyway), Show Desktop Button, User Themes and Ignore_Request_Hide_Titlebar. Because of the changes to the backstage view, I added Frippery Applications Menu in preference to Applications Menu because I have found that to be unstable. Useful new discoveries have included Curtains Up and GNOME Shell Open Terminal while Shell Restart User Menu Entry has made a return and found a use this time around too.

There have been some extensions that were not updated to work with GNOME Shell 3.8 that I have got working. In some cases, it was as simple as updating the metadata.json file for an extension with new version numbers of 3.8 and 3.84 to the list associated with the shell version property. All extensions are to be found in the .local/share/gnome-shell/extensions location in your home directory and each has a dedicated file containing the aforementioned file.

With others, it was a matter of looking in the Looking Glass (execute lg in the box that ALT + F2 brings up on your screen to access this) and seeing what error messages were to be found in there before attempting to correct these in either the extensions’ extension.js files or whatever JavaScript (*.js) file was causing the problem. With either or both of these remedies, I managed to port the four extensions below to GNOME Shell 3.8. In fact, you can download these zip files and install them yourself to see how you get on with them.

Advanced Settings in User Menu

Antisocial Menu

Remove App Menu

Restart Shell Entry

There is a Remove Panel App Menu that works with GNOME Shell 3.8 but I found that it got rid of the Places menu instead of the panel’s App Menu so I tried porting the older extension to see if it behaved itself and it does. With these in place, I have bent Ubuntu GNOME 13.10 to my will ahead of its final release next week and that includes customising Nautilus too. Other than a new version of GNOME Shell, it looks as if it will come with less in the way of drama and a breather like that is no bad thing given that personal computing continues to remain in a state of flux these days.

Customising Nautilus (or Files) in Ubuntu GNOME 13.04

The changes made to Nautilus, otherwise known as Files, in GNOME Shell 3.6 were contentious and the response of the Linux Mint was to create their own variant called Nemo from the previous version of the application. On the Cinnamon or MATE desktop environments, the then latest version of GNOME’s file manager would have looked like a fish out of water without its application menu in the top panel on the GNOME Shell desktop. It is possible to make a few modifications that help Nautilus to look more at home on those Linux Mint desktops and I have collected them here because they are useful for GNOME Shell users too. Here they are in turn.

Adding Application Menu entries to Location Options Menu

The Location Options menu is what you get on clicking the button with the a cog icon on the right hand side of the application’s location bar. Using Gsettings, it is possible to make that menu include the sort of entries that are in the application menu in the GNOME Shell panel at the top of the screen. These include an entry for closing the while application as well as setting its preferences (or options). Running the following command does just that (if it does not work as it should, try changing the single and double quotes to those understood by a command shell):

gsettings set org.gnome.settings-daemon.plugins.xsettings overrides ‘@a{sv} {“Gtk/ShellShowsAppMenu”: <int32 0>}’

Adding in the Remove App Menu GNOME Shell extension will clean up the GNOME Shell a little by removing the application menu altogether. If for some reason you wish to restore the default behaviour, then the following command does the required reset:

gsettings set org.gnome.settings-daemon.plugins.xsettings overrides ‘@a{sv} {}’

Stopping Hiding of the Application Title Bar When Maximised

By default, GNOME Shell can hide the application title bars of GNOME applications such as Nautilus on window maximisation and this is Nautilus now works by default. Changing the behaviour so that the title bar is kept on maximised windows can be as simple as adding in the ignore_request_hide_titlebar extension. The trouble with GNOME Shell extensions is that they can stop working when a new version of GNOME Shell is used so there’s another option: editing metacity-theme-3.xml but /usr/share/themes/Adwaita/metacity-1. The file can be opened using superuser privileges using the following command:

gksudo gedit /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml

With the file open, it is a matter of replacing instances of ‘ has_title=”false” ‘ with ‘ has_title=”true” ‘, saving it and reloading GNOME Shell. This may persevere across different versions of GNOME Shell should the extension not do so.

Disabling Recursive Search

This discovery is what led me to bundle these customisations in an entry on here in the first place. In Nemo and older versions of Nautilus, just typing with the application open would lead you down a list towards the file that you wanted. This behaviour was replaced by an automatic recursive search from GNOME Shell 3.6 where the search functionality was extended beyond the folder that was open in the file manager to its subdirectories. To change that to subsetting within the open folder or directory, you need to install a patch version of Nautilus using the following commands:

sudo add-apt-repository ppa:dr3mro/personal
sudo apt-get update && sudo apt-get upgrade

The first of these adds a new repository with the patched version of Nautilus while the second combination installs the patched version. With that done, it is time to issue the following command:

gsettings set org.gnome.nautilus.preferences enable-recursive-search false

That sets the new enable-recursive-search option to false to search within an open directory. It also can be found using Dconf-Editor in the following hierarchy: org > gnome > nautilus > preferences. The obsession of the GNOME project team with minimalism is robbing user of some options and this would be a good one to have by default too. Maybe the others should be treated in the same way even if you need to use Gsettings or Dconf-Editor to change them so as to avoid clutter. Having GNOME Tweak Tool able to set them all would be even better.

A place for GNOME?

There has been a lot of doom and gloom spoken about the GNOME desktop environment and the project behind it. These days it seems to be the fashionable thing to go constantly criticising it, especially after what Linus Torvalds said. KDE went through the same sort of experience a few years ago and seems to have got far enough beyond it that some are choosing it in preference to GNOME. For a good while, it was the other way around.

Since its inception, the GNOME Shell has attracted a lot of adverse comment. However, since my first encounter, it has grown on me to the point that I add it to Ubuntu and Linux Mint and use it as my default desktop environment instead of Unity, Mate or Cinnamon. The first of these may not be so surprising because of the unique approach has been taken. The use of lenses and an application launch bar are items to which I could adapt but its the merging of application menus and title bars with the top panel of the desktop that really puts me off it. Application window buttons can be moved to the right everywhere but on this global menu so I tend to view things from afar instead of using it everyday. There just is something about the experience that won’t grow on me. Strangely, that also applies to my impressions of KDE albeit in a different; there just is something less slick about the appearance of the bottom panel, the plasmoids and other items like them.

Given that Mate and Cinnamon continue the GNOME 2 approach to things that dominated my home computing for much of the last five years since I turned to Ubuntu, my decision to use GNOME Shell in preference to either come as a surprise. It isn’t that the environments aren’t slick enough but that I have come to prefer the way that GNOME Shell handles workspaces, spawning them as you need them. If that could be an option in Cinnamon, then it might become my desktop of choice but that seems to go against the philosophy of the project even if someone adds and extension for it.

For a time, I played with going with LXDE rather than either Unity or GNOME Shell; as it happened, my first impressions of the latter weren’t so positive until I spent a day with the GNOME variant of Fedora 15. Being not dissimilar to GNOME 2 in the way that it worked was the main attraction of LXDE and my initial use of it was with Lubuntu running on a netbook; the LXDE version of Linux Mint 12 now runs on it so there hasn’t been so much change on that machine.

Sometimes, the only way to deal with change is to take a look at it to see what’s coming and to decide what you need to do about it. In the case to GNOME Shell, my day with Fedora 15 on a backup PC changed my impressions and Linux Mint 11’s GNOME 2 desktop looked a bit old-fashioned afterwards. In fact, I popped GNOME 3 on there and have been using it as my main desktop environment ever since.

In computing, there always are some who expect things to just work and be the way that they want them. The need for extra configuration is a criticism that still can be levelled at GNOME Shell. Before going with Mate and Cinnamon, Linux Mint went the same way and I wonder what be done with such an approach. Will someone else pick up that baton and do the handiwork so that users don’t have to do it? Not yet, it seems. Since no one is following the lead of Linux Mint 12, there is a need for user tweaking and I have found which ones work for me and it no longer takes so to do them either.

The first place to begin is GNOME’s Extensions website and I raid a few extensions from there every time I do an operating system installation. The Alternative Status Menu extension is among the first to get added so that I have the shutdown option again on the user menu, a common criticism of the default set up. Since I always install the GNOME Tweak Tool from the distro repositories, I add the Advanced Setting in User Menu extension to get an entry in the status menu that grants quick access. Frippery Bottom Panel comes next on the list because of its workspace switcher and application window list. Others like Frippery Move Clock, Monitor Status Indicator, Places Status Indicator, Removable Drive Menu, Remove Accessibility, Shell Restart User Menu Entry and User Themes follow in some order and make things feel more pleasing, at least to my mind.

You aren’t stuck with the default theme either and I have chosen Elementary Luna from deviantART. For adding your own themes, the above listed User Themes extension is needed. Because I want Frippery Bottom Panel to match the top panel, I tweak its stylesheet and that’s where the Restart User Menu Entry extension comes in handy, though some care is needed not to crash the desktop with constant shell restarts.

Doing the above makes GNOME Shell really amenable to me and I wouldn’t like to lose that freedom to customise. Saying that, the continued controversial changes aren’t stopping yet. Those made to the Nautilus file manager in GNOME 3.6 have caused the Linux Mint project to create Nemo, a fork of the software, and Ubuntu is sticking with the previous version for now. Taking some action yourself instead of just complaining loudly sounds a more positive approach and it too makes its own statement. Many want the GNOME project team to listen to users and the new Nautilus appears not to be what they needed to see. Could the project go on like this? Only time can answer that one.

While it appears that many have changed from GNOME to other desktop environments, I haven’t come across any numbers. A reducing user base could be one way of sending a message and it makes use of a great feature of free software: there is plenty of choice. If the next version of Nautilus isn’t to my taste, there are plenty of alternatives out there. After all, Cinnamon started on Linux Mint and has gone from there to being available for other distros too; Fedora is one example. Nemo could follow suit.

Now that GNOME’s constituent applications are seeing changes, it may be that GNOME Shell is left to mature. Computer interfaces are undergoing a lot of change at the moment and Microsoft Windows 8 is bringing its own big leap. Though controversial at the time, change can be a good thing too and us technical folk always like seeing new things come along (today saw the launch of iPhone 5 and many folk queueing up for it; Google’s Nexus 7 ran out of stock in its first weeks on the market; there are more). That could be what got me using GNOME 3 in the first place and my plan is to stick with it for a while yet.