Get an ubuntu like login screen for archlinux
I am not the greatest fan of ubuntu, but I love their artwork. I’m not an user of ubuntu, so the usability and performance of unity in general is of little concern to me (although I do despise it), but I loved the look of it. In the simplest of words that I can put it in, it’s beautiful. What I especially loved was the graphical login. So, as it turns out, I wanted it for my arch. This is what I ended up with:
Background image by dethredic. Link to deviation at DeviantArt
Getting the packages
Before beginning, make a folder called ‘lightdm-inst’ or whatever it is you wish where you will be saving all your downloaded packages (trust me, there are going to be a lot of them).
Get lightdm from AUR
This is pretty easy to begin with. Download the lightdm package from here: http://aur.archlinux.org/packages.php?ID=40708. Save it to the folder ‘lightdm-inst’. Once downloaded, run the following command to install the dependencies for lightdm and lightdm-unity-greeter:
[thirtyseven@meanmachine lightdm-inst]$ sudo pacman -S accountsservice dbus-glib gnome-icon-theme gnome-themes-standard gtk3 libwebkit libxklavier gtk-engine-murrine gtk2 cantarell-fonts gnome-common gnome-doc-utils ttf-ubuntu-font-family gnome-icon-theme hicolor-icon-theme humanity-icons librsvg
As far as lightdm is concerned, it is pretty easy to install it. Pacman repositories have all its dependencies. Beyond this, all you have to do is make the package using makepkg and then install it:
[thirtyseven@meanmachine lightdm-inst]$ tar xvzf lightdm.tar.gz [thirtyseven@meanmachine lightdm-inst]$ cd lightdm [thirtyseven@meanmachine lightdm-inst]$ makepkg
This will download the source, build it and create a nice little package for you, which you can then install using:
[thirtyseven@meanmachine lightdm-inst]$ sudo pacman -U lightdm-1.0.6-8-x86_64.pkg.tar.xz
Remember the above method for installing packages from AUR if you are already not familiar with this. You’re going to have to do this often. It is also recommended that you install xorg-xephyr to help you test your lightdm installation and configuration:
[thirtyseven@meanmachine lightdm-inst]$ sudo pacman -S xorg-server-xephyr
Test your installation using the following command: lightdm --test-mode. The result (should) be something like:
Not exactly what we wanted right? What we need is the unity-greeter for lightdm. This one’s gonna hurt a bit.
Getting lightdm-unity-greeter
You might have a different experience from me since I have KDE as the only installed desktop environment on my machine. If you have GNOME, you might have a different experience (although just as unpleasant), or a relatively pleasant one, if you have both installed (I’m not sure, you’re just going to have to see this one for yourself).
Some of the dependencies are available on the pacman repositories (I’ve already mentioned them in the first `pacman` command), the two main that are not, and which you must get from AUR (get and install in the mentioned order) are:
libindicator: AUR linkubuntu-wallpapers: AUR linkgtk-engine-unico: AUR link (Dependency for light-themes)humanity-icons: AUR link (Dependency for ubuntu-mono)ubuntu-mono: AUR link (Dependency for light-themes)light-themes: AUR linklightdm-unity-greeter: AUR link
Get and install them (using pacman -U <package-name> as specified above IN THE ORDER mentioned. There’s a good chance that I might have missed out on a dependency here and there, in which case, just check with pacman first and the AUR next, but it is all there.
Once this is done, check out your login screen by the same command: lightdm --test-mode. This is how it looks:

So far, so good. But we really don’t want ubuntu branding, now do we? Before that, let us get lightdm to be our default display manager.
System settings to run on boot
You’ll have to make changes to your inittab file for this. Add this line to your /etc/inittab:
x:5:respawn:/usr/sbin/lightdm >& /dev/null
If you have similar lines for kdm, xdm, gdm etc. comment them. For example, my inittab looks like this:
#x:5:respawn:/usr/bin/xdm -nodaemon #x:5:respawn:/usr/sbin/gdm -nodaemon #x:5:respawn:/usr/bin/kdm -nodaemon #x:5:respawn:/usr/bin/slim >/dev/null 2>&1 x:5:respawn:/usr/sbin/lightdm >& /dev/null
In case you use rc.conf instead of the inittab method for launching your display manager, then add `lightdm` to your list of daemons in arch linux, and remove any other display manager daemon.
Also, you’ll have to start the service:
systemctl enable lightdm.service
If you don’t have the systemctl binary, get it using:
sudo pacman -S systemd
More info and troubleshooting: LightDM – ArchWiki
Get some arch branding
Firstly, decided on the artwork you want to use. You might choose to not brand your graphical login with archlinux and might decided on anything else. I selected this image as my background: [dethredic.deviantart]ArchLinuxWallpaper
Now, select a logo that you wish to use (in place of the ‘ubuntu’) text that comes in the bottom right corner of the screen. There’s a lot of nice artwork available here. Since I had a dark background, I decided to go with one with the white text. MAKE SURE you download the PNG.
Save both images in some place ‘preferably the same lightdm-inst directory’. Since the logo is large, you might want to resize it. 221×70 worked like a nice size for me:
[thirtyseven@meanmachine lightdm-inst]$ mogrify -resize 212x70 archlinux-logo-light-1200dpi.png
Change the names of the two images to ‘archlinuxshow.png‘ and ‘archlogo.png‘ (This is just for our convenience). Now, let us set it to the login screen.
Configuring the branding
Copy the two files to /usr/share/unity-greeter:
[thirtyseven@meanmachine lightdm-inst]$ sudo cp archlinuxshow.png /usr/share/unity-greeter/ -v [thirtyseven@meanmachine lightdm-inst]$ sudo cp archlogo.png /usr/share/unity-greeter/ -v
Now open the file /etc/lightdm/unity-greeter.conf using an editor:
(vim)
[thirtyseven@meanmachine lightdm-inst]$ sudo vim /etc/lightdm/unity-greeter.conf
(KDE, with Kate)
[thirtyseven@meanmachine lightdm-inst]$ kdesu kate /etc/lightdm/unity-greeter.conf
(GNOME, with Gedit)
[thirtyseven@meanmachine lightdm-inst]$ gksu gedit /etc/lightdm/unity-greeter.conf
Edit the two lines that start with `background` and `logo` (After the initial section that is prepended with a ‘#’). Change:
background=/usr/share/backgrounds/warty-final-ubuntu.png logo=/usr/share/unity-greeter/logo.png
to
background=/usr/share/unity-greeter/archlinuxshow.png logo=/usr/share/unity-greeter/archlogo.png
Looks good, but there is something really really not right. There is this ugly grid of dots, and I don’t like it one bit.
Get rid of those ugly dots
To remove the dots, you can edit your uninty-greeter.conf. Change “draw-grid=true” to “draw-grid=false”.
I haven’t tested it, but if it works for you, great (not so great for me though… a lot of my hardwork just went down the drain). Anyways, thank you so much, logicslayer. Check out the comments for more tips regarding troubleshooting while installing via yaourt
If you’re happy with the result till now, you might as well stop here. The next step is a bit cumbersome and unless you are extremely obsessive and compulsive about getting the right look, the result, to you, wont be worth it.
The problem is that those dots are hard coded in the greeter. So, we’ll have to remove a bit of code here. Don’t be scared, it is really easy and simple. Just follow along.
Go back to your `lightdm-inst` folder. In that folder, perform the following commands:
[thirtyseven@meanmachine lightdm-inst]$ cd lightdm-unity-greeter/src/unity-greeter-0.1.1/src [thirtyseven@meanmachine lightdm-inst]$ vim user-list.vala +252
When you run the last command, vim will open the file with the cursor at the beginning of a line. You just have to comment that line with a backslash. Basically, change this line:
bc.rectangle (grid_size - 1, grid_size - 1, width - grid_size * 2 + 2, height - grid_size * 2 + 2);
to
//bc.rectangle (grid_size - 1, grid_size - 1, width - grid_size * 2 + 2, height - grid_size * 2 + 2);
Save and quit the file. Now, go back to your `lightdm-inst/lightdm-unity-greeter` directory. What we need to do know is use `makepkg`, but such that it uses the source which we have just edited. There’s a slight problem with that. The PKGBUILD script will try to apply patches first (it’s scripted to do so), but what it expects is the downloaded source, not the one which we have edited and hence the patching process will fail, and hence we won’t get a package that reflects our changes. To circumvent this, open the PKGBUILD file in the `lightdm-inst/lightdm-unity-greeter` directory and change remove the following lines from the build() function in the script:
build() {
cd "${srcdir}/unity-greeter-${pkgver}"
# Apply Ubuntu patches
for i in $(cat "${srcdir}/debian/patches/series" | grep -v '#'); do
patch -Np1 -i "${srcdir}/debian/patches/${i}"
done
# Fix the problem where GNU ld cannot find x11
patch -Np0 -i "${srcdir}/fix_ld_x11.patch"
autoreconf -vfi
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib/lightdm
make
}
The final build() function should look something like:
build() {
cd "${srcdir}/unity-greeter-${pkgver}"
autoreconf -vfi
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib/lightdm
make
}
Once this is done, we are ready to make this package:
[thirtyseven@meanmachine lightdm-unity-greeter]$ makepkg -ef [thirtyseven@meanmachine lightdm-unity-greeter]$ sudo pacman -U lightdm-unity-greeter-0.1.1-2-x86_64.pkg.tar.xz
Remember to use the `-ef` option for makepkg. This tells makepkg to use the existing source (-e) and overwrite any previously built packages (-f). You will have to change your branding configuration again (check out the previous section for that). Your images will all still be there, its just the configuration that will be rewritten. Make the necessary changes and test it:
And that, ladies and gentlemen, is a beautiful graphical login



