Skip to content

GTK launchers for sway & other WMs w/ menu, dmenu, application grid and button bar

License

Notifications You must be signed in to change notification settings

nwg-piotr/sgtk-menu

Repository files navigation

sgtk-menu

This project is archival

This project was my first attempt to launchers development. The code has been later reused and significantly improved in other projects. I no longer work on sgtk-menu. Please use launchers named below instead:

C++ version of the launchers provided by sgtk-menu. It works as well on wlroots-based compositors, as on X11. The project is community-driven, as I turned out to be a hopeless C++ programmer.

An attempt to create a GTK-based shell for sway. The project includes a panel and a set of launchers, developed in Python and Go. The nwg-shell project is under active development.

The description below is archival as well

This project is an attempt to create a launcher, that behaves decently on sway, but also works on other window managers. It may or may not work on some DEs - I don't care much about it. For what I managed to test so far, see the Compatibility chart.

sgtk-menu uses pygobject to create a themeable, searchable, gtk3-based system launchers w/ some optional features:

  • .desktop entries-based system menu;
  • search box to find what you need quickly;
  • favourites (most frequently used entries) menu above (optional [-f | -fn FN] argument);
  • user-defined menu below (optional [-a | -af AF] argument);
  • sgtk-dmenu command: search and run commands in $PATH;
  • sgtk-bar command: user-defined horizontal or vertical button bar;
  • sgtk-grid command: a GNOME-like application grid.

Read wiki for more information. See screenshots for usage examples.

Background

Well, I didn't even think that sway needed a menu, being happy with wofi and dmenu-wayland. I started coding just to find out what the Desktop Menu Specification looks like, and also to learn some more pygobject. The best menu I know, however, does not (yet?) behave well on sway. So, I thought to share the code, which has already taken me more time that I had ever expected.

This code by Johan Malm helped me understand how to make use of .desktop entries. Many thanks!

How it works on sway

The problem to resolve on sway, was, that the Gtk.Menu class behaves differently / unexpectedly when open over Wayland and X11 windows. To work it around, the script opens the menu over a (semi-)transparent, floating window, that covers all the screen.

Packaging status

Packaging status

Arch Linux

Install sgtk-menu from AUR.

Fedora

sudo dnf install sgtk-menu

See wiki for more info.