Home Pauline Howto Articles Uniquely NZ Small Firms Search
Adding Spice to Ubuntu
The Cinnamon Desktop Manager and Linux Mint

Contents

Background to this page

This page is based on my early work with the Cinnamon desktop manager installed into an Ubuntu system allowing a choice of Desktop Manager at login. It was largely directed more towards people who were already using Ubuntu Unity but want to return to a more productive classic style of desktop. It is possible to install Cinnamon with impacting on Ubuntu as Linux Mint, of which it is an integral part, is based on Ubuntu, similar to Lubuntu, Kubuntu, Xubuntu etc., albeit an unofficial flavour. In fact Cinnamon was available for a period in the Ubuntu repositories. Although I switched to Linux Mint which uses Cinnamon after a couple of years it seemed worth updating as it is still an obvious way for somebody with an existing Ubuntu system to try an alternative desktop.

In summary this is a page for experienced existing users of Ubuntu who want to experiment and probably switch back to a productive conventional desktop - new users would do better to start with Linux Mint although even they will find a number of areas of interest once they gain some experience. Full details of my original experiences using Cinnamon to replace the Unity Desktop Manager are still available in the original diary entries which formed the basis of the original page. Mint is well covered in the pages covering my three Laptops running Linux Mint although some general information may be backported into this page. It is also a way forwards with very new machines which the initial kernel used in Mint will not support.

Introduction to the Cinnamon Desktop Environment

Cinnamon is a Desktop Environment developed for Mint which can also be used with Ubuntu in place of Unity or the Gnome Desktop as well as with Lubuntu and Xubuntu. It can also be used with many other distributions but that is another story. It provides a very sophisticated conventional desktop which has been very well received and once more makes Ubuntu a sensible proposition. It builds on Gnome 3.x but has a much better interface and the Mint - Cinnamon combination has consistentantly been at the top of the Distrowatch tables and above Ubuntu itself! Mint has more than just the Cinnamon Desktop in its favour as it offers a much fuller set of facilities and immediately usability than Ubuntu in particular for media applications. However the Cinnamon interface is the clincher for most people. It can be overlaid very easily on a standard Ubuntu install and be chosen as an alternative to Unity chosen at login - no reboot is needed to switch, only to log out and back in so it is very quick. I have find I have never gone back to Unity to do any work since loading Cinnamon and have added it to all the machines which have the hardware capable of running it.

Cinnamon, which reminds one of the good old days of GNOME 2.x, is built on Muffin (a compositing window manager which has grown out of Clutter/Mutter) and Gnome 3 but is more attractive and with better features including extensive customisation and drag and drop support in the panel and menu. It is trivially easy to add menu items to the desktop, panel and 'favourites' as well as a right-click on the menu to use the menu editor to change edit the main menu itself. It gives me great control over my desktop. Another great advantage is Cinnamon/Muffin's Expo mode which seems more useful than the one provided via Compiz in Unity. Expo gives you great control over your workspaces and one can choose how many workspaces to use and drag and drop applications to each workspace - very powerful but also easy to use and I find I am now making much more use of workspaces.

The panel is entirely implemented by Applets so you can not only customise and reposition all the usual facilities but you can replace them with alternate versions. There are, for example, at least 5 different main menus with different degrees of complexity including the 'Mint' style as well as the new Cinnamon Menu and other layouts and the usual type of 'Window List' is, by default, replaced by what I regard as a major (if not killer applet) which allows one to see popups of each program group which are open with the full Window previewed in the background as you hover over each one. This cures the major problem I have with Unity and that is switching programs especially when I have several instances or windows open especially those running under Wine which can show up with incorrect attributions.

Now there must be a catch! The only real catch I have found is that good 3D acceleration is required for Cinnamon to run so it is not a solution for all machines over 10 years old (and I have some) but Unity and Gnome 3 do not run properly on such machines either! In those cases Lubuntu is still the way forwards and is still better and more productive than Ubuntu Unity - or you could try the Mate flavour of Mint. I have however, with a bit of work, got Cinnamon running on an Amilo D8830 laptop with a ATI Radeon RV250 graphics card which must be nearly fifteen years old and on a Toshiba L20 Satellite Pro which is 10 years old.

Introduction to Linux Mint - Cinnamon Desktop edition

Main Features and strengths of Mint over and above use of Cinnamon

Installing the Cinnamon Desktop and supporting programs in Ubuntu

Cinnamon is easily installed in Ubuntu 18.04 by adding a PPA. The one at https://launchpad.net/~embrosyn/+archive/ubuntu/cinnamon is currently the favoured choice. This and Cinnamon can be installed by this single line pasted into and run in a terminal:

sudo add-apt-repository ppa:embrosyn/cinnamon && sudo apt-get update && sudo apt-get install cinnamon
It will ask to install a number of other new packages and that is it. You do not even need to reboot, just to log out and log back - you select which desktop by clicking on the little orange icon at the top left above the username and password boxes if you are using the standard Ubuntu 'Greeter'. The theme and set up may not be perfect but you will probably never switch back to Unity!

