HOWTO: Beryl on Ubuntu Edgy with nVidia Graphics

this article is outdated, but is preserved here for informative purposes.

Okay, so there's already a ton of guides on this particular subject. That's nice. No one guide managed to help me, so I'm writing my own.

Note that Edgy installs AIGLX by default, so we do not need to install it.

Latest nVidia Drivers

The first thing you need to do is update to the latest nVidia drivers. Those which are installed by Ubuntu are not new enough, at least not if you have a QuadroFX, which I do (laptop.) You can try all this with the old drivers, but they do not typically support compositing properly and will cause all but your mouse to lock up.

Drivers from Alberto Milone

The best place to get the new drivers (currently) is Alberto Milone's Homepage (direct link to drivers) and you will get instructions there to add the repo. Short form for x86 users:

wget http://www.albertomilone.com/drivers/tseliot.asc
gpg --import tseliot.asc
gpg --export --armor albertomilone@alice.it | sudo apt-key add -
echo "deb http://www.albertomilone.com/drivers/edgy/nonlegacy/32bit binary/" | sudo tee -a /etc/apt/sources.list
sudo aptitude update
sudo aptitude install linux-`uname-r` nvidia-glx
sudo nvidia-xconfig

This will install the latest nVidia drivers, restricted modules, etc.

Enabling Compositing

You still need to do a little configuration after this however. Go into your /etc/X11/xorg.conf and you will need to make some changes.

Somewhere in the Section "Screen" you will need to have the following line:

Option "AddARGBGLXVisuals" "True"

You will need the following line in the Section "Extensions":

Option "Composite" "Enable"

In theory, these should be sufficient options.

Installing Beryl and Emerald

These packages don't come out of the Ubuntu repositories either. I got instructions on doing this from the Beryl Project Wiki.

Short form:

echo "deb http://ubuntu.beryl-project.org/ edgy main" | sudo tee -a /etc/apt/sources.list
wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -
sudo aptitude update
sudo aptitude install beryl emerald-themes

This in itself is enough to install beryl and emerald. Beryl is the compositing manager. Emerald is the window manager. Beryl handles the majority of effects, while Emerald provides theming that works with Beryl.

Testing

Restart the X server. You can do this by going to a console window (Ctrl-Alt-F1) and logging in, then doing the following:

sudo /etc/init.d/gdm stop
sudo /etc/init.d/gdm start

I never use restart, because it often fails to work as advertised, although it probably would work fine for X. KDE users should probably substitute kdm for gdm. Xubuntu users are probably using xdm but I wouldn't swear to it.

Another way to restart the X server, assuming it has not been disabled, is to type Ctrl-Alt-Backspace. This will force it to quit, so log out first. gdm will restart the server automatically.

You can now test by logging in and running "beryl-manager" in a terminal or through some other method. You should get the Beryl splash screen immediately. If you do not, get thee to google, because this is not a troubleshooting document.

Configuring the System

If you really want it "installed", meaning it works without typing a command, then you have a tiny bit of additional work to do. I will diverge slightly from the Beryl Wiki here because I do not think you should ever install anything to /usr/bin unless you do it with a package manager - therefore we will use /usr/local/bin like good Unix citizens.

Create a file /usr/local/bin/startberyl.sh. You will need to be root (sudo editor /usr/local/bin/startberyl.sh) where editor is your favorite editor, for example nano or gedit. The contents of the file will be as follows:

#!/bin/sh
beryl-manager
sleep 4
exec dbus-launch --exit-with-session gnome-session

KDE users should use "exec dbus-launch --exit-with-session startkde" as the last line of their file. XFCE (Xubuntu) users should use "exec xfce4-session".

This file needs to be world-executable, so sudo chmod a+x /usr/local/bin/startberyl.sh.

Now we just create one more file, this time it's /usr/share/xsessions/Beryl.desktop. It looks like this:

[Desktop Entry]
Encoding=UTF-8
Name=Beryl
Exec=/usr/local/bin/startberyl.sh
Icon=
Type=Application

Now Beryl will appear in your list of sessions at the GDM (or KDM) screen. You could instead just add beryl-manager to your list of startup programs (see the Beryl Wiki page, linked above, for details) but this is officially a bad idea because if Beryl breaks, it will break your user experience entirely, forcing you to go to a backup session. This method instead preserves your normal GNOME (or KDE) session so that you can use IT as a backup. As windowmaker et al frequently does not have fully-filled-in-menus, this is highly useful.

I hope this saves you as much time as it would have me. Assuming the heavens are aligned and you have a video card which works best with the very latest nVidia drivers, as I do, this should put you into Beryl quickly. If it doesn't, you could leave a comment below - I'll read 'em, and maybe even do something.

One last note

If you're managing your own nvidia drivers and need to rebuild the kernel driver because you've made an upgrade, this is how it's done:

bash NVIDIA-Linux-x86-100.14.19-pkg1.run -aeK --ui=none

-K rebuilds the kernel interface. --ui=none disables the curses interface; that's a matter of preference. -a accepts the license and -e enables "expert" questions, just in case.

Add new comment