After having gotten used to Unity on the Ubuntu desktop, with Ubuntu Artful it is time to say goodbye. When Ubuntu first added the Unity shell with just the sidebar with big buttons, in favor of the more traditional GNOME with its Windows 95 style interface, many were skeptical, me included. But removing the clutter was good, and I've happily worked with it for years. And you really don't want to waste time tweaking your desktop away from the OS provided defaults.

Ubuntu has now moved on, and now I'm faced with a new shell, the (new) GNOME Shell. Here are some tweaks/tips to make things bearable/usable for those moving from Unity.

CTRL-ALT is now SUPER

Moving windows to LEFT/RIGHT. Locking the screen: no more CTRL+ALT+left/right/L, now it's SUPER+left/right/L. This one requires updates to the muscle memory.

The close cross has moved back to the right

Unity moved the window buttons to the left (to be more like OS X, I guess?), and now they're back on the right again. I'm hesitant about switching this back to the left. (Change as little as possible.) But it feels like I have to move my mouse more to the right side of the screen than usual now.

Switching back and forth is a matter of:

$ gsettings set org.gnome.desktop.wm.preferences \
    button-layout 'close,minimize,maximize:'  # buttons left

$ gsettings set org.gnome.desktop.wm.preferences \
    button-layout ':minimize,maximize,close'  # buttons right

Fixing the ALT-Tab application switcher

Both in Unity and in GNOME Shell the default Alt-TAB behaviour does some crazy application switching with window-subswitching. That has never been usable and needs fixing ASAP.

In Unity you would use ccsm and disable the Ubuntu Unity Switcher, and then enable the Classic Switcher.

In GNOME Shell, it is even easier. It can be adjusted using the "Switch windows" and "Switch applications" shortcuts, either through Settings -> Devices -> Keyboard -> Keyboard shortcuts, or through the CLI:

$ dconf dump /org/gnome/desktop/wm/keybindings/ |
    grep -E '^switch-(application|window)s='
switch-windows=['<Alt>Tab']
switch-applications=@as []

$ gsettings set org.gnome.desktop.wm.keybindings switch-applications "[]" &&
    gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "[]" &&
    gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']" &&
    gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Alt>Tab']"

Adding seconds to the clock

Another gsettings to add seconds to the clock.

$ gsettings set org.gnome.desktop.interface clock-show-seconds true

Keyboard shortcut based window positioning

With Unity (actually Compiz), I could position three windows side by side (widths 33%, 34%, 33%) on my very wide screen using CTRL-ALT-num4, CTRL-ALT-num5 and CTRL-ALT-num6. After enabling "Cycle Through Multiple Sizes" in the CompizConfig Settings Manager (ccsm), in the Grid plugin's Resize Actions page.

For GNOME Shell, there is the Put Windows extension that works for the left and the right positioning. (Again, use SUPER instead of CTRL+ALT now.) However, as of writing this, it needs tweaks to correctly positioning the center window. (See below.)

Setting up extensions is oddly enough done through your browser. You can open up the Looking Glass "extensions inspector" with ALT-F2 "lg", but that's only used for debugging. You'll need the browser plugin too. For the Chromium browser, you'll apt install chrome-gnome-shell.

Now you can install the Put Windows extension, and go to https://extensions.gnome.org/local/ to see the locally installed extensions — and edit their properties.

THESE CHANGES HAVE BEEN MERGED ON 2018-02-08. You may get away with skipping this step:
After installing Put Windows, go to ~/.local/share/gnome-shell/extensions/putWindow@clemens.lab21.org and replace it with the ossobv-changes branch of the Put Windows extensions (OSSO B.V.). Then log out of GNOME Shell, and log back in.

Browse to the local extensions settings page again, and bring up the Configure window. On the "Main" pane, you'll set the "Center Width & Height" heights all to 100, and set the widths to 100, 50 and 34.

Now CTRL+ALT+num5 will cycle the window width through 100%, 50% and 34%.

You'll probably want to enable "Keep width when moving north/south" as well; it makes sense.

Switching between X and console

Technically, switching between graphical shell and console. It's now done through CTRL+ALT+F1 (graphical login), CTRL+ALT+F2 (console), CTRL+ALT+F3 (graphical desktop). ALT+F7 is not the place to return to anymore.

Fixing Wayland / GNOME Shell crashes

On my first day of using GNOME Shell on my desktop, it crashed as soon as I locked the screen or turned the monitor off. It appears I ran into Launchpad bugs #1724557 and #1726352, as I got the following messages in syslog:

gnome-shell[2281]: segfault at 38 ip 00007fb4cef46cf0 sp 00007ffd8abb78f8 error 4
  in libmutter-1.so.0.0.0[7fb4ceef4000+142000]

gnome-shell[7103]: segfault at 18 ip 00007f483ef261bc sp 00007ffd23760320 error 4
  in libmutter-1.so.0.0.0[7f483ee6c000+142000]

Running ubuntu-bug on the files in /var/crash revealed useful stack traces.

A possible fix, which appears to work: an updated libmutter_3.26.2-0ubuntu0.1osso1. Don't forget to log out and restart gdm after installing.

Further

After the update, you may stuble upon screen(1) wiping the copy-buffer again.

And unfortunately, with Wayland, my xpaste CLI tool to copy-paste to the Java IPMIView iKVM viewer doesn't work without workarounds (because Wayland doesn't support poking into / monitoring other windows).

And you may notice that CTRL+s does a scroll-lock again. I don't know where this used to work and where it didn't, but it appears to lock the screen almost everywhere now. Use CTRL+q to get out of the scroll-lock.

gui gnome-shell ubuntu