If you want to continue using the Cinnamon Desktop with Ubuntu it is worth installing the xapps utilities which are part of Linux Mint. These include xed, better version of gedit, pix, xplayer and xreader. Again you ca use a PPA at https://launchpad.net/~embrosyn/+archive/ubuntu/xapps. The PPA can be installed by this single line pasted into and run in a terminal:

sudo add-apt-repository ppa:embrosyn/xapps && sudo apt-get update

and you can then add the programs you require using Synaptic, the Package Manager or the command line. Blueberry, the improved Bluetooth interface is already in the Cinnamon PPA.

It is also possble to install nemo instead of nautilus as the file manager - there is an article at linuxuprising.com on how-to replace nautilus with nemo which explains the proceedure and possible problems which should be reduced if you are using the version in the cinnamon PPA. I have not done that and once you reach that stage I would advise shifting to Mint.

I ran under Ubuntu for several years but that was before Linux Mint was so well developed. It is now one of the best Linux Distributions so I would recommend changing earlier rather than latter, perhaps as an alternative to an Ubuntu update to the next version. There are a couple of possible reasons to keep with the joint system. The main one is if you have a new machine which needs the latest kernel at the time you install the system - Linux Mint allows you to easily change kernel but not at install time and Ubuntu may have a more up-to-date kernel during install whilst with Cinnamon the initial kernel is generally only updated with the two yearly LTS update. I had that situation recently with my Helios Laptop with a Intel Skylake processor where Ubuntu ran out-of-the-box but not Cinnamon for a few months.

Possible Fixes required when running Cinnamon in Ubuntu

Uninstalling Nautilus when you have Nemo and what to do about programs that are 'hard-wired' to Nautilus

Nautilus is replaced by Nemo as file manager (and Desktop Display Manager) when one is using Cinnamon. This works well most of the time but on occasion the system seems to get confused and uses nautilus as the file manager for the desktop. This means all the icons move round and one loses many of the useful right click functions and if you open a folder it opens using Nautilus. The only way get round this is to uninstall nautilus.

Unfortunately I have some scripts and many cut and paste terminal strings which reference nautilus directly which is an inconveniece which can be reduced by the use of an alias. There are also a few programs including the important Truecrypt where references to Nautilus are hard coded in - when you mount a drive it is very convenient to have it open in a file manganager window and if nautilus is not present you just get erro messages when you mount the drive. The answer is to rename and replace the nautilus binary file by a script which calls nemo and passes all the parameter strings across - nemo is a close fork of nautilus so the parameters are identical. The binary is called nautilus and lives in /usr/bin so one uninstalls nautilus and replaces it with a little file which needs to be owned by root and with execute permissions and contains.

#!/bin/bash
exec nemo $1 $2 $3 $4
exit 0

Use this in a terminal to get to the folder to rename nautilus and add the replacement script using right click menus:

sudo nautilus /usr/bin

Remove the Overlay Scrollbars when Cinnamon has been installed alongside Ubuntu Unity

The overlay scrollbars seem to be randomly applied when one has loaded Cinnamon into an Ubuntu Unity system and I like to get rid of them. I have found that the various tweaking tools are not fool proof so the following two methods can be used to get rid of the tools bars.

Method 1: There are several well documented proceedures but the easiest is just to remove the two packages that produce them namely overlay-scrollbar liboverlay-scrollbar. The latest Ubuntu systems have a version number associated with liboverlay-scrollbar and my 12.04 system has liboverlay-scrollbar-0.2-0 and liboverlay-scrollbar3-0.2-0 The best way to remove them is to use the Synaptic Package Manager and search for scrollbar or you can try

sudo apt-get remove overlay-scrollbar liboverlay-scrollbar*

Make sure the * on the end is copied - it gets lost if you use a middle click paste.

Method 2: A second method is to create a file /etc/X11/Xsession.d/99disable-overlay-scrollbars and add a single line to it containing export LIBOVERLAY_SCROLLBAR=0 . The file needs to be created as root and have execute permissions set. This can be done by the following command in a terminal:

echo export LIBOVERLAY_SCROLLBAR=0 | sudo tee -a /etc/X11/Xsession.d/99disable-overlay-scrollbars

You may find that the sliders are missing the stepper buttons at the end of the bars because they have been disabled in the Ambiance theme. I have not tried the following suggestion from http://askubuntu.com/questions/34214/how-do-i-disable-overlay-scrollbars but it looks worth a try and should cover a single user. Backup the files first

To re-enable them in the Ambiance theme, put the following in the ~/.gtkrc-2.0 file:

style "default" {
engine "murrine" {
stepperstyle = 0
}
}

and the following into the file ~/.config/gtk-3.0/gtk.css:

.scrollbar {
-GtkScrollbar-has-backward-stepper: 1;
-GtkScrollbar-has-forward-stepper: 1;
}

Installing Linux Mint - Cinnamon Edition

