By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

[WIP] no longer use Wayfire output IDs

roundabout,
created on Sunday, 17 August 2025, 21:12:15 (1755465135), received on Sunday, 17 August 2025, 21:12:22 (1755465142)
Author identity: Vlad <vlad.muntoiu@gmail.com>

ba83daa5545c467f190aa41d27897a13dbf5f861

applets/app-menu/__init__.py

@@ -51,8 +51,6 @@ custom_css = """

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            }
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            .no-menu-item-padding:dir(rtl) {
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                locale.bindtextdomain("panorama-app-menu", module_directory / "locale")
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                _ = lambda x: locale.dgettext("panorama-app-menu", x)
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                padding-right: 0;
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            }
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            """
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                            
                                

applets/wf-window-list/__init__.py

@@ -361,6 +361,14 @@ class WFWindowList(panorama_panel.Applet):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        # Wayfire raises Exception itself, so it cannot be narrowed down
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        self.wf_socket = None
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            def get_wf_output_by_name(self, name):
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                if not self.wf_socket:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                    return None
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                for output in self.wf_socket.list_outputs():
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                    if output["name"] == name:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                        return output
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                return None
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                def on_wf_event(self, source, condition):
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    if condition & GLib.IO_IN:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        try:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -369,8 +377,7 @@ class WFWindowList(panorama_panel.Applet):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                            match event:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                case "view-workspace-changed":
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                    view = message.get("view", {})
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                output = self.wf_socket.get_output(self.get_root().monitor_index + 1)
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                if view["output-id"] == self.get_root().monitor_index + 1:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                if view["output-name"] == self.get_root().monitor_name:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                        current_workspace = output["workspace"]["x"], output["workspace"]["y"]
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                        if not self.show_only_this_wf_workspace or (message["to"]["x"], message["to"]["y"]) == current_workspace:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                            if self.toplevel_buttons_by_wf_id[view["id"]].get_parent() is None:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -380,8 +387,8 @@ class WFWindowList(panorama_panel.Applet):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                                # Remove out-of-workspace window
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                                self.remove(self.toplevel_buttons_by_wf_id[view["id"]])
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                case "wset-workspace-changed":
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                output_id = self.get_root().monitor_index + 1
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                if message["wset-data"]["output-id"] == output_id:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                output_name = self.get_root().monitor_name
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                if message["wset-data"]["output-name"] == output_name:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                        # It has changed on this monitor; refresh the window list
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                        self.filter_to_wf_workspace()
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -424,7 +431,7 @@ class WFWindowList(panorama_panel.Applet):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    if not self.show_only_this_wf_workspace:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        return
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                output = self.wf_socket.get_output(self.get_root().monitor_index + 1)
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                output = self.get_wf_output_by_name(self.get_root().monitor_name)
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    for wf_id, button in self.toplevel_buttons_by_wf_id.items():
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        view = self.wf_socket.get_view(wf_id)
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        mid_x = view["geometry"]["x"] + view["geometry"]["width"] / 2
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -517,6 +524,10 @@ class WFWindowList(panorama_panel.Applet):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        button.set_layout_manager(WindowButtonLayoutManager(self.window_button_options))
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        button.connect("clicked", self.on_button_click)
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        self.toplevel_buttons[handle] = button
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                else:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                    button = self.toplevel_buttons[handle]
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                if output == self.my_output:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        self.append(button)
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        self.set_all_rectangles()
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                            
                                

config.yaml

@@ -7,50 +7,30 @@ panels:

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                              can_capture_keyboard: false
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                              applets:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                left:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - 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:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - NotifierApplet: {}
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - 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
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            centre: []
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                right:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - Volume: {}
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            #- Volume: {}
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                - ClockApplet:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    formatting: '%T, %a %-d %b %Y'
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            - position: bottom
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                            
                                

main.py

@@ -24,6 +24,7 @@ import sys

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            import importlib
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            import time
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            import traceback
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        import faulthandler
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            import typing
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            import locale
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            from itertools import accumulate, chain
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -32,6 +33,8 @@ import ruamel.yaml as yaml

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            from pywayland.client import Display
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            from pywayland.protocol.wayland import WlRegistry, WlSeat, WlSurface, WlCompositor
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        faulthandler.enable()
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            os.environ["GI_TYPELIB_PATH"] = "/usr/local/lib/x86_64-linux-gnu/girepository-1.0"
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            from ctypes import CDLL
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -339,14 +342,14 @@ POSITION_TO_LAYER_SHELL_EDGE = {

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            class Panel(Gtk.Window):
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            def __init__(self, application: Gtk.Application, monitor: Gdk.Monitor, position: Gtk.PositionType = Gtk.PositionType.TOP, size: int = 40, monitor_index: int = 0, autohide: bool = False, hide_time: int = 0, can_capture_keyboard: bool = False):
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            def __init__(self, application: Gtk.Application, monitor: Gdk.Monitor, position: Gtk.PositionType = Gtk.PositionType.TOP, size: int = 40, autohide: bool = False, hide_time: int = 0, can_capture_keyboard: bool = False):
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    super().__init__(application=application)
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.drop_motion_controller = None
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.motion_controller = None
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.set_decorated(False)
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.position = None
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.autohide = None
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                self.monitor_index = monitor_index
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                self.monitor_name = monitor.get_connector()
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.hide_time = None
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.can_capture_keyboard = can_capture_keyboard
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.open_popovers: set[int] = set()
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -620,7 +623,7 @@ class PanoramaPanel(Gtk.Application):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                            hide_time = panel_data["hide_time"]
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                            can_capture_keyboard = panel_data["can_capture_keyboard"]
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                        panel = Panel(self, monitor, position, size, monitor_index, autohide, hide_time, can_capture_keyboard)
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                        panel = Panel(self, monitor, position, size, autohide, hide_time, can_capture_keyboard)
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                            self.panels.append(panel)
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                            print(f"{size}px panel on {position} edge of monitor {monitor_index}, autohide is {autohide} ({hide_time}ms)")