Beryl

From openSUSE


Warning

WARNING: The Beryl project has been merged with Compiz Extras to provide Compiz Fusion; you will most probably want to use that from now on, instead. Click on the link for more information and instructions.



Beryl is an OpenGL accelerated desktop that seeks to provide a free, open source desktop experience to the community that reflects the wishes of the users. Above all, the project seeks to listen to and respond to the requests of the user base. Beryl is a fork of Compiz. Beryl has some additional effects to the standard Compiz window manager, including new animations such as Window Burns, a 3D Plugin (pictured), and more.


Beryl: Transparent Cube
Enlarge
Beryl: Transparent Cube

Contents

Installation on openSUSE 10.2

Beryl with Xgl

In this method we would be setting up Beryl to run on Xgl. This is the recommended way to run Beryl or Compiz on openSUSE as other methods (AIGLX/NVIDIA) still do not provide reliable performance.

Prerequisites:

1.

  • nVidia card: Install the nVidia accelerated drivers. See: NVIDIA
  • ATI card: Install the new ATI driver for Xorg 7.2. Check here
  • Intel card: Make sure that 3D acceleration ("Active 3D Acceleration" box is ticked) in:
K Menu -> Computer -> YaST. Then: Hardware -> Graphics Card and Monitor. 

2. Add the additional Beryl repository, from the openSUSE build service.

zypper sa http://download.opensuse.org/repositories/X11:/XGL:/Legacy/openSUSE_10.2/ xgl
  • To add this repository via Smart, type:
su
smart channel --add http://download.opensuse.org/repositories/X11:/XGL:/Legacy/openSUSE_10.2/X11:XGL:Legacy.repo

3. Now install the following packages (Using YaST -> Software Management -> search for Beryl):

  • beryl-core-snapshot
  • beryl-manager-snapshot
  • beryl-plugins-snapshot
  • beryl-settings-snapshot
  • compiz
  • emerald-snapshot : window decorator
  • emerald-themes-snapshot
  • aquamarine-snapshot
  • xgl

If you don't want the latest svn snapshot version, and would rather go for a stable Beryl version, then install all packages packages just like above, but without the -snapshot. This can of course be easily done with rug, zypper, smart or YaST. Compiz is required for the easy Xgl-switch, you can also choose to run beryl or compiz from beryl-manager later on.

4. Enable Xgl:

su
gnome-xgl-switch --enable-xgl

(you do NOT need to be running GNOME: this command applies for GNOME or KDE users)

5. Restart your X server:

su
rcxdm restart

6. Run beryl!

beryl-manager

Possible error:

  1) on boot X complains about more than one x server
         "There already appears to be an X server running on display :0. Should another display number be
          tried? Answering no will cause GDM to attempt starting the server on :0 again... etc" Answering
          "no" successfully starts X.
  2) logged in to a session with beryl: 
         (32 bit) all menus and popup are rendered atop white boxes
         (64 bit) desktops & windows flicker, no window borders
  symptoms caused because "gnome-xgl-switch --enable-xgl" does not properly set up Xgl.
  *Solution, temporary: 
          1) remove all /tmp/.Xgl-Auth-* to another folder
          2) Enable Xgl from the control center instead.

Beryl with nVidia drivers - no Xgl/AIGLX

Since Xorg 7.x, composite effects can be used without Xgl and simply an nVidia card. This uses nVidia's implementation of GLX_EXT_texture_from_pixmap, not the one from Xorg's inbuilt/optional AIGLX or from Xgl.

Prerequisites:

  • nVidia (> geforce 4)

1. Install the nVidia accelerated drivers. See: NVIDIA

2. Add the additional Beryl repository, from the openSUSE build service.

  • To add this to Yast, see:

Additional_YaST_Package_Repositories#Beryl_Packages

  • To add this repository via Smart, type:
smart channel --add http://download.opensuse.org/repositories/X11:/XGL:/Legacy/openSUSE_10.2/X11:XGL:Legacy.repo

3. Now install the following packages:

  • beryl-core-snapshot
  • beryl-plugins-snapshot
  • emerald-snapshot : window decorator
  • emerald-themes-snapshot
  • aquamarine-snapshot
  • beryl-settings-snapshot
  • beryl-manager-snapshot

4. Enable composite in Xorg:

su
nvidia-xconfig --composite
nvidia-xconfig --allow-glx-with-composite
nvidia-xconfig --render-accel
nvidia-xconfig --add-argb-glx-visuals
  • NOTE The --allow-glx-with-composite option enables GLX even when the Composite X extension is loaded. ENABLE AT YOUR OWN RISK. OpenGL applications will not display correctly in many circumstances with this setting enabled. This option is intended for use on X.Org X servers older than X11R6.9.0. On X11R6.9.0 or newer X servers, the NVIDIA OpenGL implementation interacts properly by default with the Composite X extension and this option should not be needed. However, on X11R6.9.0 or newer X servers, support for GLX with Composite can be disabled by setting this option to False.

