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.
- 1 Installing Beryl
- 2 Preparing Xorg for beryl
- 3 Starting Beryl
- 4 Configuring Beryl
- 5 Troubleshooting
- 5.1 nvidia beta drivers and black windows
- 5.2 Beryl not starting in KDE
- 5.3 ATI
- 5.4 Window Decorations Disappear
- 5.5 No Window Decorations with Beryl and Emerald running
- 5.6 Firefox/Swiftfox Crashing
- 6 Tips/Tricks
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
PKGBUILDs for the components can be found in Archlinux CVS:
- beryl-core-svn (Beryl main program)
- beryl-manager-svn (Beryl management dockapp)
- beryl-settings-bindings-svn (Beryl settings python bindings)
- beryl-settings-svn (Beryl settings manager)
- beryl-settings-simple-svn (Simple Beryl settings manager)
- beryl-settings-tool-svn (Command line tool to manipulate beryl settings)
- beryl-plugins-svn (Beryl effect plugins)
- beryl-plugins-extra-svn (Beryl effect plugins)
- beryl-plugins-vidcap-svn (Beryl video capture plugin)
- emerald-svn (Beryl window decorator)
- emerald-themes-svn (Themes for window decoration)
- aquamarine-svn (KDE window decorator, uses kwin themes)
- heliodor-svn (GNOME window decorator, uses metacity themes)
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" [...] EndSection [...] Section "Device" Driver "nvidia" [...] Option "TripleBuffer" "True" Option "AddARGBGLXVisuals" EndSection [...] Section "Extensions" Option "Composite" "Enable" EndSection
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" EndSection [...] Section "Device" [...] Option "XAANoOffscreenPixmaps" "true" Option "DRI" "true" EndSection [...] Section "ServerLayout" [...] Option "AIGLX" "true" EndSection [...] Section "Extensions" Option "Composite" "Enable" EndSection
If your xorg driver doesn't support AIGLX, then the effects won't work.
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.
Just try it
If you simply want to try beryl, you can start
This will start the beryl manager and launch beryl. It works with KDE, GNOME and XFCE, but fails with many standalone window managers.
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] Encoding=UTF-8 Type=XSession Exec=~/.xsession TryExec=/opt/xfce4/bin/startxfce4 Name=XFCE4-svn
Next edit ~/.xinitrc:
#!/bin/sh # # ~/.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 & startxfce4
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.
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.
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` fi 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.
- 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 http://www.nvnews.net/vbulletin/showthread.php?t=77248&highlight=black+windows: "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.
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/libGL.so.1 (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 :
- 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:
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/flash.sh and ~/.bashrc), restart Xorg and try again
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 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