I will only say a little here as installation is covered in excessive detail already for my three laptops running Linux Mint - links are at top and bottom of page. The most appropriate for most people will be The Lafite Ultrabook as this has both an Solid State Drive, which requires some special attention, and a large hard disk, uses Timeshift and has Multiple Users with Encrypted home folders. I include the contents list below:

Contents of Lafite Ultrabook Write-up

Running Cinnamon from a LiveUSB with 'Persistence'

Basic and Persistent LiveUSBs

There are two sorts of LiveUSB, those with and without 'Persistance'. So what is 'Persistence' and why is it an important for LiveUSBs. Wikipedia indicates: "Persistence – in computer science refers to the characteristic of data that outlives the execution of the program that created it. Without this capability, data only exists in volatile memory, and will be lost when the memory loses power, such as on computer shutdown." A persistent Linux LiveUSB install save data changes back to the USB storage device instead of leaving the information in RAM. This data can then be used again on subsequent boots, even when booting from different machines.

In practice there are some limitations in saving system software but the latest versions of Ubuntu and Mint maintain system configuration changes such as setting up Wifi, allow you to load applets and programs, update system and application software and I have even done a full update successfully

You can even take the stick to a completely different machine and plug it in and continue working. There are also implementations which allows you to have several different systems on the same [large] USB stick and choose when you boot up - perfect for compairing systems and demonstrating. The limitations come when one is updating or loading new drivers, such as those for video cards, or changes within the kernel, certainly where a re-boot may be required. It is also not advised to do a 'Mint install to Disk' from some implementations of persistance.

Additional advantages of a persistent LiveUSB:
Disadvantages of a persistent LiveUSB:
Additional information I have gleaned:

Persistence is built into the Linux Kernel but the methods forked many years ago and the methods are not interchangeable between distributions, even the kernel arguments are different between Debian and various Debian based distributions.

Applet Development using a persistent LiveUSB

For me it is important in applet development as I can have a number of LiveUSBs with different verions of Mint/Cinnamon to test changes do no affect earlier versions and, more important, to allow me to work with alpha and beta versions to ready applets for the next version. I install git so I can even continue development on the LiveUSB.

How does one create a LiveUSB with persistance

This used to be easy using Unetbootin which offered the option of up to 4 Gbytes of persistent drive for Ubuntu based ISOs but persistence no longer seems to be working with Unetbootin and the latest versions of Ubuntu or Mint. I looked around long and hard and it is difficult to get a good description of how persistence is implemented and how to create a LiveUSB with persistence. It seems that the best way to start is with a program called mkUSB which is basically a series of scripts which work under Linux including from a liveUSB. It is comprehensive and offers many additional facilities.

Using mkUSB to flash a persistent LiveUSB

mkUSB runs under Linux so you either need an existing Linux system installed on a machine or you need to install it on a LiveUSB and then flash another USB stick with the persistent system, fortunately even most laptops have two USB ports.

First you have to install the mkUSB application from a PPA. The following needs to be copied as a single line into a terminal to install it:

sudo add-apt-repository ppa:mkusb/ppa && sudo apt-get update && sudo apt-get install --install-recommends mkusb mkusb-nox usb-pack-efi zenity

You can now start mkUSB from the menu and go through many screens.

  1. Select Yes to use version DUS
  2. Enter sudo password.
  3. Acknowledge overwrite warning.
  4. Select option “i” Install (Make a boot device)
  5. Select "p" 'Persistent live' - only Debian and Ubuntu
  6. Navigate to select source ISO;
  7. select target drive from list; MAKE SURE IT IS YOUR USB DIVE
  8. Select upefi usb-pack-efi (Default Grub from ISO File)
  9. Select % of remaining space for persistence (I use 50% so there is some space for storage for transfers ).
  10. Read warnings, Double check installation target, select Go then Click “Go”.
  11. There will be a long period whilst files are copied with a progress bar showing
  12. The final stage of the creation is to flush the file system buffers to the USB drive.
  13. When the process has completed you will see a dialog with the phrase “Work done” highlighted in green. Click the “OK” button.
  14. If any other dialogs appear, close them by clicking on the “Quit” button.

It all looks quite complex but it is actually quite quick and obvious when one comes to do it. The first two of the following links have nice walk-throughs with screenshots which make it more obvious.

Using a LiveUSB created by mkUSB

It is now time to use the Persistent LiveUSB created by mkUSB.

The boot sequence will be slightly different to the basic LiveUSB as it will have a GRUB menu with a number of options:

The "Persistent Live to RAM" should be faster in operation if you have plenty of memory as the "ISO" is copied into memory for much faster access but slow to start due to the copy - several minutes on my Chillblast Helios.

Unfortunately the Grub options do not have a 'check integrety of medium' option so one should really do a check the MD5 checksum when one downloads the ISO.

Cinnamon Configuration

Cinnamon Keyboard Shortcuts

Cinnamon has a large number of useful keyboard shortcuts in which do not seem to be very well documented. Some I find useful are:

Super Key -> Toggles Menu

Ctrl Alt Up -> 'Expo' Applet which displays workspaces and Windows and allows drag and drop of Windows between Workspaces - a very useful productivity tool which can be configured to your preferences