5. Restart your X:

su
rcxdm restart

6. Run beryl!

beryl-manager

Beryl with X.org AIGLX or native NVIDIA

Prerequisites:

  • nVidia Card (> geforce 4), or
  • Relevant Intel Card: i830 through i945. i810 works, but DRI requires 16 bit depth. Or
  • Relevant ATI Card: Radeon 7000 through X850 (r100 through r400 generations).

1.

  • nVidia card: Install the nVidia accelerated drivers. See: NVIDIA
  • ATI card: Install the new ATI driver for Xorg 7.2. Check here
  • Intel card: Make sure that 3D acceleration ("Active 3D Acceleration" box is ticked) in:
K Menu -> Computer -> YaST. Then: Hardware -> Graphics Card and Monitor. 

2. If you were running Xgl, make sure that it is now disabled:

su
gnome-xgl-switch --disable-xgl

Note: this command is required for GNOME and KDE users.

3. Backup your Xorg configuration:

su
cp /etc/X11/xorg.conf /etc/X11/xorg.conf.$(date +%y%m%d-%H%M%S)

4. Open up xorg.conf for editing:

If you are using the KDE Desktop Environment:
 kdesu kate /etc/X11/xorg.conf


If you are using the GNOME Desktop Environment:
 gnomesu gedit /etc/X11/xorg.conf

You'll notice now that the file is demarcated into Sections. You'll need to edit these to add a few lines, which are options:

To Section "ServerLayout", add:

Option "AIGLX" "true"

To Section "DRI", add:

Group 0
Mode 0666

To Section "Device", add:

Option      "XAANoOffscreenPixmaps" "true"
Option      "DRI"     "true"

Now also create a new section that looks just like this:

Section "Extensions"
      Option   "Composite"   "Enable"
EndSection

The relevant parts of your xorg.conf should look something like this now (it may vary a little):

Section "Extensions"
  Option   "Composite"   "Enable"
EndSection

Section "DRI"
   Group      0
   Mode       0666
EndSection

Section "ServerLayout"
 Identifier   "Layout[all]"
 InputDevice  "Keyboard[0]" "CoreKeyboard"
 InputDevice  "Mouse[1]" "CorePointer"
 InputDevice  "Mouse[3]" "SendCoreEvents"
 Option       "Clone" "off"
 Option       "Xinerama" "off"
 Option       "AIGLX"   "true"
 Screen       "Screen[0]"
EndSection

Section "Device"
 BoardName    "915 GM"
 BusID        "0:2:0"
 Driver       "i810"
 Identifier   "Device[0]"
 Option       "NoDDC"
 VendorName   "Intel"
 Option       "XAANoOffscreenPixmaps" "true"
 Option       "DRI"   "true"
EndSection

Now make sure you save the file, and then close the editor.

5. Now restart X:

su
rcxdm restart

6. Run Beryl!

beryl-manager

Installation on openSUSE 10.3

Follow the exact same instructions as you would for 10.2.

NOTE: When installing emerald in YaST, dependency checking will fail, because it expects the old versions of many applications. When YaST gives you the choice of not installing emerald, or ignoring the dependency check just there, choose to ignore it. Also make sure libwnck and libwnck-1-22 are installed. After everything is installed, if you try running Beryl with Emerald, it will complain asking for "libwnck-1.so.18". You could use Aquamarine (KDE Window Decorations), but if you are using GNOME this may not be an option. Open a file manager (like Konqueror or Nautilus) and browse to /usr/lib. You should see a file called libwnck-1.so, or something similar. If you do not, it means libwnck is not installed, and you need to install it with YaST. Open up a terminal, and as root, cd into /usr/lib, and create a symbolic link "libwnck-1.so.18" pointing to "libwnck-1.so".


su

cd /usr/lib

ls -s libwnck-1.so libwnck-1.so.18


That should satisfy emerald, so try running it.


beryl-manager

emerald --replace


Don't forget to leave KDE's own translucent and shadowed windows off.

Configuration

Making Beryl start automatically

Method 1

If you are using the KDE Desktop Environment:

Simply type (as user, not root):

ln -s /usr/bin/beryl-manager ~/.kde/Autostart/beryl-manager
ln -s /usr/bin/beryl ~/.kde/Autostart/beryl


If you are using the GNOME Desktop Environment:

Go to GNOME's Control Center -> Sessions. Go to the last tab, "Startup Programs". Over there, add the following two to the list:

beryl-manager
beryl

Method 2

NOTE: Follow this step if "Method 1" is not working for you

Open konsole or xterm and:

1. Goto your home directory

 cd ~

2. Copy xinitrc template to create a new one

 cp .xinitrc.template .xinitrc

3. Open ".xinitrc" file with your editor (i.e. kedit, emacs, or vi), in this case i am using emacs

 emacs .xinitrc

4. Search for a line that contain:

 # Add your own lines here...


5. Below that line, add this:

 exec beryl &
 exec emerald &
 exec beryl-manager &

6. Save ".xinitrc" file

