Shopno Menu is a Start menu plugin for the Xfce panel, laid out like the one in Windows 11: search at the top, pinned apps, a recently used row, and an All apps view. No ads, no recommendations 😉.
It's GPL-2.0-or-later and runs on any distro with Xfce 4.18 or newer.
Repo: https://github.com/fa-saikat/xfce4-shopno-menu-plugin
Why I made it
I work on ShopnoOS, a Debian-based distro. Most of our users come from Windows, and they settle in faster when the menu looks and behaves like the one they already know.
Whisker Menu is excellent and far more configurable than this. But it's a classic Linux menu, and I wanted a Windows 11 style one for Xfce. Nothing fit, so I wrote it.
What it does
- All apps, three ways: category cards with icon previews, or a grid or list grouped by first letter. Categories open as their own page with a back button.
- Search as you type by name, keyword or description. Enter launches the best match.
- Right-click menu with the app's own desktop actions (New Window, New Private Window…), pin/unpin, Add to Desktop, Add to Panel, Edit Application.
- Pinned apps seeded on first run from your Xfce Default Applications (file manager, browser, terminal).
- Settings dialogs stay out of All apps but still show up in search, the way Windows 11 treats settings pages.
- Screenshot button that copies the full screen or a region straight to the clipboard. Nothing is saved to disk.
- User and power menus for lock, switch user, sign out, sleep, shut down and restart.
- Follows your GTK theme and icon theme, opens with Super, and works entirely from the keyboard.
- Optional background blur through picom.
How it's put together
It's a C plugin on GTK 3 and the standard Xfce stack:
- libxfce4panel for the panel plugin itself
- garcon to read the freedesktop applications menu
- xfconf for settings
- libxfce4ui / libxfce4util for the usual Xfce helpers
- Meson for the build
Wherever possible it hands work to existing tools instead of reimplementing them: xflock4, xfce4-session-logout and xfce4-settings-manager for session actions, xfce4-screenshooter for screenshots, dm-tool for switching users, exo for editing launchers. If one of those isn't installed, the matching button is simply hidden.
Two conventions are borrowed from Whisker Menu (no shared code): the popup is a menu-type window, so xfwm4 gives it a proper menu shadow, and there's an xfce4-popup-shopno-menu command you can bind to the Super key.
Styling is plain GTK CSS. Every part of the menu has a .shopno-menu-* class you can override in ~/.config/gtk-3.0/gtk.css.
On AI assistance
I'll be upfront: the code was written with Claude, and directed, reviewed and tested by me. I decided what it does and how it looks, tested every change on a VM before merging, and sent back what didn't work. After the first skeleton, each change went through its own issue and pull request, so the git history shows how it was built.
Before 0.2.0 I ran it through AddressSanitizer, LeakSanitizer, UBSan, valgrind, GCC's static analyzer and cppcheck, plus a 200-cycle test that drove the real menu and measured memory. That turned up one leak, fixed in 0.2.0. CI builds and install-tests packages on Debian 13, Ubuntu 24.04, Fedora and Arch. There's no automated test suite yet.
If you spot something wrong in the code, open an issue. It gets the same attention as any other bug.
Limitations
It's young, and it does a lot less than Whisker Menu today:
- Only a few settings (panel icon, Recent row, settings dialogs, blur)
- Fixed 720 × 720 size
- The popup command only opens at the panel button, not at the pointer or screen centre
- X11 only; untested on Wayland
- It borrows the ShopnoOS logo until it gets its own icon
These are all planned. If one matters to you, a feature request helps me decide what comes first.
Try it
Packages for Debian 13, Ubuntu 24.04 / Mint 22, Fedora and Arch are on the releases page, with a SHA256SUMS file.
# Debian / Ubuntu
sudo apt install ./xfce4-shopno-menu-plugin_*.deb
xfce4-panel -r
Then right-click the panel → Panel > Add New Items… → Shopno Menu.
Building from source:
meson setup build --prefix=/usr
meson compile -C build
sudo meson install -C build
The prefix has to match where Xfce is installed (/usr almost everywhere), or the panel won't find the plugin.
Bug reports, translations and patches are welcome. There's also a discussion thread on r/xfce if you'd rather talk there.


Top comments (0)