From ArchWiki
Jump to navigation Jump to search

Beryl is a window and composition manager. It has been created as a fork of compiz. Archlinux currently only provides Beryl SVN versions. When the first stable Beryl release 0.2 is released, it will be available as well. Beryl 0.2 will be released in February 2007, according to the current Beryl Roadmap.

Installing Beryl

From binary packages

There are binary packages available in the unstable repository. Make sure the unstable repository is enabled in your pacman configuration and your system is up to date. Install beryl using one of the commands

# pacman -Sy beryl-svn
# pacman -Sy beryl-svn-kde
# pacman -Sy beryl-svn-gnome

This will install all necessary packages. There are some nice extra plugins:

# pacman -Sy beryl-svn-extras

From source

PKGBUILDs for the components can be found in Archlinux CVS:

To build these packages, use versionpkg (pacman -S versionpkg with [community] repository enabled in /etc/pacman.conf), it will check out the latest svn release automatically.

Preparing Xorg for beryl

Beryl has two rendering paths. The "Texture from Pixmap" path runs faster but doesn't work on all hardware yet. The "Copy" path works an almost any hardware, but uses more CPU and RAM.

Using "Texture from Pixmap" rendering

The GLX_EXT_texture_from_pixmap extension is needed for this rendering path. This extension is currently provided by Xorg if you either use the 9xxx nvidia drivers or the AIGLX extension. It is also provided by Xgl.

This rendering path is used by default if possible. You can force it by setting Advanced Beryl options -> Rendering path -> Texture from Pixmap in beryl-manager or starting beryl --use-tfp.

Using nvidia drivers

If you have a nvidia, install the latest nvidia drivers. See How to install NVIDIA driver if you still don't use it. They support the long awaited "GLX_Texture_From_Pixmap" extension. However, XGL is still much faster than AIGLX.

Edit the /etc/X11/xorg.conf file:

Note: There is an information on the net which states the Option "AddARGBGLXVisuals" should be added to Screen section on your xorg.conf file. Try this if you are getting random crashes.

Section "Module"
  Load "glx"


Section "Device"
  Driver "nvidia"
  Option "TripleBuffer" "True"
  Option "AddARGBGLXVisuals"


Section "Extensions"
  Option "Composite" "Enable"

Using open source drivers and AIGLX

AIGLX currently works with the open source Intel and Radeon drivers, and maybe others. Add the following to your /etc/X11/xorg.conf file to enable AIGLX:

Section "Module"
  Load "glx"
  Load "dri"


Section "Device"
  Option "XAANoOffscreenPixmaps" "true"
  Option "DRI" "true"


Section "ServerLayout"
  Option "AIGLX" "true"


Section "Extensions"
  Option "Composite" "Enable"

If your xorg driver doesn't support AIGLX, then the effects won't work.

Using XGL

Refer to this wiki entry for installing Xgl.

Using "copy" rendering

To use this rendering path, your graphics driver has to support 3D acceleration, and the Composite extension, and they have to play well together. This is true for older nvidia drivers, but unfortunately not for ATI's fglrx driver.

This rendering path is used by default if texture from pixmap is not available. You can force it by setting Advanced Beryl options -> Rendering path -> Copy in beryl-manager or starting beryl --use-copy.

Starting Beryl

Just try it

If you simply want to try beryl, you can start

$ beryl-manager

This will start the beryl manager and launch beryl. It works with KDE, GNOME and XFCE, but fails with many standalone window managers.

XFCE Desktop

You can run xfce4 with startxfce4 or xfce-session and gdm (probably kdm too) by modifying some files. You can also use startx, skip the first file below in that case.

First edit /etc/X11/session/xfce4-svn.desktop (this is the file for svn version. For xfce 4.2 it should probably be xfce4.desktop):

[Desktop Entry]

Next edit ~/.xinitrc:


# ~/.xinitrc
# Executed by startx (run your window manager from here)

. /etc/profile
. $HOME/.bashrc

xrdb $HOME/.Xresources

