Friday, July 15, 2011

New Tutorial on Compiz Config Settings Manager

This post I'm going to be talking about Compiz Config Settings Manager, or CCSM (not to be confused with SCCM).  I'm going to describe the configuration that I've got set up, and how you can customise yours to look similar.

This is going to assume that you already have desktop effects enabled and working properly.  If not there is a script called compiz check that you can find online somewhere that will tell you most likely what the problem is. 

First of all, you need to install CCSM (for some reason even though compiz is installed by default, the ability to adjust it's settings is not).  Open up synaptic (alt-F2 and then type in "gksu synaptic" and put in your password, or it's under system -> administration -> Synaptic Package Manager) and search for "compiz".  You'll want to install 2 things: compizconfig-settings-manager and compiz-fusion-plugins-extra.


Ok so mark those 2, click apply, then once it's done installing them close synaptic.

Next you're going to want to open CCSM.  I personally alt-F2 everything so alt-F2 and type in "ccsm" and hit enter.  Once opened, you'll see a screen that looks similar to this one:

Ok so now that you've got it open, you can see there are a lot of different options that you can customise.  Starting at the top and moving down, I'll go through the ones that I use and how to use them.

Under General:
"Commands" and "Gnome Compatibility" are checked by default, I don't bother to mess with these and it's probably a good idea to leave them checked.


Under Accessibility:
Enhanced Zoom Desktop: I find this one to be very useful, and I use it multiple times a day.  If it's not checked by default, check it, and then click on it to go into the settings.  You can see that there's different places to select which buttons for mouse activation and keyboard activation.  I don't use the keyboard activation since the zoom follows the mouse, so I have mine set up as super + scroll up zooms in and super + scroll down zooms out.  scroll up is technically mouse button 4 and scroll down is mouse button 5.  If you dig that kind of a set up, you can just mimic my settings below:


That's all I do for Enhanced Zoom Desktop.  You do have the option to go in and customise it further with changing the mouse behaviour, specific zoom, zoom area movement, focus tracking, and animation, but I find the default settings to be just fine.


I don't use negative, so I turned it off while writing this tutorial.


Opacity, Brightness and Saturation: Something about this effect is just really cool, and it's very customisable, so if you like this sort of thing I'll tell you how to achieve it.  Mark the Opacity, Brightness and Saturation check box.  Then click on it to get into the settings.  I have my increments in steps of 5, and the opacity of any window set to 93.  To do this, under the opacity tab click "New", then BEFORE YOU PUT "any", MOVE THE SLIDER TO SOMETHING LIKE AT LEAST 50.  The reason you want to move the slider first is that if you type in any and hit tab, CCSM will become 0% opaque, or 100% transparent (same difference, kind of a glass half full/glass half empty kind of thing) and it will be REALLY HARD to find that slider to move it to anything besides 0.  Trust me, I've made this mistake before.  Anyhow, so you set the slider to your liking for your opacity, mine is 93 because you can still read everything on your current window as well as see things behind it if you want.  Furthermore, you probably want to set a mouse action to change the opacity, I use alt-button4 for increase (alt-scroll up) and alt-button5 (alt-scroll down) for decrease.  This will increase or decrease in increments of 5.  Useful for if you're watching something online and don't want the window to be transparent, or if you want to put something "always on top" but don't want it to be very visible.


Anyhow, That's that for the opacity part.  I don't use brightness or saturation because I have no need for them, but you can set them up in a similar fashion (just don't forget to use unique button/mouse combinations to trigger these actions, or you'll have multiple things happening at once which is......sloppy). 


Under Desktop:


I have enabled "Desktop Wall" and "Expo".  Desktop wall was enabled by default and I haven't messed with it, so yours should be fine how it is (unless you want to do something else with it, in which case have at).  Expo and Viewport Switcher are also enabled by default, and I haven't messed with either of them because I don't use multiple desktops or...switch viewports.

Under Effects:

Check "Animations Add-On" (this is part of the compiz-fusion-plugins-extra package we installed earlier).  No need to go into the settings of it, it just needs to be checked.  Then click on "Animations".  You are greeted with a lot of different settings and tabs.  Basically what you're looking at is at the top you've got your different actions (the tabs), then the table (which effect, how long, what windows), and last your random effects.  What I've found to be fun is to enable all of the random effects (lots of clicking check boxes, or just use the keyboard and space bar to check them all), then setting the effect to "random", duration for the first one 200 milliseconds, then 100 for the next 2 (essentially the first is the large windows, while the latter 2 are small things like dialogue boxes and right click menus and tooltips.  open, close, and minimize all follow this convention).  Do this for open, close, and minimize (adjusting the times to whatever your preference is if it's different).  Then go to the "shade" tab, and check all 3 options on the bottom, set the effect to random, and the duration to something like 300.  It's a good idea to have a nautilus window open in the background so you can try things like opening, closing, minimizing, to see how the time is and how the animations look.  If you want to leave one of them out of the random pool simply uncheck it.  Lastly the focus animation, which some people really hate.  I got mine set on fade, duration 150.  Dodge is sort of obtrusive, and so is wave.  Or you can have no effect and it'll just blink forward.


That's it for the animations tab.  Next is Wobbly Windows.  I left mine default, and just checked it.  You can adjust the wobble in the settings, I stuck with the default.  I don't care that much about HOW my windows wobble, I just want them to do it.


Window Decoration: I chose to remove the shadow on my panels so they would be completely transparent.  To do this, where it says "shadow windows", click the little plus next to there, then click "invert", and click "grab", then click your panel.  Then click "ok".  If it worked, your panel should have no shadow beneath it now.  The weird thing that I've encountered while doing this is that the string where you specify which windows to shadow will look like this: "(any) & !(class=)" and not have "gnome-panel" specified after class (but it works), but if you type in "(any) & !(class=gnome-panel)" it won't work.  So I guess that's a bug.


That's all you gotta do for window decoration.


Under the Extras section I have nothing checked.


Under the Image Loading section I have everything checked, with default settings.


Under Utility, I have all the default items checked with default settings.


Under Window Management, I have the following checked:


Extra WM Actions
Move Window
Place Windows
Resize Window
Ring Switcher
Scale

Move, Place, and Resize are all with default settings.

Ring Switcher I changed to "alt-tab" to initiate, and also I deselected "static application switcher" beforehand to avoid conflicts.

Scale, I assigned the Bottom Right corner of the screen to initiate.  You can use whatever area seems right for you.  This will bring all your windows onto the screen at once ala mac osx and let you choose the one you want to bring to the front.  Like so:

Alright, that's all the compiz customisations I use, I hope you all found this helpful or useful or maybe interesting.  Leave me a comment if you did, link me to a screenshot of what you do with your desktops!