Ctrl Alt Down -> 'Scale' Applet which displays currently open Windows - a very effective window switcher which can be configured to your preferences

Ctrl Alt Left -> next workspace to left

Ctrl Alt Right -> next workspace to right

Alt Tab -> Window Switcher - allows you to tab through open windows with previews which you can configure

Ctrl Alt t -> Launch Terminal

Ctrl Alt Del -> Logout screen with cancel option.

Ctrl Alt Backspace -> Immediate Logout

You can find many other preset options by looking in Cinnamon Settings -> Keyboard -> Keyboard Shortcuts and you can also set up your own custom shortcuts

Cinnamon Themes

Cinnamon offers many alternative themes which can be easily installed from http://cinnamon-spices.linuxmint.com/themes

I initialy used the Minty theme and learnt a lot by making a minor modification to change the background colour of the popup boxes for the Cinnamon Menu and other Applet menus in the .css file associated with the theme which can be edited by:

sudo xed /usr/share/themes/Minty/cinnamon/cinnamon.css

the changed sections are:


/* ===================================================================
* PopupMenu (popupMenu.js)
* Changes made to give a Dark Green Background with reduced transparency
* ===================================================================*/

.popup-menu-boxpointer {
-arrow-border-radius: 3px;
-arrow-background-color: rgba(0,47,0,0.95);
-arrow-border-width: 1px;
-arrow-border-color: rgba(255,255,255,0.1);
-arrow-base: 21px;
-arrow-rise: 10px;
-boxpointer-gap: 3px;
}

 

/* ===================================================================
* Menu (menu.js)
* Changes to give a very dark green background to the favorites list in menus
* ===================================================================*/

.menu-favorites-box {
background-color: rgba(0,23,0,0.95);
border: 1px solid rgba(255,255,255,0.1);
margin: auto;
padding: 3px;
border-radius: 3px;
}

See also the section below on the Amilo

If the them is not in the PPA you can download an archive file and extract the file to the themes directory i.e. "~/.themes/" or "/usr/share/themes/" and then use Cinnamon Settings to choose the theme.

Theme Choices

I standardised for a long time on a Theme called Void which has a silver coloured panel which extends from right and left. It can be downloaded from the themes page of Settings and is fine without further changes. It is lo longer available but Pauline still uses her existing copy although it does not support some of the latest features

I also loaded the Ambiance and Radiance Colours Suite which I found through WebUpd8 and the latest write up is at lhttp://www.webupd8.org/2014/09/ambiance-radiance-colors-themes-updated.html This gives an excellent choice of Colours for the Window Borders and Controls which are slightly better than those from Mint-X which would normally be used with Void. I am using Ambiance-Green for both. There is a matching icon set Humanity-Colours but this is not complete so I am continuing to use Mint-X for the icons until this is sorted

The Colour Suites can be installed via a PPA in a terminal by:

sudo add-apt-repository ppa:ravefinity-project/ppa && sudo apt-get update && sudo apt-get install humanity-colors ambiance-colors radiance-colors

Overall the set-up on the Cinnamon Settings -> Themes:

Window Borders: Ambiance-Green
Controls: Ambiance-Green
Icons: Mint-X
Mouse Pointer: DMZ-White
Desktop: Void

This gives a very pleasing dark theme - I have matched it with used if Personal Slate themes in Firefox and Thunderbird

Cinnamon Spices (Applets)

The ability to utilise applets is a major strength of Cinnamon. There are a huge range of Applets which are stable and under development at http://cinnamon-spices.linuxmint.com/applets. They are simply installed by downloading an archive and extracting the folder containing the applet to the ~/ .local -> share->cinnamon->applets folder

Weather Applet

This is more complex to install but there are full instructions in the zip file you download from http://cinnamon-spices.linuxmint.com/applets/view/17 This is by far the most popular of the applets available. There are no automatic updates and currently the pressure seems to be in error.

Steps include extracting the folder from the archive to the desktop, running the install.sh script by double clicking -> run in terminal and one also needs to add two extra dependencies by:

apt-get install gettext libglib2.0-bin

You then need to find the code for your location from http://edg3.co.uk/snippets/weather-location-codes/ - examples are Reading is UKXX0117 and Guernsey is UKXX0065

Bluetooth Basics and Pairing under the Cinnamon Desktop

Bluetooth is an excellent way to send contacts and files between machines and also allows the modem in one device to be used by another. Before you can do this the various devices must be 'paired' - this means that you set up a 'PIN' on both to give a secure communication without anybody else being able to hijack the connection which is important when one is a computer or mobile phone. The other security feature is that once paired you stop your devices being 'discovered' by other peoples machines which are searching for devices with Bluetooth (BT) turned on. This all sounds a bit complex and it does take a little while the first time.

When a Bluetooth dongle is inserted or a built in Bluetooth device is turned on a Bluetooth icon appears in the panel or system tray in most systems - in Cinnamon this is an applet which is normally installed by default but it if it does not appear you may need to add the Bluetooth Applet.