# start beryl and beryl-manager
beryl-manager &
emerald &  

And finally delete your previous sessions stored by xfce4:

rm -r .cache/sessions/*

NOTE:If you were modifying these files while running xfce4 do not save your session on exit.

KDE Desktop

Anything in the .kde/Autostart folder will be executed on login

Simply make a link to "beryl-manager" in this location

 ln -s /usr/bin/beryl-manager /home/youruser/.kde/Autostart/beryl-manager

And that's it! Log in and beryl will start automatically.

GNOME Desktop

The simplest way is to add "beryl-xgl" to the applications that start with your session. You can do this by going to:

[Desktop] -> [Preferences] -> [Sessions] -> [Startup Programs]

Adding "beryl-manager" to the list might be a good idea too so you can switch back to Metacity if need be.

No Desktop, Beryl as window manager only

This is an example ~/.xinitrc to create a "lightweight" Beryl environment. It is rather unconfortable unless you add a panel and maybe other management applications.

if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
    eval `dbus-launch --sh-syntax --exit-with-session`

emerald &
beryl-manager &

# Start other applications here
# Example: set wallpaper + open a terminal
# feh --bg-scale ~/Wallpapers/wallpaper.jpg &
# urxvt -depth 32 -fg grey80 -bg rgba:0000/0000/0000/dddd &

# Now start something you need all the time, like a panel
exec gnome-panel

Note: the .xinitrc that was here before forced beryl to start twice (since beryl-manager starts beryl too), which led to X closing. I'm not sure if we can just do exec beryl-manager instead of opening something else like I do.

Configuring Beryl

  • beryl (WM and compositor): Just run beryl-settings or select Beryl Settings Manager from the beryl manager dockapp.
  • emerald (window decorator): run emerald-theme-manager or select Emerald Theme Manager from the beryl manager dockapp.
  • aquamarine/heliodor (KDE/GNOME window decorator): Check the usual KDE or GNOME theme settings, aquamarine/heliodor will use those automatically.

Running beryl-manager will give you more control on beryl. With that nice tray icon you can get back to metacity/kwin, launch the beryl settings or the theme manager, etc.

You can migrate compiz-quinn's settings to beryl by copying ~/.compiz/csm_settings to ~/.beryl/settings


nvidia beta drivers and black windows

This is saddly the only thing preventing me form using beryl... When windows are maximinsed of big enough, they get black. Getting them smaller may get their content back. It seems that its a bug in the nvidia beta drivers.

See the Beryl's bug tracker #201 (unfortunately, due to a hard drive crash, all beryl bug reports were lost):

This is an nVidia problem, from nVidia (James Jones) on nvnews

"This is a shortcoming of the current implementation of
GLX_EXT_texture_from_pixmap in the drivers. When video
RAM has been exhausted, the driver does not behave well
(you get blank windows). TurboCache? memory is currently
cannot be used  with GLX_EXT_texture_from_pixmap, so these
problems will be especially noticeable on these parts.
We're working on improving these cases."

Beryl not starting in KDE

If you are having problems starting or running Beryl under KDE try resetting KDE's settings. You can do this by removing the ~/.kde directory and ~/.kderc file. Note that you should backup your important data like Kopete, Kmail, Amarok configuration.


You should read this if you have problems with ATI.

Uninstalling fglrx

Don't forget that:

  • xf86-video-ati are the ATI open source drivers
  • ati-fglrx(-beyond, ...) are the proprietary ones wich won't work with Beryl
  • You have to replace "fglrx" by "radeon" in BOTH the xorg.conf and rc.conf files
  • You have to uninstall ati-fglrx(-beyond, ...), ati-fglrx-utils and then install libgl-dri to get everything to work properly. As Veek said on this post :
Attention, anyone who was previously using the fglrx drivers:
Both the ati-fglrx-utils package and the libgl-dri package provide a version of the openGL
shared library /usr/lib/ (your version may be different).
However the one supplied by the Mesa package implements things not implemented by the one in ATI's package.
That's why it can be exceedingly confusing trying to figure out why things aren't working
even though you apparently have the necessary libraries.
The solution is to install libgl-dri and everything shoud work as outlined in spack's guide.
This is my understanding of the issue, just wanted to clarify for anyone else that was confused.
  • Uninstalling commands:
pacman -Rd ati-fglrx(-beyond,...) ati-fglrx-utils
pacman -S libgl-dri xf86-video-ati


  • I had some black screen troubles when trying to launch KDE. Sometimes KDE would also crash. It is fixed when adding the next line to the Device section of the xorg.conf :
BusID       "PCI:1:0:0"
  • After this KDE would launch but a bit slowly and glxgears wouldn't launch but complaining :
*********************************WARN_ONCE******** *************************
File radeon_mm.c function radeon_mm_alloc line 216
Ran out of GART memory!
Please consider adjusting GARTSize option.
************************************************** *************************

Fixed when you add the following line to the device section of your xorg.conf (seen on this post) :

Option "GARTSize" "64"

So everything works fine here on my ATI Radeon Mobility 9600, Beryl and KDE. Here is my xorg.conf

Desktop clipping/drawing error on Radeon 7500

Users of Radeon 7500 graphics cards may experience a "clipping" effect where the deskop is limited to 1024x768 resolution. Screen areas outside this box are not drawn correctly, and larger windows lack decorations etc.

The fix for this is to download & build driconf from aur. Then set up your graphics card as you wish. The program creates a file called .driconf in yout home directory.

Open this file, and change the line

<option name="allow_large_textures" value="X" /> 

where "X" equals the current value there, and change it to

<option name="allow_large_textures" value="2" />
    • DOESN'T WORK ON MY IBM R40 (1400*1050), anyone help?
  I fixed it by adding "Option "AGPSize" "32" in xorg.conf in card section. The whole part is  like:

Section "Device"

       Identifier  "ATI|Radeon Mobility M7 LW (AGP)"
       Driver      "ati"
       VendorName  "All"
       BoardName   "All"
       Option "XAANoOffscreenPixmaps"
       Option "DRI" "true"
       Option "AGPSize" "32"


Black screen when starting X with radeon open source drivers on ATI X700

You have to add this option to the "Device" section of the xorg.conf

Option      "MonitorLayout" "LVDS,NONE"

This will solve the problem

Window Decorations Disappear

If you are using KDE, open: KDE Control Center -> Desktop -> Behavior and check "Show Icons on desktop" option. (Does not always work)

No Window Decorations with Beryl and Emerald running

Check that XLIB_SKIP_ARGB_VISUALS=1 is not present in your environment. ('env | grep XLIB_SKIP_ARGB_VISUALS') - if it is remove all traces from initialisation scripts (usual suspects: /etc/profile.d/ and ~/.bashrc), restart Xorg and try again

Firefox/Swiftfox Crashing

If you are experiencing crashing of Firefox or Swiftfox when viewing sites that use Flash, you can try this fix.

Open up /usr/bin/firefox or /usr/bin/swiftfox, and add "export XLIB_SKIP_ARGB_VISUALS=1" before EOF (End of file), on its own line. Save and restart the browser.

Note: Adding this line to a initialization script (such as .bashrc or in /etc/profile.d/) may result in emerald being unable to display window decorations.


Cairo Clock

Cairo-Clock is a elegant looking analog clock, that works with Beryl. To install it grab it from the AUR here. Currently cairo-clock doesn't work properly with AIGLX and the Nvidia GLX_Texture_From_Pixmap extension, but I have found a fix to this. Launch cairo-clock with the following command,

cairo-clock -w 127 -g 127 -s

and that should fix it right up, so it displays properly.Check out the project page for more details and screenshots here

Terminal with true transparency

Gnome-terminal does true transparency with Beryl running, but some people prefer a more light weight terminal. Install rxvt-unicode, and launch it with this command:

urxvt -depth 32 -bg rgba:0000/0000/0000/cccc -fg white