roundabout,
created on Monday, 18 August 2025, 10:10:12 (1755511812),
received on Monday, 18 August 2025, 10:10:16 (1755511816)
Author identity: Vlad <vlad.muntoiu@gmail.com>
6ecd1f0b108a68ce5fc1d0b53d5473242eee09cf
applets/wf-window-list/__init__.py
@@ -318,6 +318,7 @@ class WFWindowList(panorama_panel.Applet):
self.initial_button = Gtk.ToggleButton()
self.display = None
self.manager = None
self.my_output = None
self.wl_surface_ptr = None
self.registry = None
@@ -482,8 +483,9 @@ class WFWindowList(panorama_panel.Applet):
self.registry.dispatcher["global"] = self.on_global
self.display.roundtrip()
if self.manager is None:
print("Could not load wf-window-list. Is foreign-toplevel protocol advertised by the compositor?")
print("(Wayfire requires enabling foreign-toplevel plugin)")
self.print_log("Could not load wf-window-list. Is foreign-toplevel protocol advertised by the compositor?")
self.print_log("(Wayfire requires enabling foreign-toplevel plugin)")
self.print_log("GNOME, Plasma and COSMIC are not supported.")
return
self.manager.dispatcher["toplevel"] = self.on_new_toplevel
self.manager.dispatcher["finished"] = lambda *a: print("Toplevel manager finished")
@@ -523,6 +525,7 @@ class WFWindowList(panorama_panel.Applet):
def on_output_entered(self, handle, output):
button = WindowButton(handle, handle.title)
self.toplevel_buttons[handle] = button
if self.show_only_this_output and output != self.my_output:
return
@@ -532,14 +535,18 @@ class WFWindowList(panorama_panel.Applet):
button.set_layout_manager(WindowButtonLayoutManager(self.window_button_options))
button.connect("clicked", self.on_button_click)
self.set_app_id(button, handle.app_id)
self.toplevel_buttons[handle] = button
self.append(button)
self.set_all_rectangles()
def on_output_left(self, handle, output):
if not self.show_only_this_output:
return
if handle in self.toplevel_buttons:
button = self.toplevel_buttons[handle]
self.remove(button)
if button.get_parent() == self:
self.remove(button)
self.toplevel_buttons.pop(handle)
self.set_all_rectangles()
def set_title(self, button, title):
@@ -675,7 +682,7 @@ class WFWindowList(panorama_panel.Applet):
}
def output_changed(self):
self.get_wl_resources()
self.get_wl_resources(None)
def make_draggable(self):
for button in self.toplevel_buttons.values():
config.yaml
@@ -7,30 +7,49 @@ panels:
can_capture_keyboard: false
applets:
left:
- WFWindowList:
max_button_width: 256.0
show_only_this_wf_workspace: true
show_only_this_output: true
centre: []
right:
#- Volume: {}
- ClockApplet:
formatting: '%T, %a %-d %b %Y'
- position: top
monitor: 1
size: 40
autohide: false
hide_time: 300
can_capture_keyboard: false
applets:
left:
- WFWindowList:
max_button_width: 256.0
show_only_this_wf_workspace: true
show_only_this_output: true
- 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
trigger_name: app-menu
icon_name: start-here-symbolic
centre: []
right:
#- Volume: {}
- Volume: {}
- ClockApplet:
formatting: '%T, %a %-d %b %Y'
- position: bottom