The first activity is to pair the Phone or Mobile Device to the computer. The way Bluetooth is paired varies a little between devices but in general it is initiated from the computer end but the device often has to be placed into the correct mode first. In the case of the Blackberry it is 'Listen' for a device to find me, on other devices it may be called 'Discoverable' and normally the mode is timed out after 2 minutes if pairing does not take place.

Using a BTR006 BlueTooth Audio Receiver as an example.

Let us take a typical example of an audio device - an audio device does not need very high security so typically they have a preset PIN which is often 0000 but need to be made receptive to pairing for a short time. In the case of the BTR006 which is an audio input device to connect to hifi etc through a 3.5mm jack there is a single button and led to control it. Holding the button for 3-5 seconds turns it on. Holding for 10 seconds puts it into a special pairing mode where it is discoverable and it responds with a PIN of 0000 for 2 minutes. Pairing is now very simple - clicking on the Bluetooth Applet gives a menu which includes Set up a New Device which takes one to a Wizard where the second screen searches for and displays all unpaired devices and you highlight the BTR006 and on the PIN options one selects fixed and 0000 and continue and that is all that is needed. From now on the device will automatically be connected when the computer and BTR006 are turned on and within range. You will see a double blue flash every 5 seconds on the BTR006 in that case rather than the single flashes when it is just turned on and it will show up as an alternative audio device which you can select instead of the audio output or built in speakers.

Mobile Phone Tethering using internal modem (DUN) in older mobile phones

My main use of Bluetooth used to be to access modems in my older phones and use the spare data allowances for internet access in the UK. I have covered this at length in Ubuntu Mobile - Bluetooth and Connecting to the Internet via Bluetooth modems in older phones Unfortunately this does not work seem to work under Mint 16 or 17 on the Defiant. Eventually I went back to the Mint 15 Olivia and it works fine on the Defiant both using the inbuilt mechanisms through the network manager and also through gnome-ppp which is my usual way because there has been a problem starting at kernel 3.8 with the inbuilt mechanism. Neither way works under 16/17 and this seems to be a real bug but one not reported and I have filed a bug report at https://github.com/linuxmint/cinnamon-bluetooth/issues/5. I suspect few people 'tether' using bluetooth these days although I know at least one sailor who hauls his bluetooth connected phone up the mast to get a good data connection at sea!

I have done some further investigation which confirm it is not a Defiant problem and have a crude workaround which I have added to Ubuntu Mobile - Bluetooth and Connecting to the Internet via Bluetooth modems in older phones and added my findings to the bug report. (Last Updated 18th January 2014)

Tethering via Bluetooth to an Android Phone

This proved to be very easy and provides access to the internet via an Android smart phone - in my case either a Samsung S3 Mini (GT-I8200N) with Android 4.2.2, a Samsung S3 (GT-I9301I) with Android 4.4.2 and a Samsung A6 with Android 8, although this should work with most phones and equal or higher versions of Android. The phone needs an active internet connection which can be a mobile phone connection with Data enabled or a Wifi connection. One might ask why bother in the case of a wifi connection, why not connect directly? It has obvious advantages if you are on a 'pay by time' connection as you can connect several machines as well as the phone and it also gives extra security in an internet cafe. In may cases the phone can be set up to log in automatically to a Sky or similar Wifi connection.

First we need to set up and pair the Android Phone to the Computer

Screen Shot Screen Shot

That is basically it - when you click on the network manager applet in the panel you should have an extra heading Mobile Broadband with the new connection GT-I8200N under it.

Screen Shot Screen Shot

The pairing is slightly different in Mint 18 - you have to accept the confirm the number provided on Both machines and the button is very small at top right on the computer. You settings screen is also greatly simplified and you no longer need to explicitly tick a box to use with the network manager, it is done automatically and it shows in Network manager as above.

You only need to pair once after which you just need to click on the GT-I8200 connection after ensuring the following are satisfied:

To disconnect or after disconnection

I have found it is possible to make duplicate connections which show up in the network Manager Applet and there is ne simple way to remove them. The only way seems to be to do to the folder that contains them /etc/NetworkManager/system-connections/ and delete the duplicates - you need root privileges so use

gksu /etc/NetworkManager/system-connections/

There is no quick links in the notification panel on the Android phone under 4.2.2 for switching tethering on and off but you can add a Settings widget to the home screen to take you straight to the tethering settings. Android 4.4.2 has a link on the notification panel and a long hold takes you to the full tethering settings.

Note that you can use data very fast from a computer especially if there are automatic upgrades etc. Experiment with a Wifi connection on the phone first and use a data monitoring applet such as NUMA. Check data use frequently on the Phone.

More about the connections used by Android for Bluetooth Tethering - PAN, NAP and BNEP

The Android Bluetooth tethered connection uses a Personal Area Network (PAN) which is a computer network used for data transmission among devices such as computers, telephones and personal digital assistants. PANs can be used for communication among the personal devices themselves or for connecting to a higher level network and the Internet. A Bluetooth PAN is composed of up to 8 active devices in a master-slave relationship (a very large number of devices can be connected in "parked" mode). The first Bluetooth device is the master or in this case the Network Access Point (NAP), and all other devices are slaves that communicate with the master. The communication protocol is the Bluetooth Network Encapsulation Protocol (BNEP) which is used to transport common networking protocols over the Bluetooth media such as IPv4 and IPv6. The packet format is based on Ethernet.

