From 158e2e64b7fe584ea8fe782e4608df25d6103fc3 Mon Sep 17 00:00:00 2001 From: Victor Kareh Date: Wed, 30 Jul 2025 06:45:30 -0400 Subject: Add dynamic workspaces support Adds GNOME3-style dynamic workspace management. Workspaces are created when no empty ones exist and removed when multiple empty workspaces are present, maintaining exactly one empty workspace at the end. Fixes #406 --- src/core/screen-private.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/core/screen-private.h') diff --git a/src/core/screen-private.h b/src/core/screen-private.h index 56755f9a..fb9f68f4 100644 --- a/src/core/screen-private.h +++ b/src/core/screen-private.h @@ -140,6 +140,8 @@ struct _MetaScreen /* Managed by compositor.c */ gpointer compositor_data; + + guint dynamic_workspace_idle_id; }; MetaScreen* meta_screen_new (MetaDisplay *display, @@ -191,6 +193,7 @@ void meta_screen_get_natural_xinerama_list (MetaScreen *screen, void meta_screen_update_workspace_layout (MetaScreen *screen); void meta_screen_update_workspace_names (MetaScreen *screen); void meta_screen_queue_workarea_recalc (MetaScreen *screen); +void meta_screen_update_dynamic_workspaces (MetaScreen *screen); Window meta_create_offscreen_window (Display *xdisplay, Window parent, -- cgit v1.2.1