Comfy GNOME shell

Sparing thoughts for the desktop whatsit favoured by the thoughtless


GNOME! The default on Ubuntu! Competitor to KDE Plasma, the other major default widget system aesthetic “desktop environment” framework denomination way of life coding convention whatsit.

As far as I am concerned, there is not much to choose between GNOME (Minimalist?/C-ish?) and KDE (Maximalist?/C++-ish?) styles of doing things. They both give you lots of clicky widgets and buttons on linux machines arranged into an adequate conventional UI, which is to say they are an undistinguished imitation of the floating patch of non-degradable UI decision conventions that is the modern desktop. They both look suspiciously overengineered and tend to be installed with way too much extraneous crap, as per desktop tradition.

GNOME comes configured as the default method of doing things Ubuntu and seems (therefore?) to have a larger user base (?) or at least more HOWTOs. KDE has a number of advantages; e.g. I think it is uncontroversial that basic file manager Dolphin is a better file manager than Nautilus as far as user experience. Certainly as far as my user experience. There are some other things which I prefer about KDE but not enough that I can be bothered booting in to KDE to remind myself.

You can mix and match GNOME-ish and and KDE-ish apps in the same OS. The more fundamental to the desktop is the app in question, the more complicated and annoying this gets. None of the marginal gain from these underexplored configurations seem significant enough to my life enough to risk trying it, so I will try to stay mainstream as far as possible with my desktop choices. Accordingly, here are some low-effort GNOME tweaks and tips to improve that status quo from within.

Keyboard shortcuts

What are the keyboard shortcuts? There are many. And they often conflict. Here is a design document which gives an outline/philosophy. Here is a cheatsheet. Highlights for my workflow:

The primary system modifier key should be <Super> (Super/Windows/Command key).

Enter "Show Applications"
Super+A
Access Application Menu
Super+F10
Toggle maximized/windowed
Super+Up / Super+Down
Toggle tiled left/right
Super+Left/Right
Hide window
Super+H
Switch to next/previous workspace
Super+PgDown/PgUp
Switch to first/last workspace
Super+Home/End
Move Window to next/previous workspace
Super+Shift+PgDown/PgUp
Move Window to monitor left/right
Super+Shift+Left/Right
Switch to next application
Super+Tab
Switch to next window of the current application
Super+<key above tab>
Switch input source
Super+Space
Toggle Message Tray
Super+M
Expand a notification and give it keyboard focus
Super+N
Take a screenshot
PrintScr
Take a screenshot of a window
Alt+Print
Take a screenshot and paste in a clipboard
Ctrl+Print
Video capture desktop
Ctrl+Alt+Shift+R
Lock screen
Super+L

The advanced emoji/unicode shortcuts via the ibus system, Ctrl-shift-e and Ctrl-Shift-u, clash with some other useful shortcuts. I recommend changing them; but these particular shortcuts are not in the usual OS shortcut setup; instead you must use dark arts. The ibus-setup app is supposed to configure these but it does not run for me. There is a more functional hack involving dconf-editor and the key /desktop/ibus/panel/emoji/hotkey. I changed mine to ['<Super><Shift>e']. The other, nearly-as-annoying, Ctrl-Shift-u unicode keyboard shortcut does not seem to have any way of turning it off except disabling ibus. That also removes various other useful function that depend upon ibus such as the emoji selector and east-asian character input methods.

File manager

The default file manager in GNOME is Nautilus. Nautilus claims a salutary ideological commitment to minimalism and simplicity, which I naturally publicly laud. However, as with many ideological commitments, just as anyone who does not take it as far as me is a mealy-mouthed quisling, so is anyone who takes it further than me a fundamentalist zealot or even a hipster, and the Nautilus team I suspect of comprising some mix of the latter two. They take the minimalism to an extreme in the wrong places1 with their stubborn commitment to their idiosyncratic UI conventions at the cost of ignoring the UI conventions of all the other desktop platforms and indeed all the other apps on this same desktop platform. When I say this what I really mean is: typeahead navigation is broken in the default file manager and that annoys me. I understand that not everyone will find this feature essential, but for me it is one of those things that is so deeply ingrained in my workflow that I cannot abide to do without it. And indeed I do not, in AFAICT any app I have, with the exception of the triply-blighted GNOME file manager.