The Bluetooth manager detects that the Android device supports PAN/NAP and, by ticking the box, creates a connection for the Network Manager. The Network Manager (in the form of the applet) makes this available but the support is incomplete. As mentioned above one easily ends up with duplicate connection which have to be deleted from the terminal as root. The connection is also identified by the Bluetooth address and it delivers this rather than the actual connection interface which is bnep0 and is displayed as a Mobile Broadband Connection which is an approximation to the truth! This causes a problem with my NUMA applet which depends on the interface delivered by the Network Manager so I have had to add an exception as I have with the ppp0 interfaces used by Mobile Broadband connection.

Bugs, Features and Fixes - Legacy fixes for the most part

Forcing Mint to update to the latest versions of programs when using PPAs (apt-pinning)

I thought it would be simple to get the latest version of MDM into Maya to replace the less capable one in the Maya repositories. The changes to MDM are is the second most import area of upgrades in Nadia from Maya - in particular I wanted to have a user list and the potential for a automatic login after a period of time on some of the machines which do not need to be secure.

Unfortunately just adding the more up-to-date repository not work in Mint Maya and I also noticed that the Romeo repository was nothing like so up to date for Cinnamon and Nemo as the PPA I am using for the Ubuntu systems.

The latest versions of MDM are available in one of the webupd8 PPAs see http://www.webupd8.org/2012/11/how-to-install-latest-mdm-display.html which can be installed in Ubuntu by

sudo add-apt-repository ppa:nilarimogard/webupd8 && sudo apt-get update && sudo apt-get install mdm mint-mdm-themes

unfortunately this did not work in Mint and I also noticed that the Romeo repository was nothing like so up to date for Cinnamon and Nemo as the PPA I am using for the Ubuntu systems and installed by:

sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable && sudo apt-get update

On looking into it further I found that Mint does not always pick or even display the latest version as it always gives priority to versions in its own Repositories over those in Ubuntu Repositories and both over those in PPAs. This is arguably very sensible as it ensures that normal users get the most stable core system regardless of what PPAs they add.

On search the internet I discovered the mechanism Mint uses is in a configuration file for apt namely /etc/apt/preferences . See http://forums.linuxmint.com/viewtopic.php?f=90&t=103054&hilit=maya+freezes&start=520 for the source of my idea. The mechanism is called apt-pinning and references such as http://wiki.debian.org/AptPreferences#A.2BAC8-etc.2BAC8-apt.2BAC8-sources.list are full of caveats and warnings so what follows should be used with care and the you should look carefully at the upgrades that are offered and only select those you intended and needed and then disable the PPAs/Repositories you are forcing to a higher priority or remove the changes to /etc/apt/preferences when you have got what you need. That said the particular examples are probably OK but watch that other PPAs to the ones you intend do not also match.  

First lets have a look at the /etc/apt/preferences file which is added by Mint - a normal Ubuntu system does not have one. This has already been edited by adding the lines in red at the end.

Package: *
Pin: release o=linuxmint
Pin-Priority: 700

Package: *
Pin: origin packages.linuxmint.com
Pin-Priority: 700

Package: *
Pin: release o=Ubuntu
Pin-Priority: 500

Package: *
Pin: origin ppa.launchpad.net
Pin-Priority: 700

The changes give the same pin priority to the PPAs from ppa.launchpad.net (Both PPAs we want to use are at ppa.launchpad.net) as those from Mint so that apt will now choose the the most up-to-date instead of those in the Mint repositories. You need to be aware that it will 'uprate' the priority of all PPAs at ppa.launchpad.net that you have added so beware - it is not easy to go back to older packages. This also a case where it is more important than usual to make a backup first as one is play in an area where you might not even reach a graphical login screen if it goes wrong!

This enabled me to update to the latest versions of Cinnamon and Nemo which was important as there were many updates coming during the Release Candidate phase and also to try out the latest MDM greeter screens. This has probably given me 90% of the System improvements and hopefully a more stable system without risking using the new upstream 3.5 kernel used in Nadia and Ubuntu 12.10 with my older video cards. It also give me choices of applications to update - LibreOffice would be a benefit but the latest Rhythmbox is definitely a backward step with less facilities and a cramped display.

 

Quirks in the Cinnaman 1.6 Main Menu - much improved in Cinnamon 1.8

The main problem with the menu is that it can take several seconds to appear the first time after a restart or Login but is much faster subsequent times although far from instantaneous.

