Ubuntu – How to change circular icon to indicate chosen session in unity-greeter

12.04lightdmunity-greeter

In Precise (12.04), when I login to lightdm, using the unity-greeter, there's a white circle by my name. For the standard DEs like Unity or XFCE, the circle has a representative icon (Ubuntu symbol or little mouse resp.). I have a session for Awesome window manager which was added when I installed Awesome, but it just shows a blank white circle. I'd like to know how to add an icon to it, or at least some indicator, as unity-greeter doesn't show you what session is set until you click on the circle.

I found another question about changing the session names. The answer for it said to change the names in the desktop files in /usr/share/xsessions. Unfortunately, while there is an icon field in those desktop files, they are all blank (Caveat: I no longer have Unity installed, so maybe the Unity one would not be blank. But the Xubuntu desktop file has it blank even though the icon shows in unity-greeter).

Update: Here's the png I use as a badge for Awesome. It's not great, but looks reasonably nice: []

Best Answer

Overview

The badges for the Lightdm are stored in /usr/share/unity-greeter.

You can possibly add a new badge to the directory mentioned above. I guess you would want to name it as custom_awesome_badge.png or whatever is the name of the session in /usr/share/xsessions/. All the badges are of 22 x 22 pixels.

From the lightdm maintainer on the ubuntu-devel list:

  1. Take /usr/share/unity-greeter/unknown_badge.png and use it as a template (just a 22x22 white circle).
  2. Add your logo as a transparent cutout of the white circle (see other badges in that directory for examples)
  3. Ship your logo as /usr/share/unity-greeter/custom_SESSIONNAME_badge.png, where SESSIONNAME is your X session name (e.g. 'xfce' for XFCE).

Unity Greeter will automatically look there, falling back to the generic white circle icon if not found.


Set of ready-made custom badges

You can download a large set of additional badges here. To install them just copy the folder content to /usr/share/unity-greeter.