roundabout,
created on Tuesday, 12 August 2025, 20:42:28 (1755031348),
received on Tuesday, 12 August 2025, 20:42:32 (1755031352)
Author identity: Vlad <vlad.muntoiu@gmail.com>
60aa44462ee55dbaace47e26797006d3b8d6e2ae
config.yaml
@@ -4,6 +4,7 @@ panels:
size: 40
autohide: false
hide_time: 300
can_capture_keyboard: false
applets:
left:
- WFWindowList:
main.py
@@ -323,7 +323,7 @@ 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):
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):
super().__init__(application=application)
self.drop_motion_controller = None
self.motion_controller = None
@@ -332,6 +332,7 @@ class Panel(Gtk.Window):
self.autohide = None
self.monitor_index = monitor_index
self.hide_time = None
self.can_capture_keyboard = can_capture_keyboard
self.open_popovers: set[int] = set()
Gtk4LayerShell.init_for_window(self)
@@ -339,6 +340,10 @@ class Panel(Gtk.Window):
Gtk4LayerShell.set_monitor(self, monitor)
Gtk4LayerShell.set_layer(self, Gtk4LayerShell.Layer.TOP)
if can_capture_keyboard:
Gtk4LayerShell.set_keyboard_mode(self, Gtk4LayerShell.KeyboardMode.ON_DEMAND)
else:
Gtk4LayerShell.set_keyboard_mode(self, Gtk4LayerShell.KeyboardMode.NONE)
box = Gtk.CenterBox()
@@ -581,8 +586,9 @@ class PanoramaPanel(Gtk.Application):
size = panel_data["size"]
autohide = panel_data["autohide"]
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)
panel = Panel(self, monitor, position, size, monitor_index, 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)")
@@ -618,6 +624,7 @@ class PanoramaPanel(Gtk.Application):
"size": panel.size,
"autohide": panel.autohide,
"hide_time": panel.hide_time,
"can_capture_keyboard": panel.can_capture_keyboard,
"applets": {}
}