Functional funk: Let GNOME Pie enhance your GTK desktop

:ubuntu_mate: Introduction

Sick and tired of traditional boxy menus? Want to be even less precise with a mouse? Simply seeking a cool new toy to show the kids that Linux is rad? Look no further than GNOME Pie to give you a potentially awesome desktop experience.

It's a dock! It's a pager! It's an apps menu! It has window controls! It can even be a clock! It does a bunch of things you can already do using your panels and window decorator, but in neat circle-based menus which you queue on-demand using simple keystrokes, or with solutions for hot-corner actions and EasyStroke use your mouse alone. It's stupid-easy, and it works on a multitude of desktop environments so everybody with GTK can get in on this wonderful utility.

:install: Installation

It's a bit more involved than it should be, but it's still fairly straight-forward and should work just fine. I've tested this in a 20.04 live session prior to writing so I am sure of what I am banging on about. Perform as shown below:

:fast_forward: For brevity, pluma is assumed as editor.

In x-terminal-emulator:

sudo add-apt-repository -n ppa:simonschneegans/testing
sudo add-apt-repository -n ppa:vala-team/ppa
sudo pluma /etc/apt/sources.list.d/simonschneegans-ubuntu-testing-focal.list

After opening Pluma, modify sources so that they seek things for the cosmic branch, rather than focal and save. Once changes are saved, do this:

In x-terminal-emulator:

sudo apt update
sudo apt install gnome-pie
gnome-pie &

When it opens, if using the terminal you will see various debug messages. There should not be a problem with applications.menu but if there is, check /etc/xdg/menus for whatever it is requesting per output in the terminal, and fulfill it by making a symbolic link of gnome-applications.list to applications.list.

:beginner: Menu operation basics

As mentioned earlier, keyboard shortcuts for GNOME Pie can bring up a multitude of menus. When viewing its settings, you will find that each "Pie" is assigned a special three-digit numerical ID. This isn't an accident or programmer oversight — The IDs are used to open specific pies by command only.

i.e. My instance of the Main Menu pie is 761, so if I want to open this menu I have two options:

gnome-pie --open=761 #long-form
gnome-pie -o 761 #shorthand

Either of those will function if the IDs exist, arguably the shorthand method seems easier to use. This also means, applications which will accept commands to perform actions based on other actions like gestures or hot corners can be used to also open menus, which I will highlight below.

To navigate through menus, simply engage a pie with its hotkey or action and start clicking on stuff. To go back and eventually get rid of the pie entirely, click on the middle-most circle (which should be the largest circle of the lot) and you'll return to your previous task.

To change a pie's settings, the hamburger menu at the bottom left, next to the pie add / remove buttons can be used to change properties of a selected pie. In some instances, based on personal preference this may be necessary. You can define what the pie looks like normally, and also how the pie interacts with the display and mouse.

...That's it?

If you expected more, open gnome-pie instead — the rest of what you need to learn can be had through its fairly intuitive configuration UI.

:jigsaw: Using it for everything

Main menu

Marco
If you had followed my previous guide on how to Add a corner-activated window picker for Marco and you want to completely replace the menu you would traditionally use, then unlock and remove from panel your preferred menu solution and open brightside-properties to replace whatever menu resided in one corner with a hot corner action to open GNOME Pie's main menu. Else you may want to install ksuperkey and have it launch on startup to incorporate Super key activation, as GNOME Pie doesn't allow that by default.

Compiz
Open ccsm and enable the Commands plugin. Set any one of the commands to open the Main Menu pie in the Commands tab, then go to Edge bindings to define a side or corner you want to engage that command with.

Pie-specific settings
Most users might want to have the pie show applications at the one corner they had their menu at previous, but I personally find it more intuitive to have it show in the middle, and to warp my cursor to the centre of the pie. This means for me, activation is where the previous menu solution was, but the menu shows up where my eyes would be at the display anyway.

ksuperkey
Use this utility for any application you want to invoke with a single key. It can help to redirect hardcoded keybinds to other bindings, or in this case define any one specific binding to a single key. As an example, this is how I show the menu with Super_L:

:heavy_dollar_sign: In x-terminal-emulator:

ksuperkey -e 'Super_L=Shift_L|Control_L|Alt_L|grave' &

You can get ksuperkey via snapd by doing the following:

:heavy_dollar_sign: In x-terminal-emulator:

sudo snap install ksuperkey

Window selection

Marco
This can be used to either compliment or completely replace the default solution for window picking. Ideally one seeking to replace would open mate-keybinding-properties and disable the default window picker's keybinding — Alt + Tab — there.

Compiz
Simply disable whatever your window picking solution was and assign the pie as described at the bottom of this subsection.

Pie-specific settings
Use whatever keybinds you like, though for familiarity I would assign this to Alt + Tab and have it be the only window picker.

Window controls

Nothing to see here, just give it a keybind you're likely to remember and off to the races. If all of your software uses GTK / Qt window decoration or you use Emerald, you can find themes which are just a window border and completely omit the window control features if you don't mind losing a more traditional interface as fallback.

Clock

Use one of the supplied clock themes under General settings and you'll have clock-based functionality. Just have the cursor away from the menu to see the time.

If you want to get your hands dirty you can incorporate a clock in any existing theme based off of the existing clock code in Space Clock and Analog Clock, or find other clock-based themes online.

:warning: Caveats

Of course, GNOME Pie isn't the best solution for all applications depending on preference, and not all solutions above are entirely usable on their own unless you really commit to the idea. Only time and effort in using it will determine if this is an ideal solution for any one scenario where it could replace how you use a computer traditionally.

:information_source: Information sources

A highlight of Makulu Linux' implementation of GNOME Pie:

:right_anger_bubble: Corrections

Moved the ksuperkey section to where it belonged in respect to how most people would use it.
Forgot to complete a segment about gnome-pie operation — filled in now.