Compiz: Ubuntu Desktop's little known best friend

The default GNOME desktop in Ubuntu is functional, but also pretty unfulfilling.

Gnome-shell

TL;DR Compiz can quickly get you the desktop you deserve: a desktop with a very high degree of customizability, on top of being faster than the default GNOME Shell, and (as far as I can tell) faster than Mac or Windows.

The best part is that it takes no time at all to get up and running! I’ll show you how to transform Ubuntu into a desktop that is functionally similar to Mac.

Some examples

Mission Control / Scale

compiz-scale Mac-3swipe

Virtual Desktops / Workspaces

compiz-workspaces mac-workspaces

If you’re a Mac user, then hopefully this guide shows you how easy it is to get at least the same amount of utility in Ubuntu as you do from Mac, if not more! And if you need a little push, check out the Mac frustrations that Ubuntu solves for me.

Quick Install

This guide is targeted for 18.04, but will probably work for most other recent Ubuntu releases.

Install compiz

sudo apt-get install gnome-session-flashback compiz compiz-core compiz-plugins compiz-plugins-default compiz-plugins-extra compiz-plugins-main compiz-plugins-main-default compiz-plugins-main-dev compizconfig-settings-manager

Switch to compiz desktop

Log out of your user in GNOME, to get back to the user selection screen. Select your user. Before you enter your password, click on the options cog (), and select GNOME Flashback (Compiz). Then log in.

Welcome to your compiz desktop!

ubuntu-compiz-default

Dock / Toolbar Maintenance

Toolbars (aka “panels”) can be modified, auto-hidden, or deleted by holding down the Alt key and right clicking.

Edit Panel

Personally, I autohide the top toolbar and delete the bottom toolbar, giving you a 100% clutter free desktop. Then I replace the toolbar we deleted with Docky, a Mac-like dock (but feel free explore other dock software, I was also very happy with Cairo Dock for a couple years).

sudo apt-get install docky

If Docky doesn’t launch automatically, go to the upper toolbar, Applications -> Accessories -> Docky.

Docky

Compiz: A Guided Tour

In the upper toolbar go to System Tools -> Preferences -> CompizConfig Settings Manager.

CompizConfig Settings Manager

Here is where you can achieve nearly all the customization aspects of a desktop you could possibly want! Before we start I would encourage you to explore on your own and get a feel for all the minutiae available to you!

Protip: If you change anything you didn’t mean to, or want to revert, you can always click the tag next to each field to reset to default. Handy!

 

Note: Keep in mind that you’re still in the GNOME desktop, so the core configuration items are still in the System Settings... area of Ubuntu.

Mouse Customization

When browsing the CCSM, note that if your mouse has more than 2 buttons, they are automatically availble to you for mapping. Buttons are numbered, so if you want to know which mouse button maps to which number, type xev on the command line and click inside of the window that pops up.

On top of that, every mouse button can be used in conjuction with a hot-corner.

compiz-hot-corners

Note: The mouse in Ubuntu is a free agent! The mouse will act on the window it is hovering over, rather than which window has focus. This means that common window actions, such as closing a window, can be triggered anywhere inside of a window, regardless of if I focus on the window. This is excellent for effortlessly closing windows that you stop caring about, and you won’t have to think about clicking the dumb x in the corner.

Commands

Here you can map any terminal action to keyboard shortcuts, mouse buttons, or hot-corners. Personally I add gnome-terminal as a command, and bind Ctrl-Alt-t to launch it.

ccsm-commands

General Options

Here you’ll find basic keyboard, mouse, and hot-corner shortcuts for window managment, like closing or minimizing a window.

You can also define how many workspaces your desktop has, including 2D workspaces. I’ve experimented with vertical workspaces (see Desktop Size, Vertical Virtual Size), but end up sticking with just horizontal workspaces.

ccsm-general

Expo

A birds-eye view of your workspaces.

compiz-expo

Desktop Wall

Customize every aspect of your workspaces. Personally, I turn off all the animations, they make me impatient.

Note: You can define how many workspaces you want in the General Options section

ccsm-wall

Animations

If eye-candy is your thing, prepare to sink some time into tweaking window animations! Toggle Animations Add-Ons, Animations Plus, and Animations Experimental to view even more animations (which will show up after rebooting, in the Animations category itself).

Apple’s min/maximize animation is called Magic Lamp here if that’s your thing.

ccsm-animations

Window Decoration

The bar on the top of every window with x _ □ (exit, minimize, maximize) is sometimes wasted space, especially when you’ve mapped those actions to the mouse/keyboard! The good news it that we can get rid of them on a per application basis.

Under Decoration windows, you can replace any with the following format to prevent window decorations:

!(class=Gnome-terminal)&!(class=Sublime)&!(class=Rhythmbox)

ccsm-decorations

With

compiz-with-window-decoration

Without

compiz-terminal-bare

Grid

This is like just like Spectacle for Mac, and something I personally couldn’t live without.

compiz-grid

Scale

This is like the 3-finger swiping up on Mac, see all your open windows.

compiz-scale

Application Switcher

There are several Application Switchers to choose from here, each varying in style and function, so try each one out. Personally I use the Static Application Switcher since it’s the least intense.

ccsm-app-switcher

Other Helpful Stuff

Video Codecs and more

sudo apt-get install ubuntu-restricted-extras ubuntu-restricted-addons

Gnome Tweak

Gnome tweaks can help you out a bit with the GNOME related side of things. The only thing I use it for is to remove the desktop icons.

sudo apt-get install gnome-tweaks gnome-tweak-tool

You can open in Applications -> System Tools -> Preferences -> Gnome Tweak.

ubuntu-gnome-tweak

I make sure to hide any icons on the desktop.

Customize the theme of native applications

You can customize your entire theme, or even cherry-pick native applications to have a specific theme. Head over to gnome-look to browse themes. Download the theme and unzip it to ~/.themes (e.g. ~/.themes/Macterial).

You can use the Gnome Tweak described above to set a theme across the board. Or, to customize the theme of an individual native application, head into ~/.local/share/applications. You’ll see a bevy of native applications .desktop files. Open your respective application file (e.g. rhythmbox.desktop) and prefix the Exec= line with env GTK_THEME=<name-of-theme>. For example, if I want the Macterial theme, Exec=rhythmbox %U will become Exec=env GTK_THEME=Macterial rhythmbox %U. Re/start the application and enjoy.

Note: You may have to reset shortcuts in your dock/toolbar/input-mapping, since it’s possible that it was using the old version of the .desktop file. If you launch apps via the command line then obviously just add env GTK_THEME=<name-of-theme> before the command.

 

Note: GTK3 themes are a lot like CSS files, if there’s something a little off (like color preferences), you can probably adjust it easily!

rhythmbox-theme

Sticky Windows

Windows can “sticky”, which means they will persist across all workspaces. They can also always-be-on-top regardless of window focus.

gnome-always-on-top

Handy for terminals, music players, video players, chat programs, and other passive applications that require infrequent focus.

Tip: Try combining this with the Opacity plugin!

That’s all

There you have it, the compiz enhanced Ubuntu desktop! Hopefully it has piqued your interest!