Comfy GNOME shell
Sparing thoughts for the desktop whatsit favoured by the thoughtless
August 13, 2019 — July 3, 2022
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.
At first glance, there is not much to choose between GNOME (C-ish?) and KDE (C++-ish?) styles of doing things. They both give you lots of clicky widgets and buttons, arranged into an adequate conventional UI. Which is to say, they each approximate the floating patch of non-degradable UI decision conventions that is the modern desktop, with occasional innovations that we leave unexplained to avoid confusing Windows users during onboarding. They both look suspiciously over-engineered 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 on the default distribution, 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 the KDE file manager Dolphin is a better file manager than Nautilus as far as user experience, and KDE email client, Kmail presumably cannot be worse. There are some other things which I prefer about KDE but not enough that I can be bothered booting into a KDE desktop to remind myself.
One can mix and match GNOME-ish and KDE-ish apps in the same OS. The more fundamental to the desktop environment is the app in question, the more complicated and annoying this gets.
And indeed they both have extensibility and hackability and if anything is wrong, you can change it! All you need to do is wade through a mountain of incomplete and obsolescent documentation and user forums, and dedicate a significant portion of your life to ongoing maintenance. None of the marginal gains from these underexplored configurations seem significant enough to my life for the costs, so I try to stay close to the mainstream. Accordingly, here are some low-effort GNOME tweaks and tips to improve that status quo from within with an emphasis on not needing to compile weird patch versions of the app unless the basic version truly excruciates me.
GNOME shell is not exactly obvious; at least, mastery is not obvious. The Gnome Shell Tutorial: Desktop Workflow Explained helps somewhat.
1 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, which may or may not apply to your own flavour of GNOME. Highlights for my workflow:
- 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 to clipboard
-
Ctrl+Print
- Video capture desktop
-
Ctrl+Alt+Shift+R
- Lock screen
-
Super+L
The primary system modifier key should be <Super>
(Super/Windows/Command key).
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 functions that depend upon ibus
such as the emoji selector and east-Asian character input methods.
2 Typing foreign characters
See applied typography.
tl;dr
Then launch Tweaks
- Go to
Keyboard & Mouse
. - Choose
Caps Lock
for theCompose Key
.
3 Theming
Those used to Unity (i.e. Ubuntu before 2018) and the Cinnamon desktop it came with might want to make GNOME look like Unity.
For custom user theming 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.
3.1 Random wallpaper
Does wallpaperdownloader do the trick?
5 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. Restarting just the desktop (?) is not as bad as restarting the machine: 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 if you need to do it from the terminal:
6 Indicators
Miniature informational applets update the display by some system called indicators e.g. for power.
Occasionally one sees Unity Applets on the web; which were too old to get status indicators and do not work in modern GNOME.
7 Extensions
Real executable code extensions are installed on my computer via a… web browser app? What is going on? The entire system looks dangerously undermaintained for a distribution hub for privileged code. I am not touching that. Look for packages in your local distribution of choice.
7.1 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 I 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! These days, rather than face the problem of choice, I have no dock at all and use a tiling window manager thanks to Pop!_os.
7.1.1 Help! My Dock is visible on lock screen
This was a common problem. If I understand it right, at least for Ubuntu, it’s to 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
- 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.)
- 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. OK, in fact perhaps the insights of jwz: I told you so, 2021 edition are what we want here, explaining how various screen lockers are broken in hard-to-fix ways.
7.2 Tiling
Tiling window managers! The other paradigm to stacking window managers. Can you turn GNOME into one?
There is extremely basic split screen tiling built into GNOME.
By dragging windows to the left and right edges of the screen you can tile them side by side.
There are various attempts to support more sophisticated tiling, addressed below. As the author of slinger
explains, there is a lot of awful kludging needed to make GNOME flexible, so few attempts to do this succeed. Current best candidate, though is Pop-shell, which is the System76 GNOME Auto Tiling extension, which does a pretty good job. It occasionally gets confused, but mostly tiles windows by progressive enhancement, and does not require exotic configuration or precipitous learning curves.
More scruffy community options:
- gtile (extension page)
shellshape (extension page)Oops, discontinued.- slinger is the successor to shellshape.
I could, e.g. try to use xmonad
with GNOME, but there are so many portents that this is a bad idea feels like checking out the mysterious basement alone in the third act of a slasher flick. 😒
8 Terminal emulators
Tilix is the terminal emulator that Gnome people tend to like. It has consistent keyboard shortcuts, tiles (but tiles terminal windows only; who wants that?) 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 that actually ships, iterm2.
9 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, because they take the minimalism to an extreme in the wrong places.1 Their bold and/or stubborn commitment to idiosyncratic UI conventions comes at the irritating cost of ignoring the UI conventions of all the other desktop platforms and indeed all the other apps on this same desktop platform.2 When I say this, what I specifically mean is: typeahead navigation is broken in Nautilus and that annoys me, constantly. 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 without it.3 And indeed I do not abide without it, in AFAICT any app I have, with the exception of the triply-blighted GNOME file manager.
Nautilus is, at least in GNOME-flavoured (default) Ubuntu, tightly-enough coupled to the OS that it would be awkward to replace it with something substantially different on my own. By this I mean that I suspect that alternative file managers not supported by a large community trying a similar configuration, these 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. I could switch to a different desktop environment entirely (KDE? Linux Mint?) which would be smoothly integrated with a different file manager. I do not relish the prospect of getting my fussy Linux audio apps running in any remotely unorthodox environment, though, or generally spending any more of my workday wondering which obscure config I messed up. So! Fixing things as they stand.
9.3 macOS-style quicklook previews
Gnome Sushi does that well.
It is broken in Ubuntu 20.10, and you can recompile it yourself, or go to 21.04.
10 Switching to Wayland
Try the following setting: In /etc/gdm3/custom.conf/
comment out the line
Footnotes
Wrong for me. No mistake, GNOME is a gigantic and over-engineered system which TBH could do with even more stuff trimmed away and the goal of minimalism is important. I get that the trade-offs are hard. I suppose the situation is that the developers think it is ok that system simplicity can come at the expense of user consistency, which means that while life might be simpler for the computer it is more complex for me because I have to remember which developer thought they should buck a trend they decided was complex.↩︎
The Nautilus probably do have superior moral right to make this claim than me because they care enough to work on their vision for this in order to make them real, I get that. I just hate it. However, I clearly do not hate it quite enough to pick this special hill do die upon.↩︎
Unless I vent my discomfort to the uncaring internet. And here we are.↩︎