On further investigation I discovered on my MSI Wind U100 that a the menu speed on a 'fresh install' of Mint 13 Maya was Much faster than on my existing Ubuntu 12.04 based system which had been updated progressively by Distribution Upgrades from 11.04 but with a home folder which had been preserved from 9.04 or earlier which also has a lot of old WINE programs. I used a Unetbootin LiveUSB with Mint 13 Maya with persistence so I could get to Cinnamon 1.6 by enabling the Romeo repository. Even using a LiveUSB the menu delay was scarcely noticeable on the first call whilst it is could be up to 10 seconds on the 'dirty' system. The differences would certainly explain why some see a major problem whilst others see it as largely cured. I checked again with Mint 14 which was also very fast. Eventually I also got an Ubuntu 12.10 system on a LiveUSB with Cinnamon 1.6 installed and it was almost as fast as Mint based systems despite having quite a lot of extra/duplicated system applications.

I have now succeeded in speeding up my operational Ubuntu based system by removing everything I could from ~/.local/share/applications which had a total of over 120 .desktop files. These were mostly from Wine programs - every Windows program seems to generate a large number of extra menu entries for help files, uninstall links and various other associated utilities. Some programs like Word 2003 had over ten extra programs. I initially used the menu editor to hide the programs which did reduce the delays but it seemed better to make a copy of the folder and then empty it of everything other than the main launcher for each program.

I then started to use the Menu editor to 'hide' any other applications which were unused when using Cinnamon. Use of the menu editor (accessed by right clicking the menu applet on the toolbar) showed another problem. Most of the Wine programs had been put in the Other Category and the Wine application list only had the launchers from the Wine Application itself and none from programs installed by Wine. This is because Cinnamon uses the Categories from the .desktop files and the category is not set by Wine when programs are installed. This did not seem to be the case with the old Gnome 2.6 menus where Wine programs were correctly attributed - I do not know the mechanism used to generate those menus. I only have a small number of important progrms running under Wine so I hand edited the launchers (.desktop files) in~/.local/share/applications to have a line containing:

Categories=Wine;

The final ; is probably redundant as it is used as a separator if several Catagories are set however most of the launcher files seem to have it.

The end results in power on demand mode are averaged stopwatch timings of 2.25 seconds initial menu delay reduced to 1.35 seconds for subsequent openings. My reaction times need to be removed from both so a reasonable estimate is 1.6 seconds initial delay and .7 seconds subsequently. This is fast enough that you can hit the menu key and immediately start typing a program you are searching for without any loss of key strokes.

Cinnamon 1.8 is much faster and removes the need for my work arounds on all but the slowest of legacy machines.

More about Menus and Launchers

Regardless of the speed issue on the Cinnamon menu it is useful to have a basic understanding of how a program is launched and how the a Menu attributes the launchers to categories.

When you see a 'launcher' on the desktop or as a menu item you are actually seeing the representation of a Desktop Entry File which ends in .desktop. Most desktop managers hide the details from you and you can not open them for editing directly (Lubuntu/LXDE is the exception) but you can open them from within gedit and you will find they all follow a standard format. When a program is installed it places a launcher (.desktop file) in one of a few well defined places. Programs which are accessible to all users have a launcher (.desktop) file in /usr/share/applications or sometimes in /usr/local/share/applications (zygrib is the only program I know of which uses /usr/local/share/applications). Programs which are unique to a user such as wine (Wine Is Not an Emulator) place their launchers in ~/.local/share/applications - in the case of wine they are in subfolders like ~/.local/share/applications/wine/Programs/programfolder. The launchers in ~/.local/share/applications take priority when the menus are created so the safest way to modify a launcher is to copy it from /usr/share/applications to ~/.local/share/applications and edit it there.

Note that in many systems the menus are only created at login time so modifications are not apparent until a logout and re-login has taken place. Cinnamon does not have this restriction but the regular rebuilding does lead to a perceptible delay on slow systems, in particular the first time the menus are used after a restart or a change in the menu contents.