Nautilus is, at least in GNOME-flavoured-ubuntu, tightly-enough coupled to the OS that it would be awkward to replace it with something substantially different. By this I mean that I suspect that alternative file managers will introduce larger irritations of compatibility and maintenance and that faffing about trying it out is not the top of my list. However, I have had some success replacing it with something very similar. Nautilus is in a complicated family relationship with the subtly different file managers Caja and Nemo, which can sort-of all be shoe-horned into replacing each other, sometimes, providing a spectrum of different annoyance profiles and pain points. I could switch to a different desktop environment entirely (KDE? linux mint? cinnamon?) which would be smoothly integrated with some different file manager. I do not relish the prospect of getting my fussy linux audio apps running in any remotely unorthodox environment. So!

Typeahead navigation

I want to type W to navigate in the file browser to files starting with W, like in Windows/macOS/Chrome/Firefox/etc. Apparently this is called typeahead navigation, and they deleted that feature from Nautilus in favour of a slow, annoying recursive search. Search is nice, but it’s a different thing to navigation, and this disorients and annoys me every day of my life. It works in macOS, it work in Windows, it works in every drop down list I can find in the entire Ubuntu OS and every browser and every app, but it does not work on the GNOME file browser, where I need it most of all. Nonetheless the Nautilus developers are obdurate about keeping it this way. There is a long story here as to how it got so acrimonious but it is kind of boring and similar to too many other open source loggerheads, so let us ignore it and just get to fixing the problem from the user end.

Replace Nautilus with Nemo

Replace the file browser with a competitor, Nemo, which is a cousin of Nautilus. As with internal organs, the filial relationship here can help reduce the trauma of the transplant. Confusingly, the new file manager appears as Files not Nemo so I constantly wonder which file browser I am using.

sudo apt install nemo
xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search

Pro: much faster and easier to navigate because it has typeahead navigation.

Con: Preview with gnome-sushi, below, does not work any longer. Maybe nemo-preview would replace it? (I think that is even derived from gnome-sushi.) However, it is not in the repository so I will not go down a rabbit hole to install it.

Con: “Recent files” disappears. You can enable it.

…press Ctrl+L so you can enter “Addresss/Path”, then type in: recent:/// and press enter. It should show the recent files. Then press Ctrl+D to bookmark this into your nautilus sidebar.

It still looks a bit janky though.

Con: Errors when dismounting drives. This seems to be cosmetic so I do not care.

Con: You cannot drag files to and from the Desktop.

If these cons are annoying, try

xdg-mime default nautilus.desktop inode/directory application/x-gnome-saved-search
sudo apt remove nemo

Fork nautilus

A reasonable long-term solution for Nautilus-lovers given the too-hipster-for-me-personally issue upstream seems to be distribution fixes downstream for users. For Archlinux users this is already the system. Ubuntu people can use a forked Nautilus with typeahead search too. This feels fragile. Recent blogs lead me to believe the fork is probably ok? 🤷‍♂

sudo add-apt-repository ppa:lubomir-brindza/nautilus-typeahead
sudo apt upgrade

Use a completely different file manager

Try fman, the weird alternative Finder/Nemo/Windows Explorer. Probably not as initimately integrated, which would lead to some misbehaviour. Also probably the risk of having a mess of different file managers open at the same time causing cognitive friction.

Retro cinnamon desktop

Install a complete custom fan-built retro cinnamon desktop which includes the classic Nemo and lots of other features with less support from the mainline. This seems ricketty and dangerous, and low ROI. If I wanted to go to the trouble of running an unorthodox desktop environment, I would drop GNOME entirely in favour of something lighter and more secure, and hell, try a hardened OS while I was there.

New context menu items

Nautilus supports clickable scripts in the context menu when you click on a file. There are 2 types.

Nautilus scripts

a.k.a. g-scripts. Simple and useful, although blighted by outdated documentation.

Nautilus actions

More fully integrated is the actions system, which is called filemanager-actions which supersedes nautilus-actions. HOWTO.

sudo apt-get install filemanager-actions
## install/create an action
fma-config-tool
## restart the file manager
nautilus -q

