Ubuntu – Compiz in XFCE4- Ubuntu-17.04: Setup progress

compizxfcexfwm4

Compiz Rides Again on my laptop! Ubuntu 17.04 XFCE4. I'm encouraged by today's experience, enough to ask some dumb questions.

I loved Compiz back in the day, but stopped using it when it was, seemingly prematurely, declared a dead project in 2011 or so. Some frustrations with xfwm4 and openbox caused me to try Compiz again. It (mostly) works the way I remember.

Here's where I stand. I have these packages:

compiz 1:0.9.13.1+17.04.20170109-0ubuntu1 
compiz-core  1:0.9.13.1+17.04.20170109-0ubuntu1
compiz-gnome 1:0.9.13.1+17.04.20170109-0ubuntu1
compiz-plugins:amd64 1:0.9.13.1+17.04.20170109-0ubuntu1           
compizconfig-settings-manager  1:0.9.13.1+17.04.20170109-0ubuntu1 

From the terminal, I ran

ccsm

to enable some Compiz plugins/features. This is necessary because the default compiz session has no features enabled and you don't even get window decorations. If you skip that, you'll be able to start Compiz, but you just can't use it.

Then I run

compiz --repace ccp &

That replaces xfwm4 in the session with compiz. It seems to mostly work. I had to run ccsm 6 times to add in features. After a few stumbles, this does run. I love "wobbly windows", can resize windows, etc.

At the moment, I have these Compiz plugins turned on in ccsm:

OpenGL
Composite
Desktop Wall
Viewport Switcher
Animations
Window Decorations
JPEG
Compiz Library Toolbox
Regex Matching
Wallpaper
Workarounds
Application Switcher
Move Window
Place Window
Scale
Resize Window

In ccsm "General", I have "Desktop Size" set at Horizontal virtual size = 8 and Vertical Virtual Size = 1. Seems as though "Viewport", "Workspace" and "Desktop" are interchangeable today. At one point, these were vital differences, but today it seems they are interchangeable. Correct?

Here are the parts where I need help:

  1. At login, and also after suspend/resume, Compiz reacts very poorly. XFCE panels show in wrong spots. If I can get a terminal, I run "compiz –replace ccp" again to restart. I guess this happens because I'm letting xfwm4 try to start, and then replace with compiz.

xfwm4 should not start at all. I found How To Set Up Compiz In Xubuntu 14.10, 14.04 Or 12.04 and How to correctly install Compiz on Xfce 4.12?. These concern Ubuntu 14.04. It mentions some XFCE config files, but I don't see same settings anymore. I don't see "xfwm4" specified as the window manager in "~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml".

  1. The XFCE "workspace switcher" panel app does not interact well with the Compiz workspaces. After fiddling with settings for a while, I am able to get the workspaces and windows to display in the panel workspace switcher. However, the panel workspace switcher is a "look, don't touch" thing. It cannot be used to move windows among workspaces.

Maybe that's as good as it gets?

  1. I have the edge flipping options turned on in ccsm, but pulling a window to the edge has no effect, the window does not drag onto the next workspace.

I've found dbus still works to interact with Compiz from the shell. My old wallpaper changer programs don't work correctly any more, but it is only a matter of time before I figure out what's wrong there (power of positive thinking).

Compiz has some features you can't get anywhere else, it is fun! At least while it lasts.

Best Answer

I've got some answers now.

  1. There are some known defects in Compiz and its interaction with xfce panels. One problem is that dragging windows across workspaces does not work anymore, perhaps not even in Compiz with Unity. Also, the Compiz Viewport terminology is not understandable to the XFCE4 panel. There is a patch on Arch linux systems, a special package : xfce4-panel-compiz. However, I've tried to apply same patch to Ubuntu's current xfce4-panel package and it fails with fuzz, so no joy to report. There is an Ubuntu bug report related to this, as discussed at Can't drag windows to another workspace on Ubuntu 16.04

  2. There are 2 vital elements in the Compiz configuration. To my surprise, I had discovered this in 2015: (Compiz, Multi-Head, Workspace Backgrounds and Success: compiz wallpapers changed via python script), but forgot. Back then, I quit using Compiz because of the failure to interact well with the XFCE4 panel, which is still a problem, but there are 2 tips that make the experience much better.

    In the current Compiz configurator, ccsm, chose "Preferences" on far left, and change these defaults:

    Backend: GSettings Configuration Backend

    Integration: Uncheck "Enable Integration into the desktop environment"

The backend issue affects user-written scripts to do chores like change the wallpapers. In my experience, the gsettings config backend is much much better and more stable, the dbus backend used to work great (circa 2012), but now Gsettings is the way to go!.

Turning off integration, of course, may cause other problems I don't understand yet. It may cause complications in interaction with XFCE4 panel, for example. However, that does not seem to work anyway. It appears to me that the desktop integration emphasized in current Compiz is for the Ubuntu Unity environment, not for XFCE4.

  1. The DBUS backend in Compiz is not workable. If you are going to write scripts to change backgrounds and such, it is much more like to succeed if you use gsettings rather than dbus. I've written the background changer program both ways and in Compiz, there is a problem in re-assigning the image array through dbus but it is not failing in Gsettings.

So my Python scripts mentioned in the 2015 blog post still work if you change to the Gsettings backend.

  1. I cannot get the Compiz cube or rotate cube features to work at all now, but the Desktop Wall works fine and I'm happy enough with that. Wobbly windows is worth it.

  2. Compiz generally has a panic attack if you suspend the computer on one monitor, and then go to another place with two monitors and try to resume a session. The problem is that the system is "aware" of the fact that there are two monitors, but, at least in my Dell 5510, it does not use the 2 monitors. Instead, it tries to show both desktops on the one laptop monitor. The two displays fight with each other, causing some unhappiness. The mouse is not useful here, but it is possible to use the keyboard to launch "arandr" and choose video settings. After that, it works fine.

These are the Compiz modules I have turned on.

Composite
Gnome Compatability
OpenGL
Desktop Wall
Viewport Switcher
Animations
Fading Windows
Window Decoration
Wobbly Windows
JPEG
PNG
Compiz Library Toolbox
Regex Matching
Mouse position polling
Session Management
Wallpaper
Workarounds
Application switcher
Scale
Move Window
Resize Window
Place Windows

Conspicuously, note that DBUS is not turned on anymore.

Conclusion:

After a lot of fiddling around, I'd say Compiz does work and the only major limitation is that the XFCE panel workspace switcher does not work well with it.

I'm going to try harder to apply the Arch linux patches for XFCE4 panels.

Related Question