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

allow setting transition type; fix saving settings

roundabout,
created on Saturday, 13 September 2025, 15:39:25 (1757777965), received on Saturday, 13 September 2025, 15:39:29 (1757777969)
Author identity: Vlad <vlad.muntoiu@gmail.com>

d5405c968501f8a79d4e88f26b15a1438bb3981b

main.py

@@ -78,6 +78,42 @@ FITTING_MODES_REVERSE = {

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                Gtk.ContentFit.SCALE_DOWN: "scale_down",
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            }
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        TRANSITION_MODES = {
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "fade": Gtk.StackTransitionType.CROSSFADE,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "stack_down": Gtk.StackTransitionType.OVER_DOWN,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "stack_up": Gtk.StackTransitionType.OVER_UP,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "stack_left": Gtk.StackTransitionType.OVER_LEFT,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "stack_right": Gtk.StackTransitionType.OVER_RIGHT,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "take_down": Gtk.StackTransitionType.UNDER_DOWN,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "take_up": Gtk.StackTransitionType.UNDER_UP,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "take_left": Gtk.StackTransitionType.UNDER_LEFT,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "take_right": Gtk.StackTransitionType.UNDER_RIGHT,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "push_down": Gtk.StackTransitionType.SLIDE_DOWN,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "push_up": Gtk.StackTransitionType.SLIDE_UP,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "push_left": Gtk.StackTransitionType.SLIDE_LEFT,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "push_right": Gtk.StackTransitionType.SLIDE_RIGHT,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "cube_left": Gtk.StackTransitionType.ROTATE_LEFT,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "cube_right": Gtk.StackTransitionType.ROTATE_RIGHT,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        }
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        TRANSITION_MODES_REVERSE = {
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.CROSSFADE: "fade",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.OVER_DOWN: "stack_down",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.OVER_UP: "stack_up",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.OVER_LEFT: "stack_left",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.OVER_RIGHT: "stack_right",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.UNDER_DOWN: "take_down",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.UNDER_UP: "take_up",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.UNDER_LEFT: "take_left",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.UNDER_RIGHT: "take_right",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.SLIDE_DOWN: "push_down",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.SLIDE_UP: "push_up",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.SLIDE_LEFT: "push_left",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.SLIDE_RIGHT: "push_right",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.ROTATE_LEFT: "cube_left",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            Gtk.StackTransitionType.ROTATE_RIGHT: "cube_right",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        }
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            class PanoramaBG(Gtk.Application):
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                def __init__(self):
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -116,6 +152,7 @@ class PanoramaBG(Gtk.Application):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                background_window.put_sources(yaml_file["monitors"][monitor.get_connector()]["sources"])
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                background_window.picture1.set_content_fit(FITTING_MODES[yaml_file["monitors"][monitor.get_connector()]["fitting_mode"]])
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                background_window.picture2.set_content_fit(FITTING_MODES[yaml_file["monitors"][monitor.get_connector()]["fitting_mode"]])
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                            background_window.stack.set_transition_type(TRANSITION_MODES[yaml_file["monitors"][monitor.get_connector()]["transition_mode"]])
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                            background_window.present()
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -192,7 +229,9 @@ class PanoramaBG(Gtk.Application):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                data["monitors"][monitor.get_connector()] = {
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                    "sources": window.sources,
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                    "time_per_image": window.time_per_image,
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                "fitting_mode": FITTING_MODES_REVERSE[window.picture.get_content_fit()],
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                "fitting_mode": FITTING_MODES_REVERSE[window.picture1.get_content_fit()],
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                "transition_ms": window.stack.get_transition_duration(),
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                                "transition_mode": TRANSITION_MODES_REVERSE[window.stack.get_transition_type()],
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                                }
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        yaml_writer.dump(data, config_file)
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -223,7 +262,6 @@ class BackgroundWindow(Gtk.Window):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.picture1 = Gtk.Picture()
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.picture2 = Gtk.Picture()
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.stack = Gtk.Stack()
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                self.stack.set_transition_type(Gtk.StackTransitionType.CROSSFADE)
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.stack.add_child(self.picture1)
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    self.stack.add_child(self.picture2)