Revert "fix crash on TTY switch (window list not safe though), by soreau"
This reverts commit 5c9447bb95a2cda4503c59e01d8e989e1124aa1b.
By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.
This reverts commit 5c9447bb95a2cda4503c59e01d8e989e1124aa1b.
roundabout,
created on Saturday, 30 August 2025, 15:29:55 (1756567795),
received on Saturday, 30 August 2025, 15:30:10 (1756567810)
Author identity: Vlad <vlad.muntoiu@gmail.com>
e06c5ef50762aead7971965b75ce626423672598
from itertools import accumulate, chain
from pathlib import Path
import ruamel.yaml as yaml
from pywayland.client import Display, EventQueue
from pywayland.client import Display
from pywayland.protocol.wayland import WlRegistry, WlSeat, WlSurface, WlCompositor
faulthandler.enable()
import asyncio
asyncio.set_event_loop_policy(GLibEventLoopPolicy())
import ctypes
from cffi import FFI
ffi = FFI()
ffi.cdef("""
void * gdk_display_get_default ();
void * gdk_wayland_display_get_wl_display (void * display);
""")
gtk = ffi.dlopen("libgtk-4.so.1")
custom_css = """
.panel-flash {
animation: flash 333ms ease-in-out 0s 2;
self.applets_by_name: dict[str, panorama_panel.Applet] = {}
self.panels: list[Panel] = []
self.manager_window = None
self.wl_display = None
self.wl_event_queue = None
self.wl_fd_watch_handle = None
self.edit_mode = False
self.drags = {}
def do_startup(self):
Gtk.Application.do_startup(self)
self.monitors = self.display.get_monitors()
for i, monitor in enumerate(self.monitors):
geometry = monitor.get_geometry()
print(f"Monitor {i}: {geometry.width}x{geometry.height} at {geometry.x},{geometry.y}")
print(f"Name conflict for applet {subclass.__name__}. Only one will be loaded.", file=sys.stderr)
self.applets_by_name[subclass.__name__] = subclass
if not self.wl_display:
print("Acquiring Display()")
self.wl_display = Display()
wl_display = gtk.gdk_display_get_default()
wl_display_ptr = gtk.gdk_wayland_display_get_wl_display(
ffi.cast("void *", wl_display))
self.wl_display._ptr = wl_display_ptr
self.wl_event_queue = EventQueue(self.wl_display)
with open(get_config_file(), "r") as config_file:
yaml_loader = yaml.YAML(typ="rt")
yaml_file = yaml_loader.load(config_file)
def do_activate(self):
Gio.Application.do_activate(self)
print("do_activate")
def save_config(self, *args):
print("Saving configuration file")