The full format for a Desktop EntrySpecified in http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html but only a few of the entries are mandatory and their names are self explanitory. So lets look at a typical .desktop file for Catfish, a file searching program where I have put in red the Mandatory entries. The entries in orange are also usually present - Comment gives a tooltip, Icon does what it says, Terminal specifies whether to run in a terminal so normally false or left out, Note that in this case all the programs and icons etc are in the path which is searched - if you are creating your own it is safest to specify the full path for the executable (and icon if you want to avoid it changing with the theme). Categories is used by programs which build menus and contains a list of Catagories in which it can appear. NoDisplay true means "this application exists, but don't display it in the menus". This can be useful to e.g. associate this application with MIME types, so that it gets launched from a file manager (or other apps), without having a menu entry for it. StartupNotify is more complex and invokes a mechanism allowing a desktop environment to track application startup, to provide user feedback and other features (probably leave out if you are creating your own unless you are absolutely sure of what you are doing! StartupWMClass is often not specified and the defaults used - if specified it is used to help in correct attribution of running applications to Window Lists in a panel. The OnlyShowIn and NotShowIn again do not not often appear but can be useful if you have a system which has the option of using both the Unity and Cinnamon Desktop managers to taylor the menus to only show the settings and other tools appropriate to each desktop environment - only one can be present.

[Desktop Entry]
Version=1.0
Type=Application
Name=Catfish
Exec=catfish

Comment=File search
Icon=catfish

Terminal=false
Categories=GTK;Utility;Filesystem;
NoDisplay=false
StartupNotify=true
StartupWMClass=catfish
OnlyShowIn=GNOME;Unity;

The specifications also allow for extra items to be added which are specific to particular desktop managers and you may find extra entries for 'quicklists' in a system which was installed with Unity as the desktop manager - these are usually started by entries with an x prefix and should be ignored by other managers but who knows!

In Ubuntu and its derivatives a right click -> properties shows a box which shows a subset of the information in the launcher file and the same goes for the Properties function with the Cinnamon Menu Editor

 

Howto handle various freezes of Linux, Mint, Cinnamon, Programs and Applets

Terminate an Unresponsive Programs using xkill

When one is experimenting with new software there is always a risk of programs freezing. Xkill is a tool for terminating misbehaving or unresponsive programs and is part of the X11 utilities pre-installed in Ubuntu and Linux Mint .

Use Alt+F2 to bring up a run box (or open a terminal) and enter xkill and return to turn the cursor to an X-sign, move the X-sign and drop it into a program interface with a left click to terminate the unresponsive program, or cancel the X-sign with a right-click.

One can easily add a shortcut key to launch xkill with the steps below.

  1. Go to Menu > Preferences > Keyboard.
  2. Under the Shortcuts tab, click the "+" button or "Add Custom Shortcut" to create a custom shortcut.
  3. Enter xkill to both the Name and Command boxes and click the Add button.
  4. Click on unassigned at the xkill row in the Keyboard Shortcuts window (unasigned is then changed to Pick an accelerator...).
  5. Press a new key combination, e.g. Ctrl+Alt+X (Pick an Accelerator ... is then changed to Ctrl+Alt+X).

Xkill is ready for use. Press the above key combination to turn the cursor to an X-sign, move the X-sign and drop it into a program interface to terminate the unresponsive program, or cancel the X-sign with a right-click.

Restarting Cinnamon

One sometimes finds that the panel has an unexpected appearance after moving icons arround or loading new applets - this can usually be sorted out by restarting Cinnamon. There are many ways to do this:

  1. Right click on the empty section of the panel -> Troubleshoot -> Restart Cinnamon
  2. Alt+F2 brngs up a 'Run Box' and enter r and return
  3. Add the Restart-Cinnamon applet (restart-cinnamon@kolle) to the panel. I always have this during applet development.

Re-starting a Linux Mint or Cinnamon System without Rebooting

The Ctrl+Alt+Delete shortcut key in Linux Mint brings you a menu to log out of your system.

The Ctrl+Alt+Backspace shortcut key in Linux Mint and Cinnamon immediately takes you back to a log-in screen without the need to reboot the system - this often still works with a frozen system but you will lose unsaved data and it will upset firefox and other open programs.

Open a Virtual Console - often still available on frozen system

Ctrl+Alt+F1 through Ctrl+Alt+F6 will open Virtual Consoles with a login prompt in place of your graphic interface which will enable you to log into an existing user in terminal mode.

Ctrl+Alt+F7 returns to your graphic interface (X session). Some systems use a different consoe for the graphic interface - the command who will show all logged in users so an be used to find it on your system.

A Virtual Console login will often still be available when the graphic interface has frozen.

Whilst still in the virtual console, Ctrl+Alt+Del should shut down and reboot the machine.

Once logged in, you can now type systemctl reboot or systemctl poweroff to reboot or shutdown losing any open work. This assumes you are using a recent system with systemd initiation. You can also try sudo shutdown -h now

Frozen System - When all else fails.

If you have really made a big mistake or are using beta software it is possible to freeze a system, often this is because one has lost commincation and it is best to shut down the file system in an orderly manner rather than just press reset even with the advanced file sytems in Linux. The following is a technique which is active within most linux kernels - it needs good dexterity but usually works.

Hold down ALT and SysRq (may be Print Screen or SysRec on your keyboard) together then add R, E, I, S, U and B in sequence - this needs long fingers or an assistant but does shut down the file systems and reboots cleanly.

There is some explanation in the Free Software Magazine at How to close down GNU/Linux safely after a system freeze with the SysRq key and there is a good Linux Mint Forum post What to do with frozen desktop. I often leave out the E and I

Note: It is alleged that Holding down the Alt key and continuing holding, then pressing and releasing the SysRec (PrtScn) key, then entering r e i s u b while continuing to hold the Alt key down is sufficient and avoids dislocated fingers.

Note 2: :Some keyboards need Ctrl+Alt+SysRq to be held.

Before You Leave

I would be very pleased if visitors could spare a little time to give us some feedback - it is the only way we know who has visited the site, if it is useful and how we should develop it's content and the techniques used. I would be delighted if you could send comments or just let me know you have visited by sending a quick Message.

Home Pauline Howto Articles Uniquely NZ Small Firms Search
Copyright © Peter and Pauline Curtis
Content revised: 25th September, 2019
Link to W3C HTML5 Validator