roundabout,
created on Wednesday, 20 August 2025, 09:26:40 (1755682000),
received on Wednesday, 20 August 2025, 09:26:42 (1755682002)
Author identity: Vlad <vlad.muntoiu@gmail.com>
27e1512c8fed951d965fd996503030e5cf6393a7
applets/soreaus-menu/__init__.py
@@ -35,8 +35,8 @@ from gi.repository import Gtk, GLib, Gtk4LayerShell, Gio, Gdk, Pango
import subprocess
LOGOUT_BUTTON_SIZE = 125
LOGOUT_BUTTON_MARGIN = 10
LOGOUT_BUTTON_SIZE = 128
LOGOUT_BUTTON_MARGIN = 12
def create_logout_ui_button(icon_name, label_text):
layout = Gtk.Box()
@@ -149,14 +149,16 @@ class SoreausMenu(panorama_panel.Applet):
def __init__(self, orientation=Gtk.Orientation.HORIZONTAL, config=None):
super().__init__()
if config is None:
config = {}
self.button = Gtk.MenuButton()
self.menu_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
image = Gtk.Image.new_from_icon_name("wayfire")
image.set_icon_size(Gtk.IconSize.LARGE)
self.image = Gtk.Image.new_from_icon_name(config.get("icon_name", "wayfire"))
self.image.set_pixel_size(config.get("icon_size", 24))
self.append(self.button)
self.button.set_child(image)
self.button.set_child(self.image)
self.popover = Gtk.Popover()
self.popover.set_parent(self)
self.flowbox = Gtk.FlowBox()
@@ -165,7 +167,7 @@ class SoreausMenu(panorama_panel.Applet):
self.flowbox_item_focus_signal = self.flowbox.connect("selected-children-changed", self.on_flowbox_item_focus)
self.app_buttons = []
self.scrolled_window = Gtk.ScrolledWindow()
self.scrolled_window.set_size_request(-1, 360)
self.scrolled_window.set_size_request(-1, config.get("height", 360))
self.scrolled_window.set_child(self.flowbox)
self.logout_box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
self.logout_button = Gtk.Button()
@@ -184,7 +186,7 @@ class SoreausMenu(panorama_panel.Applet):
self.menu_box.append(self.scrolled_window)
self.menu_box.append(self.logout_box)
self.popover.set_child(self.menu_box)
self.popover.set_size_request(400, 400)
self.popover.set_size_request(config.get("width", 400), -1)
self.popover.connect("show", self.on_popover_popup)
self.button.set_popover(self.popover)
self.logout_ui = WayfireLogoutUI()
@@ -209,6 +211,14 @@ class SoreausMenu(panorama_panel.Applet):
if len(selected_children) >= 1:
selected_children[0].get_child().grab_focus()
def get_config(self):
return {
"width": self.popover.get_size_request()[0],
"height": self.scrolled_window.get_size_request()[1],
"icon_name": self.image.get_icon_name(),
"icon_size": self.image.get_pixel_size(),
}
def on_popover_popup(self, parent):
for child in self.flowbox.get_selected_children():
self.flowbox.unselect_child(child)
config.yaml
@@ -7,7 +7,11 @@ panels:
can_capture_keyboard: false
applets:
left:
- SoreausMenu: {}
- SoreausMenu:
width: 400
height: 576
icon_name: start-here-symbolic
icon_size: 24
- AppMenu:
category_mappings:
Utility: