roundabout,
created on Thursday, 14 August 2025, 13:37:35 (1755178655),
received on Thursday, 14 August 2025, 13:37:37 (1755178657)
Author identity: Vlad <vlad.muntoiu@gmail.com>
eaefedca701ce44f3f84c03b9992c59a42ceb606
applets/app-menu/__init__.py
@@ -34,18 +34,18 @@ _ = lambda x: locale.dgettext("panorama-app-menu", x)
CATEGORY_MAPPINGS = { "Utility": (_("Accessories"), "applications-accessories"),"Development": (_("Programming"), "applications-development"),"Game": (_("Games"), "applications-games"),"Graphics": (_("Graphics"), "applications-graphics"),"Network": (_("Network"), "applications-internet"),"AudioVideo": (_("Multimedia"), "applications-multimedia"),"Office": (_("Office"), "applications-office"),"Science": (_("Science"), "applications-science"),"Education": (_("Education"), "applications-education"),"System": (_("System"), "applications-system"),"Settings": (_("Settings"), "preferences-desktop"),"Other": (_("Other"), "applications-other"),"Utility": {"menu_name": _("Accessories"), "icon": "applications-accessories"}, "Development": {"menu_name": _("Programming"), "icon": "applications-development"}, "Game": {"menu_name": _("Games"), "icon": "applications-games"}, "Graphics": {"menu_name": _("Graphics"), "icon": "applications-graphics"}, "Network": {"menu_name": _("Network"), "icon": "applications-internet"}, "AudioVideo": {"menu_name": _("Multimedia"), "icon": "applications-multimedia"}, "Office": {"menu_name": _("Office"), "icon": "applications-office"}, "Science": {"menu_name": _("Science"), "icon": "applications-science"}, "Education": {"menu_name": _("Education"), "icon": "applications-education"}, "System": {"menu_name": _("System"), "icon": "applications-system"}, "Settings": {"menu_name": _("Settings"), "icon": "preferences-desktop"}, "Other": {"menu_name": _("Other"), "icon": "applications-other"},} custom_css = """
@@ -130,6 +130,7 @@ class AppMenu(panorama_panel.Applet):
super().__init__(orientation=orientation, config=config) if config is None: config = {} self.category_mappings = config.get("category_mappings", CATEGORY_MAPPINGS)self.button = Gtk.MenuButton() self.button.set_has_frame(False) # flat look self.icon = Gtk.Image.new_from_icon_name("start-here")
@@ -194,7 +195,7 @@ class AppMenu(panorama_panel.Applet):
... def get_config(self): return {}return {"category_mappings": self.category_mappings}def set_panel_position(self, position): self.popover.set_position(panorama_panel.OPPOSITE_POSITION[position])
@@ -206,7 +207,7 @@ class AppMenu(panorama_panel.Applet):
all_apps = Gio.AppInfo.get_all() apps_by_category: dict[str, list[Gio.AppInfo]] = {} for category, info in CATEGORY_MAPPINGS.items():for category, info in self.category_mappings.items():apps_by_category[category] = [] for app in all_apps:
@@ -222,10 +223,10 @@ class AppMenu(panorama_panel.Applet):
if not category_found: apps_by_category["Other"].append(app) for category, info in CATEGORY_MAPPINGS.items():for category, info in self.category_mappings.items():if apps_by_category[category]: item = Gio.MenuItem.new(info[0])item.set_icon(Gio.ThemedIcon.new(info[1]))item = Gio.MenuItem.new(info["menu_name"]) item.set_icon(Gio.ThemedIcon.new(info["icon"]))submenu = Gio.Menu() for app in apps_by_category[category]:
config.yaml
@@ -7,7 +7,44 @@ panels:
can_capture_keyboard: false applets: left: - AppMenu: {}- AppMenu: category_mappings: Utility: menu_name: Accessories icon: applications-accessories Development: menu_name: Programming icon: applications-development Game: menu_name: Games icon: applications-games Graphics: menu_name: Graphics icon: applications-graphics Network: menu_name: Network icon: applications-internet AudioVideo: menu_name: Multimedia icon: applications-multimedia Office: menu_name: Office icon: applications-office Science: menu_name: Science icon: applications-science Education: menu_name: Education icon: applications-education System: menu_name: System icon: applications-system Settings: menu_name: Settings icon: preferences-desktop Other: menu_name: Other icon: applications-other- WFWindowList: max_button_width: 256 centre: []