7. Log off from KDE, GNOME, or from your window manager

8. Log in again, and now you can "rotate the cube" ^_^

Method 3

If you are using the KDE Desktop Environment:
This method only works with XGL and KDE.

1. Create a file called kde-start-compiz in /home/<user>/bin/

2. Insert the following two lines:

beryl-xgl &
beryl-manager &

or, if you wish to use Aquamarine (KDE) window decorator instead of Emerald:

beryl-xgl &
beryl-manager --no-force-decorator &
aquamarine &

3. Make the file executable (right click -> Properties -> Permissions)

From now on, whenever XGL is enabled (gnome-xgl-switch --enable-xgl) that file will be executed during KDE startup. So to stop Beryl from starting you won't have to remove the file, simply disable XGL (gnome-xgl-switch --disable-xgl) and the file will be ignored until XGL is re-enabled.

4. Run (as root)

gnome-xgl-switch --enable-xgl

After that run:

rcxdm restart

And log back in.

Method 4

If you are using the KDE Desktop Environment:
This method only works with XGL and KDE, but starts faster.

1. Login using a failsafe session.

2. Edit ~/.kde/share/config/ksmserverrc.

Make sure you have the following lines in the '[General]' section :

 defaultWM=beryl-xgl
 excludeApps=beryl-xgl
 loginMode=default

If your previous login mode was restorePreviousLogout, then make a cleanup in the last section :

 [Session: saved at previous logout]
 count=0

3. Remove any other beryl startup files in '~/.kde/Autostart/', and create a new ~/.kde/Autostart/beryl-manager.desktop with the following lines :

 [Desktop Entry]
 Comment=
 Comment[fr]=
 Encoding=UTF-8
 Exec=beryl-manager --no-force-window-manager --no-force-decorator
 GenericName=
 GenericName[fr]=
 Icon=
 MimeType=
 Name=
 Name[fr]=
 Path=
 StartupNotify=false
 Terminal=false
 TerminalOptions=
 Type=Application
 X-DCOP-ServiceType=none
 X-KDE-SubstituteUID=false
 X-KDE-Username=
 X-KDE-autostart-after=kdesktop

This is just a "classical" beryl-manager startup entry which creates a beryl icon in the tray, but doesn't launch anything ('--no-force-window-manager --no-force-decorator').

4. Logout, then Login using a KDE session.

This trick avoids to launch a useless 'kwin', and also removes the dirty black flash when kwin is killed by beryl-manager at the end of the startup sequence.

NOTE : removing the 'compiz' package will avoid any possible modification of the ksmserverrc file during an upgrade.

Using other decorations

Compiz (GTK-W-D) and Metacity

Make sure that the latest compiz package is installed, and then simply run:

gtk-window-decorator --replace &

Using KDE instead of emerald

Simply type (as user, not root):

aquamarine --replace &

To go back to using the emerald theme decorator after, type:

emerald --replace &


Troubleshooting

Another composite manager is already running

Most likely KDE is running its own composite manager effects (using kompmgr), and Beryl therefore can't run. To disable KDE's window effects, open up the control center and disable the translucency effects:

K Menu -> Configure Desktop (Personal Settings). Then go to Desktop -> Window Behaviour. 

Go to the last tab, "Translucency", and uncheck the "Use Translucency/shadows" box. Now you can fire up beryl-manager again, and everything should run just fine.


Note: You may have to kill kompmgr manually (unless you want to reboot) You can do this by typing 'killall kompmgr' at the terminal as a user.

Note: If the above doesn't work, you may need to add the line

Option       "Composite" "0"

to the Extensions area of your /etc/X11/xorg.conf. So far, this option must be present if you are using the fglrx driver (Tested on ATI Radeon 9600)

White cube problem with AIGLX

Start beryl by giving the following command.

 beryl --use-copy

Alternatively select from beryl-manager -> Advanced Beryl Options -> Rendering path -> Copy

or

put the following in ~/.beryl-managerrc


 [beryl-settings]
 render_path=2

Using Beryl on Xgl with compiz and KDE

if Beryl#Making Beryl start automatically does not work well
You getting problem like (while lunching beryl):

beryl: pixmap 0x30001e9 can't be bound to texture
beryl: Couldn't bind redirected window 0x2e00007 to texture
.....

I saw just white desktop maybe gray windows

That happends on my PC - the solution is to use in kde autostart beryl-xgl (it will replace compiz)
(well before this remove files ~/.kde/Autostart/beryl-manager and ~/.kde/Autostart/beryl if exists)
So just type in any term

ln -s /usr/bin/beryl-xgl ~/.kde/Autostart/beryl-xgl
touch ~/.kde/Autostart/beryl-manager

put the following in ~/.kde/Autostart/beryl-manager :

#!/bin/sh
beryl-manager --no-force-window-manager &

to get beryl manager menu... That's all.


Autoinstall Applications

There is also a very convenient kommander script, opensuse-xgl-settings, which can automate this process for you.


Links