Linux on the Surface Go - Bonus: Kando Pie Menu
Linux on the Surface Go - Bonus: Kando Pie Menu
A bonus article to the series - a touch-friendly launcher that integrates well into a pen and touch workflow and has become a permanent part of my daily work on the Surface Go.
What is Kando?
Kando is an open-source, cross-platform pie menu. You trigger it with a keyboard shortcut, which brings up a circular menu - under the cursor, pen tip, or finger. From there you can launch apps, execute commands, or simulate keyboard shortcuts, all with a single gesture. Kando is explicitly designed for mouse, pen, and touch input, making it a natural fit for the Surface Go.
For me, Kando has become the central launcher: VS Code, Firefox, Thunderbird, and Spotify can be called up directly, Obsidian Vaults open via gesture, and around 30 subdivided browser shortcuts as well as the OnlyOffice tools are also integrated. I’m still working on additional custom commands.
Why not the Flatpak?
Kando is available on Flathub, but the Flatpak version runs into D-Bus sandboxing issues on GNOME Wayland. The symptom is a misleading error message:
Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket
Kando is already running.
Kando isn’t actually running - the sandbox blocks the D-Bus connection that Kando needs to register global keyboard shortcuts and communicate with the compositor. The solution is to completely bypass the Flatpak and instead install the official .deb package, which runs with full system access.
Installation
Download and install the latest .deb package from the GitHub releases page:
wget https://github.com/kando-menu/kando/releases/download/v2.2.0/kando_2.2.0_amd64.deb
sudo apt install ./kando_2.2.0_amd64.deb
If the Flatpak was previously installed, clean it up first:
flatpak uninstall --delete-data menu.kando.Kando
flatpak uninstall --unused
GNOME Integration Extension
On GNOME Wayland, Kando requires a shell extension to query the current mouse position and focused window, as well as to register global keyboard shortcuts. The extension is called kando-integration@kando-menu.github.io - it can be installed via extensions.gnome.org or the Extension Manager app and must be enabled.
Autostart
Kando does not automatically add itself to autostart. To have it start with every login, create an autostart entry:
mkdir -p ~/.config/autostart
cat > ~/.config/autostart/kando.desktop << EOF
[Desktop Entry]
Type=Application
Name=Kando
Exec=kando
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
EOF
Surface Pen Back Button - A Dead End
The most obvious trigger for a pie menu on a pen-based device would be the back button of the Surface Pen. On Windows it can be freely remapped - on Linux it simply doesn’t register as any input event. Neither evtest nor libinput debug-events produce any output when the back button is pressed. The driver stack simply doesn’t pass it through.
The side button of the pen works fine and was left unchanged. As a trigger for Kando, I use Ctrl+Space - the standard keyboard shortcut, easily accessible with the Type Cover attached.
How it feels in daily use
The workflow has quickly settled in: I open Kando via keyboard with Ctrl+Space, then make the selection via touch or pen - depending on what’s handy at the moment. Tapping and dragging to select elements feels natural with the Surface Pen and is much faster than navigating through app menus.

Kando runs stably, starts reliably with the session, and has become one of those features on the Surface Go that I don’t want to do without anymore.