This comes with a little GUI that allows you to put commands in the menu for the file manager when you lick on various things. Handy.

macOS-style quicklook previews

Gnome Sushi does that well.

apt install gnome-sushi

Typing foreign characters

See applied typography.

tl;dr

apt install gnome-tweaks

Then launch Tweaks

  1. Go to Keyboard & Mouse.
  2. Choose Caps Lock for the Compose Key.

Themeing

Are you used to Unity (i.e. Ubuntu before 2018) and the Cinnamon desktop it came with? You might want to make GNOME look like Unity.

For custom user themeing AFAICT you need to install a non-Ubuntu extension to enable user themes? That sounds like too much effort. I will just change the desktop background image I think.

Or! Install a not-very-custom pre-built theme. The only one I have witnessed having adherents is Canta. There are others.

Gnome shell menu

For user themes and extension wrangling, the Alt-F2 menu is useful because it has some commands you use in shell tweaking, e.g.:

r
restart GNOME Shell
rt
reload the GNOME Shell theme. i.e. to share/gnome-shell/theme/gnome-shell.css`.
lg
launch LookingGlass GNOME Shell’s integrated debugger and inspector tool.

🏗 does this work under Wayland?

Restarting Gnome

Is something weird? Does it take 2 seconds to switch apps instead of no-perceptible-time-at-all? This happens to me once a week or so. I find restarting GNOME helps, and the great virtue of this is that it takes only a few seconds and no other apps are disturbed. Everything keeps ticking over just fine.

How to achieve this happy outcome? Use the r command from the Alt-F2 menu, above. One of the following two commands might help on Ubuntu-style systems:

gnome-shell --replace
sudo systemctl restart systemd-logind
sudo systemctl restart gdm

Indicators

Unity Applets, which were to old way to get status indicators, do not work in modern GNOME. Indicators e.g. for power are the done thing.

Extensions

Real executable code extensions are installed on your computer via a… web browser app? The entire system looks dangerously undermaintained for a distribution hub for privileged code.

Too many docks on the desktop

Too many docks too many many docks.

I use the Ubuntu dock, because it is default on Ubuntu. But if you search for GNOME Dock Extension there are many variants which briefly seemed to me to be desirable. Cairo-dock? dashtodock? Many more even less reputable looking ones? Bikeshed dock? Committee dock? OCDock?

Help! My Dock is visible on lock screen

This was a common problem. If I understand it right, at least for Ubuntu, it’s do with the demarcation lines after Ubuntu Unity was replaced by Gnome-with-extensions-to-make-it-look-like-unity. If you want everything to work out like you expect, you either do

  1. Use Ubuntu Dock Gnome extension, which is a patched Dash-to-Dock. (i.e. not no dock extension and not vanilla Dash-to-dock extension.)
  2. Oh that didn’t work? Try gsettings set org.gnome.shell.extensions.dash-to-dock transparency-mode FIXED Why they have it default to BROKEN I will never understand.

Tiling

There is basic split screen tiling built in.

By dragging windows to the left and right edges of the screen you can tile them side by side.

There are some attempts to support more sophisticated tiling:

As the author of slinger explains, there is a lot of awful kludging needed to make these go so none are entirely satisfactory. Slinger sounds like the most elegant option of these, but I couldn’t make it actually work.

I could, e.g. try to use xmonad with GNOME. 😒

Or, I could abandon gnome for sway which is a Wayland port of the classic i3 tiling window manager. Once again though, this is getting far from mainstream. Also they do not support some things, like NVIDIA so which means that I probably cannot use this in my professional life as a machine learning guy, and if I wanted to do it as a hobbyist that would be fine I guess, but window management is a long way down my priority list of rewarding hobbies.

Terminal emulators

Tilix is the terminal emulator that Gnome people tend to like. It has consistent keyboard shortcuts, tiles (but tiles terminals only) and integrates into the Gnome. I prefer hyper FWIW; it’s cross platform and feels modern, as close as you can get outside of macos to the best terminal, iterm2.


  1. for me. No mistake, this is a gigantic and overengineered app which really could do with some stuff trimming away, don’t get me wrong, and the trade-offs are, I suppose, hard.↩︎