[arch-commits] Commit in budgie-desktop/repos (8 files)

Balló György bgyorgy at archlinux.org
Wed Sep 12 21:19:29 UTC 2018


    Date: Wednesday, September 12, 2018 @ 21:19:28
  Author: bgyorgy
Revision: 380022

archrelease: copy trunk to community-testing-x86_64

Added:
  budgie-desktop/repos/community-testing-x86_64/
  budgie-desktop/repos/community-testing-x86_64/0001-Port-to-mutter-3-from-GNOME-3.30.patch
    (from rev 380021, budgie-desktop/trunk/0001-Port-to-mutter-3-from-GNOME-3.30.patch)
  budgie-desktop/repos/community-testing-x86_64/0002-Correct-GNOME-button-layout-schema-path.patch
    (from rev 380021, budgie-desktop/trunk/0002-Correct-GNOME-button-layout-schema-path.patch)
  budgie-desktop/repos/community-testing-x86_64/0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch
    (from rev 380021, budgie-desktop/trunk/0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch)
  budgie-desktop/repos/community-testing-x86_64/0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch
    (from rev 380021, budgie-desktop/trunk/0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch)
  budgie-desktop/repos/community-testing-x86_64/0005-Point-vapi-cheaders-to-their-upstream-equiv.patch
    (from rev 380021, budgie-desktop/trunk/0005-Point-vapi-cheaders-to-their-upstream-equiv.patch)
  budgie-desktop/repos/community-testing-x86_64/0007-Check-if-schema-is-defined-for-volume-slider-changes.patch
    (from rev 380021, budgie-desktop/trunk/0007-Check-if-schema-is-defined-for-volume-slider-changes.patch)
  budgie-desktop/repos/community-testing-x86_64/PKGBUILD
    (from rev 380021, budgie-desktop/trunk/PKGBUILD)

-----------------------------------------------------------------+
 0001-Port-to-mutter-3-from-GNOME-3.30.patch                     | 2050 ++++++++++
 0002-Correct-GNOME-button-layout-schema-path.patch              |   26 
 0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch |   34 
 0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch |  110 
 0005-Point-vapi-cheaders-to-their-upstream-equiv.patch          |  622 +++
 0007-Check-if-schema-is-defined-for-volume-slider-changes.patch |   25 
 PKGBUILD                                                        |   79 
 7 files changed, 2946 insertions(+)

Copied: budgie-desktop/repos/community-testing-x86_64/0001-Port-to-mutter-3-from-GNOME-3.30.patch (from rev 380021, budgie-desktop/trunk/0001-Port-to-mutter-3-from-GNOME-3.30.patch)
===================================================================
--- community-testing-x86_64/0001-Port-to-mutter-3-from-GNOME-3.30.patch	                        (rev 0)
+++ community-testing-x86_64/0001-Port-to-mutter-3-from-GNOME-3.30.patch	2018-09-12 21:19:28 UTC (rev 380022)
@@ -0,0 +1,2050 @@
+Description: [PATCH] Port to mutter-3 from GNOME 3.30
+ This drops support for the old mutter versions. It's too much work to
+ support them all.
+Author: Iain Lane <iain at orangesquash.org.uk>
+Last Update: 2018-08-06
+Commit: https://github.com/UbuntuBudgie/budgie-desktop/commit/0938c69f062cd58f7ca1ad0f492bc6b594e884be
+
+---
+ src/daemon/settings.vala                      |    1 -
+ src/panel/settings/settings_wm.vala           |    6 +-
+ ...0_solus-project.budgie.wm.gschema.override |    4 +
+ src/wm/background.vala                        |   14 +-
+ .../com.solus-project.budgie.wm.gschema.xml   |   27 -
+ src/wm/keyboard.vala                          |   13 +-
+ src/wm/meson.build                            |   33 +-
+ src/wm/shim.vala                              |    2 +-
+ src/wm/wm.vala                                |   90 +-
+ vapi/Meta-3.metadata                          |   66 +
+ vapi/README.md                                |    4 +
+ vapi/libmutter-3-custom.vala                  |    6 +
+ vapi/libmutter-3.deps                         |    9 +
+ vapi/libmutter-3.vapi                         | 1380 +++++++++++++++++
+ 14 files changed, 1534 insertions(+), 121 deletions(-)
+ create mode 100644 src/wm/20_solus-project.budgie.wm.gschema.override
+ create mode 100644 vapi/Meta-3.metadata
+ create mode 100644 vapi/libmutter-3-custom.vala
+ create mode 100644 vapi/libmutter-3.deps
+ create mode 100644 vapi/libmutter-3.vapi
+
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/daemon/settings.vala
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/src/daemon/settings.vala
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/daemon/settings.vala
+@@ -114,7 +114,6 @@ public class SettingsManager
+             break;
+         }
+         this.xoverrides.set_value("overrides", xset);
+-        this.wm_settings.set_string("button-layout", wm_set);
+     }
+
+     /**
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/panel/settings/settings_wm.vala
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/src/panel/settings/settings_wm.vala
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/panel/settings/settings_wm.vala
+@@ -16,6 +16,7 @@ namespace Budgie {
+  */
+ public class WindowsPage : Budgie.SettingsPage {
+
++    private GLib.Settings gnome_wm_settings;
+     private GLib.Settings budgie_wm_settings;
+     private Gtk.ComboBox combo_layouts;
+     private Gtk.Switch switch_dialogs;
+@@ -78,10 +79,11 @@ public class WindowsPage : Budgie.Settin
+               "Use this if you are having graphical or performance issues with dedicated GPUs")));
+
+         /* Hook up settings */
++        gnome_wm_settings = new GLib.Settings("org.gnome.mutter");
+         budgie_wm_settings = new GLib.Settings("com.solus-project.budgie-wm");
+-        budgie_wm_settings.bind("attach-modal-dialogs", switch_dialogs,  "active", SettingsBindFlags.DEFAULT);
++        gnome_wm_settings.bind("attach-modal-dialogs", switch_dialogs,  "active", SettingsBindFlags.DEFAULT);
+         budgie_wm_settings.bind("button-style", combo_layouts,  "active-id", SettingsBindFlags.DEFAULT);
+-        budgie_wm_settings.bind("edge-tiling", switch_tiling,  "active", SettingsBindFlags.DEFAULT);
++        gnome_wm_settings.bind("edge-tiling", switch_tiling,  "active", SettingsBindFlags.DEFAULT);
+         budgie_wm_settings.bind("focus-mode", switch_focus, "active", SettingsBindFlags.DEFAULT);
+         budgie_wm_settings.bind("force-unredirect", switch_unredirect, "active", SettingsBindFlags.DEFAULT);
+     }
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/20_solus-project.budgie.wm.gschema.override
+===================================================================
+--- /dev/null
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/20_solus-project.budgie.wm.gschema.override
+@@ -0,0 +1,4 @@
++[org.gnome.mutter:Budgie]
++edge-tiling = true
++attach-modal-dialogs = true
++button-layout = 'appmenu:minimize,maximize,close'
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/background.vala
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/src/wm/background.vala
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/background.vala
+@@ -23,7 +23,7 @@ public const string GNOME_COLOR_HACK
+ public class BudgieBackground : Meta.BackgroundGroup
+ {
+
+-    public unowned Meta.Screen? screen { construct set ; public get; }
++    public unowned Meta.Display? display { construct set ; public get; }
+     public int index { construct set ; public get; }
+
+     private Settings? settings = null;
+@@ -52,9 +52,9 @@ public class BudgieBackground : Meta.Bac
+         return false;
+     }
+
+-    public BudgieBackground(Meta.Screen? screen, int index)
++    public BudgieBackground(Meta.Display? display, int index)
+     {
+-        Object(screen: screen, index: index);
++        Object(display: display, index: index);
+         Meta.Rectangle rect;
+
+         cache = Meta.BackgroundImageCache.get_default();
+@@ -62,7 +62,7 @@ public class BudgieBackground : Meta.Bac
+         settings = new Settings("org.gnome.desktop.background");
+         gnome_bg = new Gnome.BG();
+
+-        rect = screen.get_monitor_geometry(this.index);
++        rect = display.get_monitor_geometry(this.index);
+         this.set_position(rect.x, rect.y);
+         this.set_size(rect.width, rect.height);
+
+@@ -161,11 +161,11 @@ public class BudgieBackground : Meta.Bac
+         Clutter.Color? primary_color = Clutter.Color();
+         Clutter.Color? secondary_color = Clutter.Color();
+
+-        var actor = new Meta.BackgroundActor(screen, index);
+-        var background = new Meta.Background(screen);
++        var actor = new Meta.BackgroundActor(display, index);
++        var background = new Meta.Background(display);
+         actor.set_background(background);
+
+-        rect = screen.get_monitor_geometry(index);
++        rect = display.get_monitor_geometry(index);
+         actor.set_size(rect.width, rect.height);
+         actor.set("opacity", 0);
+         actor.show();
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/com.solus-project.budgie.wm.gschema.xml
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/src/wm/com.solus-project.budgie.wm.gschema.xml
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/com.solus-project.budgie.wm.gschema.xml
+@@ -7,18 +7,6 @@
+   </enum>
+
+   <schema path="/com/solus-project/budgie-wm/" id="com.solus-project.budgie-wm">
+-    <key type="b" name="edge-tiling">
+-      <default>true</default>
+-      <summary>Enable edge tiling when dropping windows on screen edges</summary>
+-      <description>This key overrides the key in org.gnome.mutter when running Budgie.</description>
+-    </key>
+-
+-    <key type="b" name="attach-modal-dialogs">
+-      <default>true</default>
+-      <summary>Attach modal dialog to the parent window</summary>
+-      <description>This key overrides the key in org.gnome.mutter when running Budgie.</description>
+-    </key>
+-
+     <key type="b" name="focus-mode">
+       <default>false</default>
+       <summary>Window focus mode to indicate how windows are activated</summary>
+@@ -49,21 +37,6 @@
+       <description>The binding to use to toggle Raven notifications</description>
+     </key>
+
+-    <key name="button-layout" type="s">
+-      <default>'appmenu:minimize,maximize,close'</default>
+-      <summary>Arrangement of buttons on the titlebar</summary>
+-      <description>
+-        Arrangement of buttons on the titlebar. The value should be a string,
+-        such as  "menu:minimize,maximize,spacer,close"; the colon separates
+-        the  left corner of the window from the right corner, and  the button
+-        names are comma-separated. Duplicate buttons are not allowed. Unknown
+-        button names are silently ignored so that buttons can be added in
+-        future metacity versions  without breaking older versions. A special
+-        spacer tag can be used to insert some space between
+-        two adjacent buttons.
+-      </description>
+-    </key>
+-
+     <key enum="com.solus-project.budgie-wm.ButtonPosition" name="button-style">
+       <default>'traditional'</default>
+       <summary>Button layout style</summary>
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/keyboard.vala
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/src/wm/keyboard.vala
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/keyboard.vala
+@@ -103,9 +103,9 @@ public class KeyboardManager : GLib.Obje
+         on_settings_changed("sources");
+     }
+
+-	public delegate void KeyHandlerFunc (Meta.Display display, Meta.Screen screen, Meta.Window? window, Clutter.KeyEvent? event, Meta.KeyBinding binding);
++	public delegate void KeyHandlerFunc (Meta.Display display, Meta.Window? window, Clutter.KeyEvent? event, Meta.KeyBinding binding);
+
+-    void switch_input_source(Meta.Display display, Meta.Screen screen,
++    void switch_input_source(Meta.Display display,
+                              Meta.Window? window, Clutter.KeyEvent? event,
+                              Meta.KeyBinding binding)
+     {
+@@ -115,7 +115,7 @@ public class KeyboardManager : GLib.Obje
+         this.apply_ibus();
+     }
+
+-    void switch_input_source_backward(Meta.Display display, Meta.Screen screen,
++    void switch_input_source_backward(Meta.Display display,
+                                       Meta.Window? window, Clutter.KeyEvent? event,
+                                       Meta.KeyBinding binding)
+     {
+@@ -127,8 +127,7 @@ public class KeyboardManager : GLib.Obje
+
+     public void hook_extra()
+     {
+-        var screen = wm.get_screen();
+-        var display = screen.get_display();
++        var display = wm.get_display();
+
+         /* Hook into GNOME defaults */
+         var schema = new Settings("org.gnome.desktop.wm.keybindings");
+@@ -303,7 +302,7 @@ public class KeyboardManager : GLib.Obje
+         if (!is_keyboard_held) {
+             return;
+         }
+-        wm.get_screen().get_display().ungrab_keyboard(wm.get_screen().get_display().get_current_time());
++        wm.get_display().ungrab_keyboard(wm.get_display().get_current_time());
+         is_keyboard_held = false;
+     }
+
+@@ -315,7 +314,7 @@ public class KeyboardManager : GLib.Obje
+         if (is_keyboard_held) {
+             return;
+         }
+-        wm.get_screen().get_display().freeze_keyboard(wm.get_screen().get_display().get_current_time());
++        wm.get_display().freeze_keyboard(wm.get_display().get_current_time());
+         is_keyboard_held = true;
+     }
+ }
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/meson.build
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/src/wm/meson.build
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/meson.build
+@@ -15,34 +15,8 @@ budgie_wm_sources = [
+     'wm.vala',
+ ]
+
+-vapi_mutter = 'libmutter'
+-dep_mutter = dependency('libmutter', version: gnome_minimum_version, required: false)
+-
+-if not dep_mutter.found()
+-    dep_mutter = dependency('libmutter-0', version: gnome_minimum_version, required: false)
+-    if dep_mutter.found()
+-        message('Using stable libmutter-0 ABI from GNOME 3.24')
+-        vapi_mutter = 'libmutter-0'
+-    endif
+-endif
+-
+-# now try libmutter-1 ...
+-if not dep_mutter.found()
+-    dep_mutter = dependency('libmutter-1', version: gnome_minimum_version, required: false)
+-    if dep_mutter.found()
+-        message('Using new libmutter-1 ABI from GNOME 3.26')
+-        vapi_mutter = 'libmutter-1'
+-    endif
+-endif
+-
+-# now try libmutter-2 ...
+-if not dep_mutter.found()
+-    dep_mutter = dependency('libmutter-2', version: gnome_minimum_version)
+-    if dep_mutter.found()
+-        message('Using new libmutter-2 ABI from GNOME 3.28')
+-        vapi_mutter = 'libmutter-2'
+-    endif
+-endif
++vapi_mutter = 'libmutter-3'
++dep_mutter = dependency('libmutter-3', version: gnome_minimum_version)
+
+ budgie_wm_deps = [
+     link_libconfig,
+@@ -84,6 +58,7 @@ executable(
+
+ # gschemas
+ install_data(
+-    'com.solus-project.budgie.wm.gschema.xml',
++    files('com.solus-project.budgie.wm.gschema.xml',
++          '20_solus-project.budgie.wm.gschema.override'),
+     install_dir: join_paths(datadir, 'glib-2.0', 'schemas'),
+ )
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/shim.vala
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/src/wm/shim.vala
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/shim.vala
+@@ -150,7 +150,7 @@ public class ShellShim : GLib.Object
+         grabs = new HashTable<uint,string>(direct_hash, direct_equal);
+         watches = new HashTable<string,uint>(str_hash, str_equal);
+
+-        display = wm.get_screen().get_display();
++        display = wm.get_display();
+         display.accelerator_activated.connect(on_accelerator_activated);
+
+         handler = new SessionHandler();
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/wm.vala
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/src/wm/wm.vala
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/src/wm/wm.vala
+@@ -155,7 +155,7 @@ public class BudgieWM : Meta.Plugin
+     private bool force_unredirect = false;
+
+     HashTable<Meta.WindowActor?,AnimationState?> state_map;
+-    Clutter.Actor? screen_group;
++    Clutter.Actor? display_group;
+     ulong current_window_resize;
+
+     construct
+@@ -288,7 +288,7 @@ public class BudgieWM : Meta.Plugin
+     }
+
+     /* Binding for clear-notifications activated */
+-    void on_raven_notification_clear(Meta.Display display, Meta.Screen screen,
++    void on_raven_notification_clear(Meta.Display display,
+                                       Meta.Window? window, Clutter.KeyEvent? event,
+                                       Meta.KeyBinding binding)
+     {
+@@ -304,7 +304,7 @@ public class BudgieWM : Meta.Plugin
+     }
+
+     /* Binding for toggle-raven activated */
+-    void on_raven_main_toggle(Meta.Display display, Meta.Screen screen,
++    void on_raven_main_toggle(Meta.Display display,
+                               Meta.Window? window, Clutter.KeyEvent? event,
+                               Meta.KeyBinding binding)
+     {
+@@ -320,7 +320,7 @@ public class BudgieWM : Meta.Plugin
+     }
+
+     /* Binding for toggle-notifications activated */
+-    void on_raven_notification_toggle(Meta.Display display, Meta.Screen screen,
++    void on_raven_notification_toggle(Meta.Display display,
+                                       Meta.Window? window, Clutter.KeyEvent? event,
+                                       Meta.KeyBinding binding)
+     {
+@@ -369,14 +369,14 @@ public class BudgieWM : Meta.Plugin
+     }
+
+
+-    void launch_menu(Meta.Display display, Meta.Screen screen,
++    void launch_menu(Meta.Display display,
+                      Meta.Window? window, Clutter.KeyEvent? event,
+                      Meta.KeyBinding binding)
+     {
+         on_overlay_key();
+     }
+
+-    void launch_rundialog(Meta.Display display, Meta.Screen screen,
++    void launch_rundialog(Meta.Display display,
+                             Meta.Window? window, Clutter.KeyEvent? event,
+                             Meta.KeyBinding binding)
+     {
+@@ -430,18 +430,12 @@ public class BudgieWM : Meta.Plugin
+
+     public override void start()
+     {
+-        var screen = this.get_screen();
+-        screen_group = Meta.Compositor.get_window_group_for_screen(screen);
+-        var stage = Meta.Compositor.get_stage_for_screen(screen);
+-
+-        var display = screen.get_display();
++        var display = this.get_display();
++        display_group = Meta.Compositor.get_window_group_for_display(display);
++        var stage = Meta.Compositor.get_stage_for_display(display);
+
+         state_map = new HashTable<Meta.WindowActor?,AnimationState?>(GLib.direct_hash, GLib.direct_equal);
+
+-        Meta.Prefs.override_preference_schema(MUTTER_EDGE_TILING, WM_SCHEMA);
+-        Meta.Prefs.override_preference_schema(MUTTER_MODAL_ATTACH, WM_SCHEMA);
+-        Meta.Prefs.override_preference_schema(MUTTER_BUTTON_LAYOUT, WM_SCHEMA);
+-
+         iface_settings = new Settings("org.gnome.desktop.interface");
+         iface_settings.bind("enable-animations", this, "use-animations", SettingsBindFlags.DEFAULT);
+
+@@ -491,14 +485,15 @@ public class BudgieWM : Meta.Plugin
+
+         background_group = new Meta.BackgroundGroup();
+         background_group.set_reactive(true);
+-        screen_group.insert_child_below(background_group, null);
++        display_group.insert_child_below(background_group, null);
+         background_group.button_release_event.connect(on_background_click);
+
+-        screen.monitors_changed.connect(on_monitors_changed);
+-        on_monitors_changed(screen);
++	var monitor_manager = Meta.MonitorManager.get();
++        monitor_manager.monitors_changed.connect(on_monitors_changed);
++        on_monitors_changed();
+
+         background_group.show();
+-        screen_group.show();
++        display_group.show();
+         stage.show();
+
+         keyboard = new KeyboardManager(this);
+@@ -538,11 +533,11 @@ public class BudgieWM : Meta.Plugin
+             return;
+         }
+
+-        var screen = this.get_screen();
++        var display = this.get_display();
+         if (enab) {
+-            Meta.Util.enable_unredirect_for_screen(screen);
++            Meta.Compositor.enable_unredirect_for_display(display);
+         } else {
+-            Meta.Util.disable_unredirect_for_screen(screen);
++            Meta.Compositor.disable_unredirect_for_display(display);
+         }
+         this.force_unredirect = enab;
+     }
+@@ -576,12 +571,13 @@ public class BudgieWM : Meta.Plugin
+         }
+     }
+
+-    void on_monitors_changed(Meta.Screen? screen)
++    void on_monitors_changed()
+     {
++	var display = get_display();
+         background_group.destroy_all_children();
+
+-        for (int i = 0; i < screen.get_n_monitors(); i++) {
+-            var actor = new BudgieBackground(screen, i);
++        for (int i = 0; i < display.get_n_monitors(); i++) {
++            var actor = new BudgieBackground(display, i);
+             background_group.add_child(actor);
+         }
+     }
+@@ -646,7 +642,7 @@ public class BudgieWM : Meta.Plugin
+      */
+     public void store_focused()
+     {
+-        var workspace = get_screen().get_active_workspace();
++        var workspace = get_display().get_workspace_manager().get_active_workspace();
+         foreach (var window in workspace.list_windows()) {
+             if (window.has_focus()) {
+                 focused_window = window;
+@@ -663,7 +659,7 @@ public class BudgieWM : Meta.Plugin
+         if (focused_window == null) {
+             return;
+         }
+-        focused_window.focus(get_screen().get_display().get_current_time());
++        focused_window.focus(get_display().get_current_time());
+         focused_window = null;
+     }
+
+@@ -814,7 +810,7 @@ public class BudgieWM : Meta.Plugin
+         Meta.Rectangle target_rect = actor.get_meta_window().get_frame_rect();
+         Meta.Rectangle source_rect = info.old_rect;
+
+-        screen_group.add(actor_clone);
++        display_group.add(actor_clone);
+
+         actor.set_size(target_rect.width, target_rect.height);
+         actor_clone.set_size(source_rect.width, source_rect.height);
+@@ -1045,14 +1041,14 @@ public class BudgieWM : Meta.Plugin
+     /* Ported from old budgie-wm, in turn ported from Mutter's default plugin */
+     public override void show_tile_preview(Meta.Window window, Meta.Rectangle tile_rect, int tile_monitor_num)
+     {
+-        var screen = this.get_screen();
++        var display = this.get_display();
+
+         if (this.tile_preview == null) {
+             this.tile_preview = new ScreenTilePreview();
+             this.tile_preview.transitions_completed.connect(tile_preview_transition_complete);
+
+-            var screen_group = Meta.Compositor.get_window_group_for_screen(screen);
+-            screen_group.add_child(this.tile_preview);
++            var display_group = Meta.Compositor.get_window_group_for_display(display);
++            display_group.add_child(this.tile_preview);
+
+             default_tile_opacity = this.tile_preview.get_opacity();
+         }
+@@ -1160,13 +1156,13 @@ public class BudgieWM : Meta.Plugin
+
+     public const uint32 MAX_TAB_ELAPSE = 2000;
+
+-    public void switch_windows_backward(Meta.Display display, Meta.Screen screen,
++    public void switch_windows_backward(Meta.Display display,
+                      Meta.Window? window, Clutter.KeyEvent? event,
+                      Meta.KeyBinding binding)
+     {
+         uint32 cur_time = display.get_current_time();
+
+-        var workspace = screen.get_active_workspace();
++        var workspace = display.get_workspace_manager().get_active_workspace();
+
+         string? data = null;
+         if ((data = workspace.get_data("__flagged")) == null) {
+@@ -1193,13 +1189,13 @@ public class BudgieWM : Meta.Plugin
+         switch_switcher(true); /* true as in "yes, backward" */
+     }
+
+-    public void switch_windows(Meta.Display display, Meta.Screen screen,
++    public void switch_windows(Meta.Display display,
+                      Meta.Window? window, Clutter.KeyEvent? event,
+                      Meta.KeyBinding binding)
+     {
+         uint32 cur_time = display.get_current_time();
+
+-        var workspace = screen.get_active_workspace();
++        var workspace = display.get_workspace_manager().get_active_workspace();
+
+         string? data = null;
+         if ((data = workspace.get_data("__flagged")) == null) {
+@@ -1272,9 +1268,9 @@ public class BudgieWM : Meta.Plugin
+
+     void switch_workspace_done()
+     {
+-        var screen = this.get_screen();
++        var display = this.get_display();
+
+-        foreach (var actor in Meta.Compositor.get_window_actors(screen)) {
++        foreach (var actor in Meta.Compositor.get_window_actors(display)) {
+             actor.show();
+
+             Clutter.Actor? orig_parent = actor.get_data("orig-parent");
+@@ -1320,21 +1316,21 @@ public class BudgieWM : Meta.Plugin
+         out_group = new Clutter.Actor();
+         in_group = new Clutter.Actor();
+
+-        var screen = this.get_screen();
+-        var stage = Meta.Compositor.get_stage_for_screen(screen);
++        var display = this.get_display();
++        var stage = Meta.Compositor.get_stage_for_display(display);
+
+         stage.add_child(in_group);
+         stage.add_child(out_group);
+         stage.set_child_above_sibling(in_group, null);
+
+-        screen.get_size(out screen_width, out screen_height);
++        display.get_size(out screen_width, out screen_height);
+
+         /* TODO: Windows should slide "under" the panel/dock
+          * Move "in-between" workspaces, e.g. 1->3 shows 2 */
+
+
+-        foreach (var actor in Meta.Compositor.get_window_actors(screen)) {
+-            var window = actor.get_meta_window();
++        foreach (var actor in Meta.Compositor.get_window_actors(display)) {
++            var window = (actor as Meta.WindowActor).get_meta_window();
+
+             if (!window.showing_on_its_workspace() || window.is_on_all_workspaces()) {
+                 continue;
+@@ -1444,18 +1440,18 @@ public class BudgieWMDBUS : GLib.Object
+
+     public void RemoveWorkspaceByIndex(int index, uint32 time)
+     {
+-        unowned Meta.Screen screen = this.wm.get_screen();
+-        unowned Meta.Workspace? workspace = screen.get_workspace_by_index(index);
++        unowned Meta.WorkspaceManager wsm = this.wm.get_display().get_workspace_manager();
++        unowned Meta.Workspace? workspace = wsm.get_workspace_by_index(index);
+         if (workspace == null) {
+             return;
+         }
+-        screen.remove_workspace(workspace, time);
++        wsm.remove_workspace(workspace, time);
+     }
+
+     public int AppendNewWorkspace(uint32 time)
+     {
+-        unowned Meta.Screen screen = this.wm.get_screen();
+-        unowned Meta.Workspace? space = screen.append_new_workspace(false, time);
++        unowned Meta.WorkspaceManager wsm = this.wm.get_display().get_workspace_manager();
++        unowned Meta.Workspace? space = wsm.append_new_workspace(false, time);
+         return space.index();
+     }
+
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/Meta-3.metadata
+===================================================================
+--- /dev/null
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/Meta-3.metadata
+@@ -0,0 +1,66 @@
++Backend cheader_filename="meta/meta-backend.h"
++Background cheader_filename="meta/meta-background.h"
++BackgroundActor cheader_filename="meta/meta-background-actor.h"
++BackgroundGroup cheader_filename="meta/meta-background-group.h"
++BackgroundImageCache cheader_filename="meta/meta-background-image.h"
++Display cheader_filename="meta/display.h"
++Meta cheader_filename="meta/main.h"
++MonitorManager cheader_filename="meta/meta-monitor-manager.h"
++Rectangle struct
++Plugin cheader_filename="meta/meta-plugin.h"
++PluginInfo cheader_filename="meta/meta-plugin.h"
++prefs_* cheader_filename="meta/prefs.h" parent="Meta.Prefs"
++add_verbose_topic parent="Meta.Util" cheader_filename="meta/util.h"
++bug parent="Meta.Util" cheader_filename="meta/util.h"
++debug_spew_real parent="Meta.Util" cheader_filename="meta/util.h"
++empty_stage_input_region parent="Meta.Util" cheader_filename="meta/util.h"
++x11_error_trap_pop parent="Meta.Util" cheader_filename="meta/util.h"
++x11_error_trap_push parent="Meta.Util" cheader_filename="meta/util.h"
++x11_error_trap_pop_with_return parent="Meta.Util" cheader_filename="meta/util.h"
++external_binding_name_for_action parent="Meta.Util" cheader_filename="meta/util.h"
++free_gslist_and_elements parent="Meta.Util" cheader_filename="meta/util.h"
++g_utf8_strndup parent="Meta.Util" cheader_filename="meta/util.h"
++get_locale_direction parent="Meta.Util" cheader_filename="meta/util.h"
++get_overlay_window parent="Meta.Util" cheader_filename="meta/util.h"
++gravity_to_string parent="Meta.Util" cheader_filename="meta/util.h"
++is_debugging parent="Meta.Util" cheader_filename="meta/util.h"
++is_syncing parent="Meta.Util" cheader_filename="meta/util.h"
++is_verbose parent="Meta.Util" cheader_filename="meta/util.h"
++is_wayland_compositor parent="Meta.Util" cheader_filename="meta/util.h"
++later_add parent="Meta.Util" cheader_filename="meta/util.h"
++later_remove parent="Meta.Util" cheader_filename="meta/util.h"
++pop_no_msg_prefix parent="Meta.Util" cheader_filename="meta/util.h"
++push_no_msg_prefix parent="Meta.Util" cheader_filename="meta/util.h"
++rect parent="Meta.Util" cheader_filename="meta/util.h"
++remove_verbose_topic parent="Meta.Util" cheader_filename="meta/util.h"
++set_stage_input_region parent="Meta.Util" cheader_filename="meta/util.h"
++show_dialog parent="Meta.Util" cheader_filename="meta/util.h"
++topic_real parent="Meta.Util" cheader_filename="meta/util.h"
++unsigned_long_equal parent="Meta.Util" cheader_filename="meta/util.h"
++unsigned_long_hash parent="Meta.Util" cheader_filename="meta/util.h"
++verbose_real parent="Meta.Util" cheader_filename="meta/util.h"
++warning parent="Meta.Util" cheader_filename="meta/util.h"
++show_dialog parent="Meta.Util" cheader_filename="meta/util.h"
++get_stage_for_display parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++get_window_actors parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++get_window_group_for_display parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++get_top_window_group_for_display parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++get_feedback_group_for_display parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++disable_unredirect_for_display parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++enable_unredirect_for_display parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++set_stage_input_region parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++empty_stage_input_region parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++focus_stage_window parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++stage_is_focused parent="Meta.Compositor" cheader_filename="meta/compositor-mutter.h"
++keybindings_set_custom_handler parent="Meta.KeyBinding" name="set_custom_handler"
++KeyHandlerFunc.event type="Clutter.KeyEvent?"
++get_backend parent="Meta.Backend"
++Window.focus#signal skip=true
++Window.get_xwindow skip=false
++get_option_context skip=false
++set_gnome_wm_keybindings skip=false
++set_wm_name skip=false
++init skip=false
++run skip=false
++show_dialog skip=false
++get_backend cheader_filename="meta/meta-backend.h"
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/README.md
+===================================================================
+--- budgie-desktop-10.4+git20180806.01.933f78fc03d.orig/vapi/README.md
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/README.md
+@@ -7,3 +7,7 @@ To refresh the Polkit vapi files:
+     vapigen --library polkit-agent-1 /usr/share/gir-1.0/PolkitAgent-1.0.gir --pkg gio-unix-2.0 --pkg polkit-gobject-1 --girdir=. --vapidir=.
+
+ Then have fun un-mangling it to support vala async syntax
++
++For mutter, something like:
++
++vapigen --library libmutter-3 /usr/lib/x86_64-linux-gnu/mutter/Meta-3.gir --girdir /usr/lib/x86_64-linux-gnu/mutter/ -d . --pkg cairo --pkg gdk-3.0 --pkg gdk-pixbuf-2.0 --pkg gtk+-3.0 --pkg x11 --pkg json-glib-1.0 --girdir . --vapidir . --metadatadir . --girdir /usr/lib/x86_64-linux-gnu/mutter/
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/libmutter-3-custom.vala
+===================================================================
+--- /dev/null
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/libmutter-3-custom.vala
+@@ -0,0 +1,6 @@
++namespace Meta {
++	public abstract class MonitorManager : Meta.DBusDisplayConfigSkeleton, GLib.DBusInterface {
++		/* not exported */
++		public signal void monitors_changed ();
++	}
++}
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/libmutter-3.deps
+===================================================================
+--- /dev/null
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/libmutter-3.deps
+@@ -0,0 +1,9 @@
++cairo
++gsettings-desktop-schemas
++gdk-3.0
++gdk-pixbuf-2.0
++gtk+-3.0
++x11
++xfixes-4.0
++clutter-1.0
++cogl-1.0
+Index: budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/libmutter-3.vapi
+===================================================================
+--- /dev/null
++++ budgie-desktop-10.4+git20180806.01.933f78fc03d/vapi/libmutter-3.vapi
+@@ -0,0 +1,1380 @@
++/* libmutter-3.vapi generated by vapigen, do not modify. */
++
++[CCode (cprefix = "Meta", gir_namespace = "Meta", gir_version = "3", lower_case_cprefix = "meta_")]
++namespace Meta {
++	namespace Compositor {
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_disable_unredirect_for_display")]
++		public static void disable_unredirect_for_display (Meta.Display display);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_empty_stage_input_region")]
++		public static void empty_stage_input_region (Meta.Display display);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_enable_unredirect_for_display")]
++		public static void enable_unredirect_for_display (Meta.Display display);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_focus_stage_window")]
++		public static void focus_stage_window (Meta.Display display, uint32 timestamp);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_get_feedback_group_for_display")]
++		public static unowned Clutter.Actor get_feedback_group_for_display (Meta.Display display);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_get_stage_for_display")]
++		public static unowned Clutter.Actor get_stage_for_display (Meta.Display display);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_get_top_window_group_for_display")]
++		public static unowned Clutter.Actor get_top_window_group_for_display (Meta.Display display);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_get_window_actors")]
++		public static unowned GLib.List<Clutter.Actor> get_window_actors (Meta.Display display);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_get_window_group_for_display")]
++		public static unowned Clutter.Actor get_window_group_for_display (Meta.Display display);
++		[CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_set_stage_input_region")]
++		public static void set_stage_input_region (Meta.Display display, X.XserverRegion region);
++	}
++	namespace Prefs {
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_bell_is_audible")]
++		public static bool prefs_bell_is_audible ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_change_workspace_name")]
++		public static void prefs_change_workspace_name (int i, string name);
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_action_double_click_titlebar")]
++		public static GDesktop.TitlebarAction prefs_get_action_double_click_titlebar ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_action_middle_click_titlebar")]
++		public static GDesktop.TitlebarAction prefs_get_action_middle_click_titlebar ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_action_right_click_titlebar")]
++		public static GDesktop.TitlebarAction prefs_get_action_right_click_titlebar ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_attach_modal_dialogs")]
++		public static bool prefs_get_attach_modal_dialogs ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_auto_maximize")]
++		public static bool prefs_get_auto_maximize ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_auto_raise")]
++		public static bool prefs_get_auto_raise ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_auto_raise_delay")]
++		public static int prefs_get_auto_raise_delay ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_button_layout")]
++		public static Meta.ButtonLayout prefs_get_button_layout ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_center_new_windows")]
++		public static bool prefs_get_center_new_windows ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_compositing_manager")]
++		public static bool prefs_get_compositing_manager ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_cursor_size")]
++		public static int prefs_get_cursor_size ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_cursor_theme")]
++		public static unowned string prefs_get_cursor_theme ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_disable_workarounds")]
++		public static bool prefs_get_disable_workarounds ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_drag_threshold")]
++		public static int prefs_get_drag_threshold ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_draggable_border_width")]
++		public static int prefs_get_draggable_border_width ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_dynamic_workspaces")]
++		public static bool prefs_get_dynamic_workspaces ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_edge_tiling")]
++		public static bool prefs_get_edge_tiling ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_focus_change_on_pointer_rest")]
++		public static bool prefs_get_focus_change_on_pointer_rest ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_focus_mode")]
++		public static GDesktop.FocusMode prefs_get_focus_mode ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_focus_new_windows")]
++		public static GDesktop.FocusNewWindows prefs_get_focus_new_windows ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_force_fullscreen")]
++		public static bool prefs_get_force_fullscreen ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_gnome_accessibility")]
++		public static bool prefs_get_gnome_accessibility ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_gnome_animations")]
++		public static bool prefs_get_gnome_animations ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_ignore_request_hide_titlebar")]
++		public static bool prefs_get_ignore_request_hide_titlebar ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_keybinding_action")]
++		public static Meta.KeyBindingAction prefs_get_keybinding_action (string name);
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_mouse_button_menu")]
++		public static int prefs_get_mouse_button_menu ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_mouse_button_mods")]
++		public static Meta.VirtualModifier prefs_get_mouse_button_mods ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_mouse_button_resize")]
++		public static int prefs_get_mouse_button_resize ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_num_workspaces")]
++		public static int prefs_get_num_workspaces ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_raise_on_click")]
++		public static bool prefs_get_raise_on_click ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_show_fallback_app_menu")]
++		public static bool prefs_get_show_fallback_app_menu ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_titlebar_font")]
++		public static unowned Pango.FontDescription prefs_get_titlebar_font ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_visual_bell")]
++		public static bool prefs_get_visual_bell ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_visual_bell_type")]
++		public static GDesktop.VisualBellType prefs_get_visual_bell_type ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_workspace_name")]
++		public static unowned string prefs_get_workspace_name (int i);
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_get_workspaces_only_on_primary")]
++		public static bool prefs_get_workspaces_only_on_primary ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_init")]
++		public static void prefs_init ();
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_set_force_fullscreen")]
++		public static void prefs_set_force_fullscreen (bool whether);
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_set_ignore_request_hide_titlebar")]
++		public static void prefs_set_ignore_request_hide_titlebar (bool whether);
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_set_num_workspaces")]
++		public static void prefs_set_num_workspaces (int n_workspaces);
++		[CCode (cheader_filename = "meta/prefs.h", cname = "meta_prefs_set_show_fallback_app_menu")]
++		public static void prefs_set_show_fallback_app_menu (bool whether);
++	}
++	namespace Util {
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_add_verbose_topic")]
++		public static void add_verbose_topic (Meta.DebugTopic topic);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_external_binding_name_for_action")]
++		public static string external_binding_name_for_action (uint keybinding_action);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_g_utf8_strndup")]
++		public static string g_utf8_strndup (string src, size_t n);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_get_locale_direction")]
++		public static Meta.LocaleDirection get_locale_direction ();
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_gravity_to_string")]
++		public static unowned string gravity_to_string (int gravity);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_is_debugging")]
++		public static bool is_debugging ();
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_is_syncing")]
++		public static bool is_syncing ();
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_is_verbose")]
++		public static bool is_verbose ();
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_is_wayland_compositor")]
++		public static bool is_wayland_compositor ();
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_later_add")]
++		public static uint later_add (Meta.LaterType when, owned GLib.SourceFunc func);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_later_remove")]
++		public static void later_remove (uint later_id);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_pop_no_msg_prefix")]
++		public static void pop_no_msg_prefix ();
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_push_no_msg_prefix")]
++		public static void push_no_msg_prefix ();
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_rect")]
++		public static Meta.Rectangle? rect (int x, int y, int width, int height);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_remove_verbose_topic")]
++		public static void remove_verbose_topic (Meta.DebugTopic topic);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_show_dialog")]
++		public static GLib.Pid show_dialog (string type, string message, string timeout, string display, string ok_text, string cancel_text, string icon_name, int transient_for, GLib.SList<void*> columns, GLib.SList<void*> entries);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_unsigned_long_equal")]
++		public static int unsigned_long_equal (void* v1, void* v2);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_unsigned_long_hash")]
++		public static uint unsigned_long_hash (void* v);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_x11_error_trap_pop")]
++		public static void x11_error_trap_pop (Meta.X11Display x11_display);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_x11_error_trap_pop_with_return")]
++		public static int x11_error_trap_pop_with_return (Meta.X11Display x11_display);
++		[CCode (cheader_filename = "meta/util.h", cname = "meta_x11_error_trap_push")]
++		public static void x11_error_trap_push (Meta.X11Display x11_display);
++	}
++	[CCode (cheader_filename = "meta/meta-backend.h", type_id = "meta_backend_get_type ()")]
++	public abstract class Backend : GLib.Object, GLib.Initable {
++		[CCode (has_construct_function = false)]
++		protected Backend ();
++		[CCode (cheader_filename = "meta/meta-backend.h", cname = "meta_get_backend")]
++		public static unowned Meta.Backend get_backend ();
++		public unowned Meta.Dnd get_dnd ();
++		public unowned Meta.RemoteAccessController get_remote_access_controller ();
++		public unowned Clutter.Actor get_stage ();
++		public void lock_layout_group (uint idx);
++		public void set_keymap (string layouts, string variants, string options);
++		public void set_numlock (bool numlock_state);
++		public signal void keymap_changed ();
++		public signal void keymap_layout_group_changed (uint object);
++		public signal void last_device_changed (int object);
++		public signal void lid_is_closed_changed (bool object);
++	}
++	[CCode (cheader_filename = "meta/meta-background.h", type_id = "meta_background_get_type ()")]
++	public class Background : GLib.Object {
++		[CCode (has_construct_function = false)]
++		public Background (Meta.Display display);
++		public static void refresh_all ();
++		public void set_blend (GLib.File file1, GLib.File file2, double blend_factor, GDesktop.BackgroundStyle style);
++		public void set_color (Clutter.Color color);
++		public void set_file (GLib.File file, GDesktop.BackgroundStyle style);
++		public void set_gradient (GDesktop.BackgroundShading shading_direction, Clutter.Color color, Clutter.Color second_color);
++		[NoAccessorMethod]
++		public Meta.Display meta_display { owned get; construct; }
++		public signal void changed ();
++	}
++	[CCode (cheader_filename = "meta/meta-background-actor.h", type_id = "meta_background_actor_get_type ()")]
++	public class BackgroundActor : Clutter.Actor, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
++		[CCode (has_construct_function = false, type = "ClutterActor*")]
++		public BackgroundActor (Meta.Display display, int monitor);
++		public void set_background (Meta.Background background);
++		public void set_gradient (bool enabled, int height, double tone_start);
++		public void set_monitor (int monitor);
++		public void set_vignette (bool enabled, double brightness, double sharpness);
++		[NoAccessorMethod]
++		public Meta.Background background { owned get; set; }
++		[NoAccessorMethod]
++		public double brightness { get; set; }
++		[NoAccessorMethod]
++		public bool gradient { get; set; }
++		[NoAccessorMethod]
++		public int gradient_height { get; set; }
++		[NoAccessorMethod]
++		public double gradient_max_darkness { get; set; }
++		[NoAccessorMethod]
++		public Meta.Display meta_display { owned get; construct; }
++		[NoAccessorMethod]
++		public int monitor { get; construct; }
++		[NoAccessorMethod]
++		public bool vignette { get; set; }
++		[NoAccessorMethod]
++		public double vignette_sharpness { get; set; }
++	}
++	[CCode (cheader_filename = "meta/meta-background-group.h", type_id = "meta_background_group_get_type ()")]
++	public class BackgroundGroup : Clutter.Actor, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
++		[CCode (has_construct_function = false, type = "ClutterActor*")]
++		public BackgroundGroup ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_background_image_get_type ()")]
++	public class BackgroundImage : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected BackgroundImage ();
++		public bool get_success ();
++		public unowned Cogl.Texture get_texture ();
++		public bool is_loaded ();
++		public signal void loaded ();
++	}
++	[CCode (cheader_filename = "meta/meta-background-image.h", type_id = "meta_background_image_cache_get_type ()")]
++	public class BackgroundImageCache : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected BackgroundImageCache ();
++		public static unowned Meta.BackgroundImageCache get_default ();
++		public Meta.BackgroundImage load (GLib.File file);
++		public void purge (GLib.File file);
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_barrier_get_type ()")]
++	public class Barrier : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected Barrier ();
++		public void destroy ();
++		public bool is_active ();
++		public void release (Meta.BarrierEvent event);
++		[NoAccessorMethod]
++		public Meta.BarrierDirection directions { get; construct; }
++		[NoAccessorMethod]
++		public Meta.Display display { owned get; construct; }
++		[NoAccessorMethod]
++		public int x1 { get; construct; }
++		[NoAccessorMethod]
++		public int x2 { get; construct; }
++		[NoAccessorMethod]
++		public int y1 { get; construct; }
++		[NoAccessorMethod]
++		public int y2 { get; construct; }
++		public signal void hit (Meta.BarrierEvent event);
++		public signal void left (Meta.BarrierEvent event);
++	}
++	[CCode (cheader_filename = "meta/main.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "meta_barrier_event_get_type ()")]
++	[Compact]
++	public class BarrierEvent {
++		public int dt;
++		public double dx;
++		public double dy;
++		public int event_id;
++		public bool grabbed;
++		public bool released;
++		public uint32 time;
++		public double x;
++		public double y;
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_cursor_tracker_get_type ()")]
++	public class CursorTracker : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected CursorTracker ();
++		public static unowned Meta.CursorTracker get_for_display (Meta.Display display);
++		public void get_hot (out int x, out int y);
++		public void get_pointer (int x, int y, Clutter.ModifierType mods);
++		public unowned Cogl.Texture get_sprite ();
++		public void set_pointer_visible (bool visible);
++		public signal void cursor_changed ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_dbus_display_config_skeleton_get_type ()")]
++	public class DBusDisplayConfigSkeleton : GLib.DBusInterfaceSkeleton, GLib.DBusInterface {
++		[CCode (has_construct_function = false)]
++		protected DBusDisplayConfigSkeleton ();
++	}
++	[CCode (cheader_filename = "meta/display.h", type_id = "meta_display_get_type ()")]
++	public class Display : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected Display ();
++		public void add_ignored_crossing_serial (ulong serial);
++		public uint add_keybinding (string name, GLib.Settings settings, Meta.KeyBindingFlags flags, owned Meta.KeyHandlerFunc handler);
++		public bool begin_grab_op (Meta.Window window, Meta.GrabOp op, bool pointer_already_grabbed, bool frame_action, int button, ulong modmask, uint32 timestamp, int root_x, int root_y);
++		public void clear_mouse_mode ();
++		public void close (uint32 timestamp);
++		public void end_grab_op (uint32 timestamp);
++		public void focus_default_window (uint32 timestamp);
++		public void freeze_keyboard (uint32 timestamp);
++		public int get_current_monitor ();
++		public uint32 get_current_time ();
++		public uint32 get_current_time_roundtrip ();
++		public unowned Meta.Window get_focus_window ();
++		public Meta.GrabOp get_grab_op ();
++		public uint get_keybinding_action (uint keycode, ulong mask);
++		public uint32 get_last_user_time ();
++		public Meta.Rectangle get_monitor_geometry (int monitor);
++		public bool get_monitor_in_fullscreen (int monitor);
++		public int get_monitor_index_for_rect (Meta.Rectangle rect);
++		public int get_monitor_neighbor_index (int which_monitor, Meta.DisplayDirection dir);
++		public int get_n_monitors ();
++		public string get_pad_action_label (Clutter.InputDevice pad, Meta.PadActionType action_type, uint action_number);
++		public int get_primary_monitor ();
++		public void get_size (out int width, out int height);
++		public unowned Meta.Window get_tab_current (Meta.TabList type, Meta.Workspace workspace);
++		public GLib.List<weak Meta.Window> get_tab_list (Meta.TabList type, Meta.Workspace? workspace);
++		public unowned Meta.Window get_tab_next (Meta.TabList type, Meta.Workspace workspace, Meta.Window? window, bool backward);
++		public unowned Meta.WorkspaceManager get_workspace_manager ();
++		public uint grab_accelerator (string accelerator);
++		public bool is_pointer_emulating_sequence (Clutter.EventSequence? sequence);
++		public bool remove_keybinding (string name);
++		public void request_pad_osd (Clutter.InputDevice pad, bool edition_mode);
++		public void set_cursor (Meta.Cursor cursor);
++		public GLib.SList<weak Meta.Window> sort_windows_by_stacking (GLib.SList<Meta.Window> windows);
++		public bool supports_extended_barriers ();
++		public void unfreeze_keyboard (uint32 timestamp);
++		public bool ungrab_accelerator (uint action_id);
++		public void ungrab_keyboard (uint32 timestamp);
++		public bool xserver_time_is_before (uint32 time1, uint32 time2);
++		public Meta.Window focus_window { get; }
++		public signal void accelerator_activated (uint object, uint p0, uint p1);
++		public signal void cursor_updated ();
++		public signal void gl_video_memory_purged ();
++		public signal void grab_op_begin (Meta.Display object, Meta.Window p0, Meta.GrabOp p1);
++		public signal void grab_op_end (Meta.Display object, Meta.Window p0, Meta.GrabOp p1);
++		public signal void in_fullscreen_changed ();
++		public signal bool modifiers_accelerator_activated ();
++		public signal void overlay_key ();
++		public signal void pad_mode_switch (Clutter.InputDevice object, uint p0, uint p1);
++		public signal void restacked ();
++		public signal bool restart ();
++		public signal void show_osd (int object, string p0, string p1);
++		public signal unowned Clutter.Actor? show_pad_osd (Clutter.InputDevice pad, GLib.Settings settings, string layout_path, bool edition_mode, int monitor_idx);
++		public signal bool show_resize_popup (bool object, Meta.Rectangle p0, int p1, int p2);
++		public signal bool show_restart_message (string? message);
++		public signal void showing_desktop_changed ();
++		public signal void startup_sequence_changed (void* object);
++		public signal void window_created (Meta.Window object);
++		public signal void window_demands_attention (Meta.Window object);
++		public signal void window_entered_monitor (int object, Meta.Window p0);
++		public signal void window_left_monitor (int object, Meta.Window p0);
++		public signal void window_marked_urgent (Meta.Window object);
++		public signal void workareas_changed ();
++		public signal void x11_display_closing ();
++		public signal void x11_display_opened ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_dnd_get_type ()")]
++	public class Dnd : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected Dnd ();
++		public signal void dnd_enter ();
++		public signal void dnd_leave ();
++		public signal void dnd_position_change (int object, int p0);
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[Compact]
++	public class Frame {
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_idle_monitor_get_type ()")]
++	public class IdleMonitor : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected IdleMonitor ();
++		public uint add_idle_watch (uint64 interval_msec, owned Meta.IdleMonitorWatchFunc? callback);
++		public uint add_user_active_watch (owned Meta.IdleMonitorWatchFunc? callback);
++		public static unowned Meta.IdleMonitor get_core ();
++		public static unowned Meta.IdleMonitor get_for_device (int device_id);
++		public int64 get_idletime ();
++		public void remove_watch (uint id);
++		[NoAccessorMethod]
++		public int device_id { get; construct; }
++	}
++	[CCode (cheader_filename = "meta/main.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "meta_key_binding_get_type ()")]
++	[Compact]
++	public class KeyBinding {
++		public uint get_mask ();
++		public Meta.VirtualModifier get_modifiers ();
++		public unowned string get_name ();
++		public bool is_builtin ();
++		public bool is_reversed ();
++		[CCode (cname = "meta_keybindings_set_custom_handler")]
++		public static bool set_custom_handler (string name, owned Meta.KeyHandlerFunc? handler);
++	}
++	[CCode (cheader_filename = "meta/meta-monitor-manager.h", type_id = "meta_monitor_manager_get_type ()")]
++	public abstract class MonitorManager : Meta.DBusDisplayConfigSkeleton, GLib.DBusInterface, GLib.DBusInterface {
++		[CCode (has_construct_function = false)]
++		protected MonitorManager ();
++		public bool can_switch_config ();
++		public static unowned Meta.MonitorManager @get ();
++		public static int get_display_configuration_timeout ();
++		public bool get_is_builtin_display_on ();
++		public int get_monitor_for_connector (string connector);
++		public Meta.MonitorSwitchConfigType get_switch_config ();
++		public void switch_config (Meta.MonitorSwitchConfigType config_type);
++		[NoAccessorMethod]
++		public Meta.Backend backend { owned get; construct; }
++		public signal void confirm_display_change ();
++		public signal void monitors_changed ();
++		public signal void monitors_changed_internal ();
++	}
++	[CCode (cheader_filename = "meta/meta-plugin.h", type_id = "meta_plugin_get_type ()")]
++	public abstract class Plugin : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected Plugin ();
++		public bool begin_modal (Meta.ModalOptions options, uint32 timestamp);
++		public void complete_display_change (bool ok);
++		[NoWrapper]
++		public virtual void confirm_display_change ();
++		[NoWrapper]
++		public virtual void destroy (Meta.WindowActor actor);
++		public void destroy_completed (Meta.WindowActor actor);
++		public void end_modal (uint32 timestamp);
++		public unowned Meta.Display get_display ();
++		public unowned Meta.PluginInfo? get_info ();
++		[NoWrapper]
++		public virtual void hide_tile_preview ();
++		[NoWrapper]
++		public virtual bool keybinding_filter (Meta.KeyBinding binding);
++		[NoWrapper]
++		public virtual void kill_switch_workspace ();
++		[NoWrapper]
++		public virtual void kill_window_effects (Meta.WindowActor actor);
++		public static void manager_set_plugin_type (GLib.Type gtype);
++		[NoWrapper]
++		public virtual void map (Meta.WindowActor actor);
++		public void map_completed (Meta.WindowActor actor);
++		[NoWrapper]
++		public virtual void minimize (Meta.WindowActor actor);
++		public void minimize_completed (Meta.WindowActor actor);
++		[NoWrapper]
++		public virtual unowned Meta.PluginInfo? plugin_info ();
++		[NoWrapper]
++		public virtual void show_tile_preview (Meta.Window window, Meta.Rectangle tile_rect, int tile_monitor_number);
++		[NoWrapper]
++		public virtual void show_window_menu (Meta.Window window, Meta.WindowMenuType menu, int x, int y);
++		[NoWrapper]
++		public virtual void show_window_menu_for_rect (Meta.Window window, Meta.WindowMenuType menu, Meta.Rectangle rect);
++		[NoWrapper]
++		public virtual void size_change (Meta.WindowActor actor, Meta.SizeChange which_change, Meta.Rectangle old_frame_rect, Meta.Rectangle old_buffer_rect);
++		public void size_change_completed (Meta.WindowActor actor);
++		[NoWrapper]
++		public virtual void size_changed (Meta.WindowActor actor);
++		[NoWrapper]
++		public virtual void start ();
++		[NoWrapper]
++		public virtual void switch_workspace (int from, int to, Meta.MotionDirection direction);
++		public void switch_workspace_completed ();
++		[NoWrapper]
++		public virtual void unminimize (Meta.WindowActor actor);
++		public void unminimize_completed (Meta.WindowActor actor);
++		[NoWrapper]
++		public virtual bool xevent_filter (X.Event event);
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_remote_access_controller_get_type ()")]
++	public class RemoteAccessController : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected RemoteAccessController ();
++		public signal void new_handle (Meta.RemoteAccessHandle object);
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_remote_access_handle_get_type ()")]
++	public class RemoteAccessHandle : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected RemoteAccessHandle ();
++		public virtual void stop ();
++		public signal void stopped ();
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[Compact]
++	public class Settings {
++		public int get_font_dpi ();
++		public int get_ui_scaling_factor ();
++	}
++	[CCode (cheader_filename = "meta/main.h", ref_function = "meta_shadow_ref", type_id = "meta_shadow_get_type ()", unref_function = "meta_shadow_unref")]
++	[Compact]
++	public class Shadow {
++		public void get_bounds (int window_x, int window_y, int window_width, int window_height, Cairo.RectangleInt bounds);
++		public void paint (int window_x, int window_y, int window_width, int window_height, uint8 opacity, Cairo.Region? clip, bool clip_strictly);
++		public Meta.Shadow @ref ();
++		public void unref ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_shadow_factory_get_type ()")]
++	public class ShadowFactory : GLib.Object {
++		[CCode (has_construct_function = false)]
++		public ShadowFactory ();
++		public static unowned Meta.ShadowFactory get_default ();
++		public Meta.ShadowParams get_params (string class_name, bool focused);
++		public Meta.Shadow get_shadow (Meta.WindowShape shape, int width, int height, string class_name, bool focused);
++		public void set_params (string class_name, bool focused, Meta.ShadowParams @params);
++		public signal void changed ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_shaped_texture_get_type ()")]
++	public class ShapedTexture : Clutter.Actor, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
++		[CCode (has_construct_function = false)]
++		protected ShapedTexture ();
++		public Cairo.Surface get_image (Cairo.RectangleInt clip);
++		public unowned Cogl.Texture get_texture ();
++		public void set_create_mipmaps (bool create_mipmaps);
++		public void set_mask_texture (Cogl.Texture mask_texture);
++		public void set_opaque_region (owned Cairo.Region opaque_region);
++		public bool update_area (int x, int y, int width, int height);
++		public signal void size_changed ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_stage_get_type ()")]
++	public class Stage : Clutter.Stage, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
++		[CCode (has_construct_function = false)]
++		protected Stage ();
++		public static bool is_focused (Meta.Display display);
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[Compact]
++	public class Theme {
++		public void free ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_window_get_type ()")]
++	public abstract class Window : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected Window ();
++		public void activate (uint32 current_time);
++		public void activate_with_workspace (uint32 current_time, Meta.Workspace workspace);
++		public bool allows_move ();
++		public bool allows_resize ();
++		public void begin_grab_op (Meta.GrabOp op, bool frame_action, uint32 timestamp);
++		public bool can_close ();
++		public bool can_maximize ();
++		public bool can_minimize ();
++		public bool can_shade ();
++		public void change_workspace (Meta.Workspace workspace);
++		public void change_workspace_by_index (int space_index, bool append);
++		public void check_alive (uint32 timestamp);
++		public Meta.Rectangle client_rect_to_frame_rect (Meta.Rectangle client_rect);
++		public void compute_group ();
++		public void @delete (uint32 timestamp);
++		public unowned Meta.Window find_root_ancestor ();
++		public void focus (uint32 timestamp);
++		public void foreach_ancestor (Meta.WindowForeachFunc func);
++		public void foreach_transient (Meta.WindowForeachFunc func);
++		public Meta.Rectangle frame_rect_to_client_rect (Meta.Rectangle frame_rect);
++		public Meta.Rectangle get_buffer_rect ();
++		public unowned string get_client_machine ();
++		public unowned GLib.Object get_compositor_private ();
++		public unowned string get_description ();
++		public unowned Meta.Display get_display ();
++		public unowned Cairo.Region? get_frame_bounds ();
++		public Meta.Rectangle get_frame_rect ();
++		public Meta.FrameType get_frame_type ();
++		public unowned string get_gtk_app_menu_object_path ();
++		public unowned string get_gtk_application_id ();
++		public unowned string get_gtk_application_object_path ();
++		public unowned string get_gtk_menubar_object_path ();
++		public unowned string get_gtk_theme_variant ();
++		public unowned string get_gtk_unique_bus_name ();
++		public unowned string get_gtk_window_object_path ();
++		public bool get_icon_geometry (out Meta.Rectangle rect);
++		public Meta.StackLayer get_layer ();
++		public Meta.MaximizeFlags get_maximized ();
++		public int get_monitor ();
++		public unowned string get_mutter_hints ();
++		public int get_pid ();
++		public unowned string get_role ();
++		public unowned string get_sandboxed_app_id ();
++		public uint get_stable_sequence ();
++		public unowned string get_startup_id ();
++		public unowned Meta.Window? get_tile_match ();
++		public unowned string get_title ();
++		public unowned Meta.Window get_transient_for ();
++		public uint32 get_user_time ();
++		public Meta.WindowType get_window_type ();
++		public unowned string get_wm_class ();
++		public unowned string get_wm_class_instance ();
++		public Meta.Rectangle get_work_area_all_monitors ();
++		public Meta.Rectangle get_work_area_current_monitor ();
++		public Meta.Rectangle get_work_area_for_monitor (int which_monitor);
++		public unowned Meta.Workspace get_workspace ();
++		public X.Window get_xwindow ();
++		public void group_leader_changed ();
++		public bool has_focus ();
++		public bool is_above ();
++		public bool is_always_on_all_workspaces ();
++		public bool is_ancestor_of_transient (Meta.Window transient);
++		public bool is_attached_dialog ();
++		public bool is_client_decorated ();
++		public bool is_fullscreen ();
++		public bool is_hidden ();
++		public bool is_monitor_sized ();
++		public bool is_on_all_workspaces ();
++		public bool is_on_primary_monitor ();
++		public bool is_override_redirect ();
++		public bool is_remote ();
++		public bool is_screen_sized ();
++		public bool is_shaded ();
++		public bool is_skip_taskbar ();
++		public void kill ();
++		public bool located_on_workspace (Meta.Workspace workspace);
++		public void lower ();
++		public void make_above ();
++		public void make_fullscreen ();
++		public void maximize (Meta.MaximizeFlags directions);
++		public void minimize ();
++		public void move_frame (bool user_op, int root_x_nw, int root_y_nw);
++		public void move_resize_frame (bool user_op, int root_x_nw, int root_y_nw, int w, int h);
++		public void move_to_monitor (int monitor);
++		public void raise ();
++		public bool requested_bypass_compositor ();
++		public bool requested_dont_bypass_compositor ();
++		public void set_compositor_private (GLib.Object priv);
++		public void set_demands_attention ();
++		public void set_icon_geometry (Meta.Rectangle? rect);
++		public void shade (uint32 timestamp);
++		public void shove_titlebar_onscreen ();
++		public bool showing_on_its_workspace ();
++		public void shutdown_group ();
++		public void stick ();
++		public bool titlebar_is_onscreen ();
++		public void unmake_above ();
++		public void unmake_fullscreen ();
++		public void unmaximize (Meta.MaximizeFlags directions);
++		public void unminimize ();
++		public void unset_demands_attention ();
++		public void unshade (uint32 timestamp);
++		public void unstick ();
++		[NoAccessorMethod]
++		public bool above { get; }
++		[NoAccessorMethod]
++		public bool appears_focused { get; }
++		[NoAccessorMethod]
++		public bool decorated { get; }
++		[NoAccessorMethod]
++		public bool demands_attention { get; }
++		[NoAccessorMethod]
++		public bool fullscreen { get; }
++		public string gtk_app_menu_object_path { get; }
++		public string gtk_application_id { get; }
++		public string gtk_application_object_path { get; }
++		public string gtk_menubar_object_path { get; }
++		public string gtk_unique_bus_name { get; }
++		public string gtk_window_object_path { get; }
++		[NoAccessorMethod]
++		public void* icon { get; }
++		[NoAccessorMethod]
++		public bool maximized_horizontally { get; }
++		[NoAccessorMethod]
++		public bool maximized_vertically { get; }
++		[NoAccessorMethod]
++		public void* mini_icon { get; }
++		[NoAccessorMethod]
++		public bool minimized { get; }
++		public string mutter_hints { get; }
++		[NoAccessorMethod]
++		public bool on_all_workspaces { get; }
++		[NoAccessorMethod]
++		public bool resizeable { get; }
++		[NoAccessorMethod]
++		public bool skip_taskbar { get; }
++		public string title { get; }
++		[NoAccessorMethod]
++		public bool urgent { get; }
++		public uint user_time { get; }
++		public Meta.WindowType window_type { get; }
++		public string wm_class { get; }
++		public signal void position_changed ();
++		public signal void raised ();
++		public signal void shown ();
++		public signal void size_changed ();
++		public signal void unmanaged ();
++		public signal void workspace_changed ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_window_actor_get_type ()")]
++	public class WindowActor : Clutter.Actor, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
++		[CCode (has_construct_function = false)]
++		protected WindowActor ();
++		public unowned Meta.Window get_meta_window ();
++		public unowned Clutter.Actor get_texture ();
++		public X.Window get_x_window ();
++		public bool is_destroyed ();
++		public void sync_visibility ();
++		public Meta.Window meta_window { get; construct; }
++		[NoAccessorMethod]
++		public string shadow_class { owned get; set; }
++		[NoAccessorMethod]
++		public Meta.ShadowMode shadow_mode { get; set; }
++		public signal void effects_completed ();
++		public signal void first_frame ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_window_group_get_type ()")]
++	public class WindowGroup : Clutter.Actor, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
++		[CCode (has_construct_function = false)]
++		protected WindowGroup ();
++	}
++	[CCode (cheader_filename = "meta/main.h", ref_function = "meta_window_shape_ref", type_id = "meta_window_shape_get_type ()", unref_function = "meta_window_shape_unref")]
++	[Compact]
++	public class WindowShape {
++		[CCode (has_construct_function = false)]
++		public WindowShape (Cairo.Region region);
++		public bool equal (Meta.WindowShape shape_b);
++		public void get_borders (int border_top, int border_right, int border_bottom, int border_left);
++		public uint hash ();
++		public Meta.WindowShape @ref ();
++		public Cairo.Region to_region (int center_width, int center_height);
++		public void unref ();
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_workspace_get_type ()")]
++	public class Workspace : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected Workspace ();
++		public void activate (uint32 timestamp);
++		public void activate_with_focus (Meta.Window focus_this, uint32 timestamp);
++		public unowned Meta.Display get_display ();
++		public unowned Meta.Workspace get_neighbor (Meta.MotionDirection direction);
++		public Meta.Rectangle get_work_area_all_monitors ();
++		public Meta.Rectangle get_work_area_for_monitor (int which_monitor);
++		public int index ();
++		public GLib.List<weak Meta.Window> list_windows ();
++		public void set_builtin_struts (GLib.SList<Meta.Strut> struts);
++		[NoAccessorMethod]
++		public uint n_windows { get; }
++		[NoAccessorMethod]
++		public uint workspace_index { get; }
++		public signal void window_added (Meta.Window object);
++		public signal void window_removed (Meta.Window object);
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_workspace_manager_get_type ()")]
++	public class WorkspaceManager : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected WorkspaceManager ();
++		public unowned Meta.Workspace append_new_workspace (bool activate, uint32 timestamp);
++		public unowned Meta.Workspace get_active_workspace ();
++		public int get_active_workspace_index ();
++		public int get_n_workspaces ();
++		public unowned Meta.Workspace get_workspace_by_index (int index);
++		public void override_workspace_layout (Meta.DisplayCorner starting_corner, bool vertical_layout, int n_rows, int n_columns);
++		public void remove_workspace (Meta.Workspace workspace, uint32 timestamp);
++		public int n_workspaces { get; }
++		public signal void active_workspace_changed ();
++		public signal void showing_desktop_changed ();
++		public signal void workspace_added (int object);
++		public signal void workspace_removed (int object);
++		public signal void workspace_switched (int object, int p0, Meta.MotionDirection p1);
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_x11_display_get_type ()")]
++	public class X11Display : GLib.Object {
++		[CCode (has_construct_function = false)]
++		protected X11Display ();
++		public void focus_the_no_focus_window (uint32 timestamp);
++		public int get_damage_event_base ();
++		public int get_screen_number ();
++		public int get_shape_event_base ();
++		public bool has_shape ();
++		public void set_cm_selection ();
++		public void set_input_focus_window (Meta.Window window, bool focus_frame, uint32 timestamp);
++		public bool xwindow_is_a_no_focus_window (X.Window xwindow);
++	}
++	[CCode (cheader_filename = "meta/main.h", type_cname = "MetaCloseDialogInterface", type_id = "meta_close_dialog_get_type ()")]
++	public interface CloseDialog : GLib.Object {
++		public abstract void focus ();
++		public abstract void hide ();
++		public bool is_visible ();
++		public abstract void show ();
++		[NoAccessorMethod]
++		public abstract Meta.Window window { owned get; construct; }
++		[HasEmitter]
++		public signal void response (Meta.CloseDialogResponse response);
++	}
++	[CCode (cheader_filename = "meta/main.h", type_cname = "MetaInhibitShortcutsDialogInterface", type_id = "meta_inhibit_shortcuts_dialog_get_type ()")]
++	public interface InhibitShortcutsDialog : GLib.Object {
++		public abstract void hide ();
++		public abstract void show ();
++		[NoAccessorMethod]
++		public abstract Meta.Window window { owned get; construct; }
++		[HasEmitter]
++		public signal void response (Meta.InhibitShortcutsDialogResponse response);
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	public struct ButtonLayout {
++		[CCode (array_length = false)]
++		public weak Meta.ButtonFunction left_buttons[5];
++		[CCode (array_length = false)]
++		public weak bool left_buttons_has_spacer[5];
++		[CCode (array_length = false)]
++		public weak Meta.ButtonFunction right_buttons[5];
++		[CCode (array_length = false)]
++		public weak bool right_buttons_has_spacer[5];
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	public struct Edge {
++		public Meta.Rectangle rect;
++		public Meta.Side side_type;
++		public Meta.EdgeType edge_type;
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	public struct FrameBorders {
++		public Gtk.Border visible;
++		public Gtk.Border invisible;
++		public Gtk.Border total;
++		public void clear ();
++	}
++	[CCode (cheader_filename = "meta/meta-plugin.h", has_type_id = false)]
++	public struct PluginInfo {
++		public weak string name;
++		public weak string version;
++		public weak string author;
++		public weak string license;
++		public weak string description;
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	public struct PluginVersion {
++		public uint version_major;
++		public uint version_minor;
++		public uint version_micro;
++		public uint version_api;
++	}
++	[CCode (cheader_filename = "meta/main.h", type_id = "meta_rectangle_get_type ()")]
++	public struct Rectangle {
++		public int x;
++		public int y;
++		public int width;
++		public int height;
++		public int area ();
++		public bool contains_rect (Meta.Rectangle inner_rect);
++		public Meta.Rectangle? copy ();
++		public bool could_fit_rect (Meta.Rectangle inner_rect);
++		public bool equal (Meta.Rectangle src2);
++		public void free ();
++		public bool horiz_overlap (Meta.Rectangle rect2);
++		public bool intersect (Meta.Rectangle src2, out Meta.Rectangle dest);
++		public bool overlap (Meta.Rectangle rect2);
++		public Meta.Rectangle union (Meta.Rectangle rect2);
++		public bool vert_overlap (Meta.Rectangle rect2);
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	public struct ShadowParams {
++		public int radius;
++		public int top_fade;
++		public int x_offset;
++		public int y_offset;
++		public uint8 opacity;
++	}
++	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	public struct Strut {
++		public Meta.Rectangle rect;
++		public Meta.Side side;
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_BARRIER_DIRECTION_", type_id = "meta_barrier_direction_get_type ()")]
++	[Flags]
++	public enum BarrierDirection {
++		POSITIVE_X,
++		POSITIVE_Y,
++		NEGATIVE_X,
++		NEGATIVE_Y
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_BUTTON_FUNCTION_", type_id = "meta_button_function_get_type ()")]
++	public enum ButtonFunction {
++		MENU,
++		MINIMIZE,
++		MAXIMIZE,
++		CLOSE,
++		APPMENU,
++		LAST
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_CLOSE_DIALOG_RESPONSE_", type_id = "meta_close_dialog_response_get_type ()")]
++	public enum CloseDialogResponse {
++		WAIT,
++		FORCE_CLOSE
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_COMP_EFFECT_", type_id = "meta_comp_effect_get_type ()")]
++	public enum CompEffect {
++		CREATE,
++		UNMINIMIZE,
++		DESTROY,
++		MINIMIZE,
++		NONE
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_CURSOR_", type_id = "meta_cursor_get_type ()")]
++	public enum Cursor {
++		NONE,
++		DEFAULT,
++		NORTH_RESIZE,
++		SOUTH_RESIZE,
++		WEST_RESIZE,
++		EAST_RESIZE,
++		SE_RESIZE,
++		SW_RESIZE,
++		NE_RESIZE,
++		NW_RESIZE,
++		MOVE_OR_RESIZE_WINDOW,
++		BUSY,
++		DND_IN_DRAG,
++		DND_MOVE,
++		DND_COPY,
++		DND_UNSUPPORTED_TARGET,
++		POINTING_HAND,
++		CROSSHAIR,
++		IBEAM,
++		LAST
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_DEBUG_", type_id = "meta_debug_topic_get_type ()")]
++	[Flags]
++	public enum DebugTopic {
++		VERBOSE,
++		FOCUS,
++		WORKAREA,
++		STACK,
++		THEMES,
++		SM,
++		EVENTS,
++		WINDOW_STATE,
++		WINDOW_OPS,
++		GEOMETRY,
++		PLACEMENT,
++		PING,
++		XINERAMA,
++		KEYBINDINGS,
++		SYNC,
++		ERRORS,
++		STARTUP,
++		PREFS,
++		GROUPS,
++		RESIZING,
++		SHAPES,
++		COMPOSITOR,
++		EDGE_RESISTANCE,
++		DBUS
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_DIRECTION_", type_id = "meta_direction_get_type ()")]
++	[Flags]
++	public enum Direction {
++		LEFT,
++		RIGHT,
++		TOP,
++		BOTTOM,
++		UP,
++		DOWN,
++		HORIZONTAL,
++		VERTICAL
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_DISPLAY_", type_id = "meta_display_corner_get_type ()")]
++	public enum DisplayCorner {
++		TOPLEFT,
++		TOPRIGHT,
++		BOTTOMLEFT,
++		BOTTOMRIGHT
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_DISPLAY_", type_id = "meta_display_direction_get_type ()")]
++	public enum DisplayDirection {
++		UP,
++		DOWN,
++		LEFT,
++		RIGHT
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_EDGE_", type_id = "meta_edge_type_get_type ()")]
++	public enum EdgeType {
++		WINDOW,
++		MONITOR,
++		SCREEN
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_EXIT_", type_id = "meta_exit_code_get_type ()")]
++	public enum ExitCode {
++		SUCCESS,
++		ERROR
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_FRAME_", type_id = "meta_frame_flags_get_type ()")]
++	[Flags]
++	public enum FrameFlags {
++		ALLOWS_DELETE,
++		ALLOWS_MENU,
++		ALLOWS_APPMENU,
++		ALLOWS_MINIMIZE,
++		ALLOWS_MAXIMIZE,
++		ALLOWS_VERTICAL_RESIZE,
++		ALLOWS_HORIZONTAL_RESIZE,
++		HAS_FOCUS,
++		SHADED,
++		STUCK,
++		MAXIMIZED,
++		ALLOWS_SHADE,
++		ALLOWS_MOVE,
++		FULLSCREEN,
++		IS_FLASHING,
++		ABOVE,
++		TILED_LEFT,
++		TILED_RIGHT
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_FRAME_TYPE_", type_id = "meta_frame_type_get_type ()")]
++	public enum FrameType {
++		NORMAL,
++		DIALOG,
++		MODAL_DIALOG,
++		UTILITY,
++		MENU,
++		BORDER,
++		ATTACHED,
++		LAST;
++		public unowned string to_string ();
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_GRAB_OP_", type_id = "meta_grab_op_get_type ()")]
++	public enum GrabOp {
++		NONE,
++		WINDOW_BASE,
++		COMPOSITOR,
++		WAYLAND_POPUP,
++		FRAME_BUTTON,
++		MOVING,
++		RESIZING_NW,
++		RESIZING_N,
++		RESIZING_NE,
++		RESIZING_E,
++		RESIZING_SW,
++		RESIZING_S,
++		RESIZING_SE,
++		RESIZING_W,
++		KEYBOARD_MOVING,
++		KEYBOARD_RESIZING_UNKNOWN,
++		KEYBOARD_RESIZING_NW,
++		KEYBOARD_RESIZING_N,
++		KEYBOARD_RESIZING_NE,
++		KEYBOARD_RESIZING_E,
++		KEYBOARD_RESIZING_SW,
++		KEYBOARD_RESIZING_S,
++		KEYBOARD_RESIZING_SE,
++		KEYBOARD_RESIZING_W
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_", type_id = "meta_inhibit_shortcuts_dialog_response_get_type ()")]
++	public enum InhibitShortcutsDialogResponse {
++		ALLOW,
++		DENY
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_KEYBINDING_ACTION_", type_id = "meta_key_binding_action_get_type ()")]
++	public enum KeyBindingAction {
++		NONE,
++		WORKSPACE_1,
++		WORKSPACE_2,
++		WORKSPACE_3,
++		WORKSPACE_4,
++		WORKSPACE_5,
++		WORKSPACE_6,
++		WORKSPACE_7,
++		WORKSPACE_8,
++		WORKSPACE_9,
++		WORKSPACE_10,
++		WORKSPACE_11,
++		WORKSPACE_12,
++		WORKSPACE_LEFT,
++		WORKSPACE_RIGHT,
++		WORKSPACE_UP,
++		WORKSPACE_DOWN,
++		WORKSPACE_LAST,
++		SWITCH_APPLICATIONS,
++		SWITCH_APPLICATIONS_BACKWARD,
++		SWITCH_GROUP,
++		SWITCH_GROUP_BACKWARD,
++		SWITCH_WINDOWS,
++		SWITCH_WINDOWS_BACKWARD,
++		SWITCH_PANELS,
++		SWITCH_PANELS_BACKWARD,
++		CYCLE_GROUP,
++		CYCLE_GROUP_BACKWARD,
++		CYCLE_WINDOWS,
++		CYCLE_WINDOWS_BACKWARD,
++		CYCLE_PANELS,
++		CYCLE_PANELS_BACKWARD,
++		SHOW_DESKTOP,
++		PANEL_MAIN_MENU,
++		PANEL_RUN_DIALOG,
++		TOGGLE_RECORDING,
++		SET_SPEW_MARK,
++		ACTIVATE_WINDOW_MENU,
++		TOGGLE_FULLSCREEN,
++		TOGGLE_MAXIMIZED,
++		TOGGLE_TILED_LEFT,
++		TOGGLE_TILED_RIGHT,
++		TOGGLE_ABOVE,
++		MAXIMIZE,
++		UNMAXIMIZE,
++		TOGGLE_SHADED,
++		MINIMIZE,
++		CLOSE,
++		BEGIN_MOVE,
++		BEGIN_RESIZE,
++		TOGGLE_ON_ALL_WORKSPACES,
++		MOVE_TO_WORKSPACE_1,
++		MOVE_TO_WORKSPACE_2,
++		MOVE_TO_WORKSPACE_3,
++		MOVE_TO_WORKSPACE_4,
++		MOVE_TO_WORKSPACE_5,
++		MOVE_TO_WORKSPACE_6,
++		MOVE_TO_WORKSPACE_7,
++		MOVE_TO_WORKSPACE_8,
++		MOVE_TO_WORKSPACE_9,
++		MOVE_TO_WORKSPACE_10,
++		MOVE_TO_WORKSPACE_11,
++		MOVE_TO_WORKSPACE_12,
++		MOVE_TO_WORKSPACE_LEFT,
++		MOVE_TO_WORKSPACE_RIGHT,
++		MOVE_TO_WORKSPACE_UP,
++		MOVE_TO_WORKSPACE_DOWN,
++		MOVE_TO_WORKSPACE_LAST,
++		MOVE_TO_MONITOR_LEFT,
++		MOVE_TO_MONITOR_RIGHT,
++		MOVE_TO_MONITOR_UP,
++		MOVE_TO_MONITOR_DOWN,
++		RAISE_OR_LOWER,
++		RAISE,
++		LOWER,
++		MAXIMIZE_VERTICALLY,
++		MAXIMIZE_HORIZONTALLY,
++		MOVE_TO_CORNER_NW,
++		MOVE_TO_CORNER_NE,
++		MOVE_TO_CORNER_SW,
++		MOVE_TO_CORNER_SE,
++		MOVE_TO_SIDE_N,
++		MOVE_TO_SIDE_S,
++		MOVE_TO_SIDE_E,
++		MOVE_TO_SIDE_W,
++		MOVE_TO_CENTER,
++		OVERLAY_KEY,
++		ISO_NEXT_GROUP,
++		ALWAYS_ON_TOP,
++		SWITCH_MONITOR,
++		ROTATE_MONITOR,
++		LAST
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_KEY_BINDING_", type_id = "meta_key_binding_flags_get_type ()")]
++	[Flags]
++	public enum KeyBindingFlags {
++		NONE,
++		PER_WINDOW,
++		BUILTIN,
++		IS_REVERSED,
++		NON_MASKABLE
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_LATER_", type_id = "meta_later_type_get_type ()")]
++	public enum LaterType {
++		RESIZE,
++		CALC_SHOWING,
++		CHECK_FULLSCREEN,
++		SYNC_STACK,
++		BEFORE_REDRAW,
++		IDLE
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_LOCALE_DIRECTION_", type_id = "meta_locale_direction_get_type ()")]
++	public enum LocaleDirection {
++		LTR,
++		RTL
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_MAXIMIZE_", type_id = "meta_maximize_flags_get_type ()")]
++	[Flags]
++	public enum MaximizeFlags {
++		HORIZONTAL,
++		VERTICAL,
++		BOTH
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_MODAL_", type_id = "meta_modal_options_get_type ()")]
++	[Flags]
++	public enum ModalOptions {
++		POINTER_ALREADY_GRABBED,
++		KEYBOARD_ALREADY_GRABBED
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_MONITOR_SWITCH_CONFIG_", type_id = "meta_monitor_switch_config_type_get_type ()")]
++	public enum MonitorSwitchConfigType {
++		ALL_MIRROR,
++		ALL_LINEAR,
++		EXTERNAL,
++		BUILTIN,
++		UNKNOWN
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_MOTION_", type_id = "meta_motion_direction_get_type ()")]
++	public enum MotionDirection {
++		UP,
++		DOWN,
++		LEFT,
++		RIGHT,
++		UP_LEFT,
++		UP_RIGHT,
++		DOWN_LEFT,
++		DOWN_RIGHT
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_PAD_ACTION_", type_id = "meta_pad_action_type_get_type ()")]
++	public enum PadActionType {
++		BUTTON,
++		RING,
++		STRIP
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_PREF_", type_id = "meta_preference_get_type ()")]
++	public enum Preference {
++		MOUSE_BUTTON_MODS,
++		FOCUS_MODE,
++		FOCUS_NEW_WINDOWS,
++		ATTACH_MODAL_DIALOGS,
++		RAISE_ON_CLICK,
++		ACTION_DOUBLE_CLICK_TITLEBAR,
++		ACTION_MIDDLE_CLICK_TITLEBAR,
++		ACTION_RIGHT_CLICK_TITLEBAR,
++		AUTO_RAISE,
++		AUTO_RAISE_DELAY,
++		FOCUS_CHANGE_ON_POINTER_REST,
++		TITLEBAR_FONT,
++		NUM_WORKSPACES,
++		DYNAMIC_WORKSPACES,
++		KEYBINDINGS,
++		DISABLE_WORKAROUNDS,
++		BUTTON_LAYOUT,
++		WORKSPACE_NAMES,
++		VISUAL_BELL,
++		AUDIBLE_BELL,
++		VISUAL_BELL_TYPE,
++		GNOME_ACCESSIBILITY,
++		GNOME_ANIMATIONS,
++		CURSOR_THEME,
++		CURSOR_SIZE,
++		RESIZE_WITH_RIGHT_BUTTON,
++		EDGE_TILING,
++		FORCE_FULLSCREEN,
++		WORKSPACES_ONLY_ON_PRIMARY,
++		DRAGGABLE_BORDER_WIDTH,
++		AUTO_MAXIMIZE,
++		CENTER_NEW_WINDOWS,
++		DRAG_THRESHOLD;
++		public unowned string to_string ();
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_SHADOW_MODE_", type_id = "meta_shadow_mode_get_type ()")]
++	public enum ShadowMode {
++		AUTO,
++		FORCED_OFF,
++		FORCED_ON
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_SIDE_", type_id = "meta_side_get_type ()")]
++	public enum Side {
++		LEFT,
++		RIGHT,
++		TOP,
++		BOTTOM
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_SIZE_CHANGE_", type_id = "meta_size_change_get_type ()")]
++	public enum SizeChange {
++		MAXIMIZE,
++		UNMAXIMIZE,
++		FULLSCREEN,
++		UNFULLSCREEN
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_LAYER_", type_id = "meta_stack_layer_get_type ()")]
++	public enum StackLayer {
++		DESKTOP,
++		BOTTOM,
++		NORMAL,
++		TOP,
++		DOCK,
++		OVERRIDE_REDIRECT,
++		LAST
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_TAB_LIST_", type_id = "meta_tab_list_get_type ()")]
++	public enum TabList {
++		NORMAL,
++		DOCKS,
++		GROUP,
++		NORMAL_ALL
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_TAB_SHOW_", type_id = "meta_tab_show_type_get_type ()")]
++	public enum TabShowType {
++		ICON,
++		INSTANTLY
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_VIRTUAL_", type_id = "meta_virtual_modifier_get_type ()")]
++	[Flags]
++	public enum VirtualModifier {
++		SHIFT_MASK,
++		CONTROL_MASK,
++		ALT_MASK,
++		META_MASK,
++		SUPER_MASK,
++		HYPER_MASK,
++		MOD2_MASK,
++		MOD3_MASK,
++		MOD4_MASK,
++		MOD5_MASK
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_WINDOW_CLIENT_TYPE_", type_id = "meta_window_client_type_get_type ()")]
++	public enum WindowClientType {
++		WAYLAND,
++		X11
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_WINDOW_MENU_", type_id = "meta_window_menu_type_get_type ()")]
++	public enum WindowMenuType {
++		WM,
++		APP
++	}
++	[CCode (cheader_filename = "meta/main.h", cprefix = "META_WINDOW_", type_id = "meta_window_type_get_type ()")]
++	public enum WindowType {
++		NORMAL,
++		DESKTOP,
++		DOCK,
++		DIALOG,
++		MODAL_DIALOG,
++		TOOLBAR,
++		MENU,
++		UTILITY,
++		SPLASHSCREEN,
++		DROPDOWN_MENU,
++		POPUP_MENU,
++		TOOLTIP,
++		NOTIFICATION,
++		COMBO,
++		DND,
++		OVERRIDE_OTHER
++	}
++	[CCode (cheader_filename = "meta/main.h", instance_pos = 2.9)]
++	public delegate void IdleMonitorWatchFunc (Meta.IdleMonitor monitor, uint watch_id);
++	[CCode (cheader_filename = "meta/main.h", instance_pos = 4.9)]
++	public delegate void KeyHandlerFunc (Meta.Display display, Meta.Window window, [CCode (type = "ClutterKeyEvent*")] Clutter.KeyEvent? event, Meta.KeyBinding binding);
++	[CCode (cheader_filename = "meta/main.h", instance_pos = 1.9)]
++	public delegate void PrefsChangedFunc (Meta.Preference pref);
++	[CCode (cheader_filename = "meta/main.h", instance_pos = 1.9)]
++	public delegate bool WindowForeachFunc (Meta.Window window);
++	[CCode (cheader_filename = "meta/main.h", cname = "META_CURRENT_TIME")]
++	public const int CURRENT_TIME;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_DEFAULT_ICON_NAME")]
++	public const string DEFAULT_ICON_NAME;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_ICON_HEIGHT")]
++	public const int ICON_HEIGHT;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_ICON_WIDTH")]
++	public const int ICON_WIDTH;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_MAJOR_VERSION")]
++	public const int MAJOR_VERSION;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_MICRO_VERSION")]
++	public const int MICRO_VERSION;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_MINI_ICON_HEIGHT")]
++	public const int MINI_ICON_HEIGHT;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_MINI_ICON_WIDTH")]
++	public const int MINI_ICON_WIDTH;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_MINOR_VERSION")]
++	public const int MINOR_VERSION;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_PLUGIN_API_VERSION")]
++	public const int PLUGIN_API_VERSION;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_PRIORITY_BEFORE_REDRAW")]
++	public const int PRIORITY_BEFORE_REDRAW;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_PRIORITY_PREFS_NOTIFY")]
++	public const int PRIORITY_PREFS_NOTIFY;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_PRIORITY_REDRAW")]
++	public const int PRIORITY_REDRAW;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_PRIORITY_RESIZE")]
++	public const int PRIORITY_RESIZE;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_VIRTUAL_CORE_KEYBOARD_ID")]
++	public const int VIRTUAL_CORE_KEYBOARD_ID;
++	[CCode (cheader_filename = "meta/main.h", cname = "META_VIRTUAL_CORE_POINTER_ID")]
++	public const int VIRTUAL_CORE_POINTER_ID;
++	[CCode (cheader_filename = "meta/main.h")]
++	public static bool activate_session ();
++	[CCode (cheader_filename = "meta/main.h")]
++	public static void exit (Meta.ExitCode code);
++	[CCode (cheader_filename = "meta/main.h")]
++	public static unowned GLib.OptionContext get_option_context ();
++	[CCode (cheader_filename = "meta/main.h")]
++	public static bool get_replace_current_wm ();
++	[CCode (cheader_filename = "meta/main.h")]
++	public static void init ();
++	[CCode (cheader_filename = "meta/main.h")]
++	public static bool is_restart ();
++	[CCode (cheader_filename = "meta/main.h")]
++	public static void quit (Meta.ExitCode code);
++	[CCode (cheader_filename = "meta/main.h")]
++	public static void register_with_session ();
++	[CCode (cheader_filename = "meta/main.h")]
++	public static void restart (string? message);
++	[CCode (cheader_filename = "meta/main.h")]
++	public static int run ();
++	[CCode (cheader_filename = "meta/main.h")]
++	public static void set_gnome_wm_keybindings (string wm_keybindings);
++	[CCode (cheader_filename = "meta/main.h")]
++	public static void set_wm_name (string wm_name);
++	[CCode (cheader_filename = "meta/main.h")]
++	public static bool x11_init_gdk_display () throws GLib.Error;
++}

Copied: budgie-desktop/repos/community-testing-x86_64/0002-Correct-GNOME-button-layout-schema-path.patch (from rev 380021, budgie-desktop/trunk/0002-Correct-GNOME-button-layout-schema-path.patch)
===================================================================
--- community-testing-x86_64/0002-Correct-GNOME-button-layout-schema-path.patch	                        (rev 0)
+++ community-testing-x86_64/0002-Correct-GNOME-button-layout-schema-path.patch	2018-09-12 21:19:28 UTC (rev 380022)
@@ -0,0 +1,26 @@
+Description: Correct GNOME button-layout schema path
+ .
+ Fixes issue with patch 0003-Port-to-mutter-3-from-GNOME-3.30.patch
+Author: fossfreedom <fossfreedom at ubuntu.com>
+Commit: https://github.com/UbuntuBudgie/budgie-desktop/commit/b5e9fd36860d70fed8c85737d1bae828d5331b6b
+Last-Update: 2018-08-15
+
+---
+ src/wm/20_solus-project.budgie.wm.gschema.override | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/wm/20_solus-project.budgie.wm.gschema.override b/src/wm/20_solus-project.budgie.wm.gschema.override
+index b6a4071f..1e1f31e4 100644
+--- a/src/wm/20_solus-project.budgie.wm.gschema.override
++++ b/src/wm/20_solus-project.budgie.wm.gschema.override
+@@ -1,4 +1,7 @@
+ [org.gnome.mutter:Budgie]
+ edge-tiling = true
+ attach-modal-dialogs = true
++
++[org.gnome.desktop.wm.preferences:Budgie]
+ button-layout = 'appmenu:minimize,maximize,close'
++
+--
+2.17.1
+

Copied: budgie-desktop/repos/community-testing-x86_64/0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch (from rev 380021, budgie-desktop/trunk/0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch)
===================================================================
--- community-testing-x86_64/0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch	                        (rev 0)
+++ community-testing-x86_64/0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch	2018-09-12 21:19:28 UTC (rev 380022)
@@ -0,0 +1,34 @@
+Description: Make sure vapi workspace def use real c header filenames
+Author: fossfreedom <fossfreedom at ubuntu.com>
+Commit: https://github.com/UbuntuBudgie/budgie-desktop/commit/825353ea27af8ca2e54e95421072561a1bcfb488
+Last Update: 2018-08-26
+
+---
+ vapi/libmutter-3.vapi | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/vapi/libmutter-3.vapi b/vapi/libmutter-3.vapi
+index 8a5f5ab0..bd8cc632 100644
+--- a/vapi/libmutter-3.vapi
++++ b/vapi/libmutter-3.vapi
+@@ -708,7 +708,7 @@ namespace Meta {
+ 		public Cairo.Region to_region (int center_width, int center_height);
+ 		public void unref ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_workspace_get_type ()")]
++	[CCode (cheader_filename = "meta/workspace.h", type_id = "meta_workspace_get_type ()")]
+ 	public class Workspace : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected Workspace ();
+@@ -728,7 +728,7 @@ namespace Meta {
+ 		public signal void window_added (Meta.Window object);
+ 		public signal void window_removed (Meta.Window object);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_workspace_manager_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-workspace-manager.h", type_id = "meta_workspace_manager_get_type ()")]
+ 	public class WorkspaceManager : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected WorkspaceManager ();
+--
+2.17.1
+

Copied: budgie-desktop/repos/community-testing-x86_64/0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch (from rev 380021, budgie-desktop/trunk/0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch)
===================================================================
--- community-testing-x86_64/0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch	                        (rev 0)
+++ community-testing-x86_64/0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch	2018-09-12 21:19:28 UTC (rev 380022)
@@ -0,0 +1,110 @@
+Description: Vala 0.41.92 does not allow custom getter default values
+Author: fossfreedom <fossfreedom at ubuntu.com>
+Commit: https://github.com/UbuntuBudgie/budgie-desktop/commit/c7be4c220762116c251258d4c840eb75de026f2c
+Last Update: 2018-08-26
+
+---
+ src/applets/icon-tasklist/Icon.vala    | 10 +++++-----
+ src/applets/status/PowerIndicator.vala |  2 +-
+ src/panel/panel.vala                   |  2 +-
+ src/raven/headerwidget.vala            |  2 +-
+ src/raven/raven.vala                   |  2 +-
+ 5 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/applets/icon-tasklist/Icon.vala b/src/applets/icon-tasklist/Icon.vala
+index 895cd38c..e0610d5a 100644
+--- a/src/applets/icon-tasklist/Icon.vala
++++ b/src/applets/icon-tasklist/Icon.vala
+@@ -20,8 +20,8 @@ public class Icon : Gtk.Image
+     private int wait_cycle_counter = 0;
+     private int attention_cycle_counter = 0;
+
+-    private double bounce_amount = 0;
+-    private double attention_amount = 0;
++    private double bounce_amount = 0.0;
++    private double attention_amount = 0.0;
+
+     public double bounce {
+         public set {
+@@ -31,7 +31,7 @@ public class Icon : Gtk.Image
+         public get {
+             return bounce_amount;
+         }
+-        default = 0.0;
++        //default = 0.0;
+     }
+
+     public double attention {
+@@ -42,7 +42,7 @@ public class Icon : Gtk.Image
+         public get {
+             return attention_amount;
+         }
+-        default = 0.0;
++        //default = 0.0;
+     }
+
+     public double icon_opacity {
+@@ -56,7 +56,7 @@ public class Icon : Gtk.Image
+         public get {
+             return opacity;
+         }
+-        default = 1.0;
++        //default = 1.0;
+     }
+
+     public Icon() {}
+diff --git a/src/applets/status/PowerIndicator.vala b/src/applets/status/PowerIndicator.vala
+index 1816a294..6c498968 100644
+--- a/src/applets/status/PowerIndicator.vala
++++ b/src/applets/status/PowerIndicator.vala
+@@ -30,7 +30,7 @@ public class BatteryIcon : Gtk.Box
+         public get {
+             return this.percent_label.visible;
+         }
+-        default = false;
++        //default = false;
+     }
+
+     public BatteryIcon(Up.Device battery) {
+diff --git a/src/panel/panel.vala b/src/panel/panel.vala
+index 17bd9431..2b73a287 100644
+--- a/src/panel/panel.vala
++++ b/src/panel/panel.vala
+@@ -120,7 +120,7 @@ public class Panel : Budgie.Toplevel
+         public get {
+             return render_scale;
+         }
+-        default = 0.0;
++        //default = 0.0;
+     }
+
+     public bool activate_action(int remote_action)
+diff --git a/src/raven/headerwidget.vala b/src/raven/headerwidget.vala
+index 429c350c..97bbe2c7 100644
+--- a/src/raven/headerwidget.vala
++++ b/src/raven/headerwidget.vala
+@@ -34,7 +34,7 @@ public class HeaderExpander : Gtk.Button
+         public get {
+             return this._expanded;
+         }
+-        default = false;
++        //default = false;
+     }
+
+     public HeaderExpander(HeaderWidget? owner)
+diff --git a/src/raven/raven.vala b/src/raven/raven.vala
+index 23250d52..47ad19e1 100644
+--- a/src/raven/raven.vala
++++ b/src/raven/raven.vala
+@@ -170,7 +170,7 @@ public class Raven : Gtk.Window
+         public get {
+             return this._screen_edge;
+         }
+-        default = Gtk.PositionType.RIGHT;
++        //default = Gtk.PositionType.RIGHT;
+     }
+
+     int our_width = 0;
+--
+2.17.1
+

Copied: budgie-desktop/repos/community-testing-x86_64/0005-Point-vapi-cheaders-to-their-upstream-equiv.patch (from rev 380021, budgie-desktop/trunk/0005-Point-vapi-cheaders-to-their-upstream-equiv.patch)
===================================================================
--- community-testing-x86_64/0005-Point-vapi-cheaders-to-their-upstream-equiv.patch	                        (rev 0)
+++ community-testing-x86_64/0005-Point-vapi-cheaders-to-their-upstream-equiv.patch	2018-09-12 21:19:28 UTC (rev 380022)
@@ -0,0 +1,622 @@
+Description: Point vapi cheaders to their upstream equiv
+Author: fossfreedom <fossfreedom at ubuntu.com>
+Commit: https://github.com/UbuntuBudgie/budgie-desktop/commit/665076e68be7de280177eff45f224a7c2ea4a212
+Last Update: 2018-08-26
+
+---
+ vapi/libmutter-3.vapi | 172 +++++++++++++++++++++---------------------
+ 1 file changed, 86 insertions(+), 86 deletions(-)
+
+diff --git a/vapi/libmutter-3.vapi b/vapi/libmutter-3.vapi
+index bd8cc632..1715aa8f 100644
+--- a/vapi/libmutter-3.vapi
++++ b/vapi/libmutter-3.vapi
+@@ -218,7 +218,7 @@ namespace Meta {
+ 		[CCode (has_construct_function = false, type = "ClutterActor*")]
+ 		public BackgroundGroup ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_background_image_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-background-image.h", type_id = "meta_background_image_get_type ()")]
+ 	public class BackgroundImage : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected BackgroundImage ();
+@@ -235,7 +235,7 @@ namespace Meta {
+ 		public Meta.BackgroundImage load (GLib.File file);
+ 		public void purge (GLib.File file);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_barrier_get_type ()")]
++	[CCode (cheader_filename = "meta/barrier.h", type_id = "meta_barrier_get_type ()")]
+ 	public class Barrier : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected Barrier ();
+@@ -257,7 +257,7 @@ namespace Meta {
+ 		public signal void hit (Meta.BarrierEvent event);
+ 		public signal void left (Meta.BarrierEvent event);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "meta_barrier_event_get_type ()")]
++	[CCode (cheader_filename = "meta/barrier.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "meta_barrier_event_get_type ()")]
+ 	[Compact]
+ 	public class BarrierEvent {
+ 		public int dt;
+@@ -270,7 +270,7 @@ namespace Meta {
+ 		public double x;
+ 		public double y;
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_cursor_tracker_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-cursor-tracker.h", type_id = "meta_cursor_tracker_get_type ()")]
+ 	public class CursorTracker : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected CursorTracker ();
+@@ -281,7 +281,7 @@ namespace Meta {
+ 		public void set_pointer_visible (bool visible);
+ 		public signal void cursor_changed ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_dbus_display_config_skeleton_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-monitor-manager.h", type_id = "meta_dbus_display_config_skeleton_get_type ()")]
+ 	public class DBusDisplayConfigSkeleton : GLib.DBusInterfaceSkeleton, GLib.DBusInterface {
+ 		[CCode (has_construct_function = false)]
+ 		protected DBusDisplayConfigSkeleton ();
+@@ -355,7 +355,7 @@ namespace Meta {
+ 		public signal void x11_display_closing ();
+ 		public signal void x11_display_opened ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_dnd_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-dnd.h", type_id = "meta_dnd_get_type ()")]
+ 	public class Dnd : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected Dnd ();
+@@ -363,11 +363,11 @@ namespace Meta {
+ 		public signal void dnd_leave ();
+ 		public signal void dnd_position_change (int object, int p0);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/common.h", has_type_id = false)]
+ 	[Compact]
+ 	public class Frame {
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_idle_monitor_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-idle-monitor.h", type_id = "meta_idle_monitor_get_type ()")]
+ 	public class IdleMonitor : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected IdleMonitor ();
+@@ -380,7 +380,7 @@ namespace Meta {
+ 		[NoAccessorMethod]
+ 		public int device_id { get; construct; }
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "meta_key_binding_get_type ()")]
++	[CCode (cheader_filename = "meta/keybindings.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "meta_key_binding_get_type ()")]
+ 	[Compact]
+ 	public class KeyBinding {
+ 		public uint get_mask ();
+@@ -461,26 +461,26 @@ namespace Meta {
+ 		[NoWrapper]
+ 		public virtual bool xevent_filter (X.Event event);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_remote_access_controller_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-remote-access-controller.h", type_id = "meta_remote_access_controller_get_type ()")]
+ 	public class RemoteAccessController : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected RemoteAccessController ();
+ 		public signal void new_handle (Meta.RemoteAccessHandle object);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_remote_access_handle_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-remote-access-controller.h", type_id = "meta_remote_access_handle_get_type ()")]
+ 	public class RemoteAccessHandle : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected RemoteAccessHandle ();
+ 		public virtual void stop ();
+ 		public signal void stopped ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/meta-settings.h", has_type_id = false)]
+ 	[Compact]
+ 	public class Settings {
+ 		public int get_font_dpi ();
+ 		public int get_ui_scaling_factor ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", ref_function = "meta_shadow_ref", type_id = "meta_shadow_get_type ()", unref_function = "meta_shadow_unref")]
++	[CCode (cheader_filename = "meta/meta-shadow-factory.h", ref_function = "meta_shadow_ref", type_id = "meta_shadow_get_type ()", unref_function = "meta_shadow_unref")]
+ 	[Compact]
+ 	public class Shadow {
+ 		public void get_bounds (int window_x, int window_y, int window_width, int window_height, Cairo.RectangleInt bounds);
+@@ -488,7 +488,7 @@ namespace Meta {
+ 		public Meta.Shadow @ref ();
+ 		public void unref ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_shadow_factory_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-shadow-factory.h", type_id = "meta_shadow_factory_get_type ()")]
+ 	public class ShadowFactory : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		public ShadowFactory ();
+@@ -498,7 +498,7 @@ namespace Meta {
+ 		public void set_params (string class_name, bool focused, Meta.ShadowParams @params);
+ 		public signal void changed ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_shaped_texture_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-shaped-texture.h", type_id = "meta_shaped_texture_get_type ()")]
+ 	public class ShapedTexture : Clutter.Actor, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
+ 		[CCode (has_construct_function = false)]
+ 		protected ShapedTexture ();
+@@ -510,18 +510,18 @@ namespace Meta {
+ 		public bool update_area (int x, int y, int width, int height);
+ 		public signal void size_changed ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_stage_get_type ()")]
++	[CCode (cheader_filename = "meta/compositor-mutter.h", type_id = "meta_stage_get_type ()")]
+ 	public class Stage : Clutter.Stage, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
+ 		[CCode (has_construct_function = false)]
+ 		protected Stage ();
+ 		public static bool is_focused (Meta.Display display);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/theme.h", has_type_id = false)]
+ 	[Compact]
+ 	public class Theme {
+ 		public void free ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_window_get_type ()")]
++	[CCode (cheader_filename = "meta/window.h", type_id = "meta_window_get_type ()")]
+ 	public abstract class Window : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected Window ();
+@@ -674,7 +674,7 @@ namespace Meta {
+ 		public signal void unmanaged ();
+ 		public signal void workspace_changed ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_window_actor_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-window-actor.h", type_id = "meta_window_actor_get_type ()")]
+ 	public class WindowActor : Clutter.Actor, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
+ 		[CCode (has_construct_function = false)]
+ 		protected WindowActor ();
+@@ -691,12 +691,12 @@ namespace Meta {
+ 		public signal void effects_completed ();
+ 		public signal void first_frame ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_window_group_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-window-group.h", type_id = "meta_window_group_get_type ()")]
+ 	public class WindowGroup : Clutter.Actor, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable {
+ 		[CCode (has_construct_function = false)]
+ 		protected WindowGroup ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", ref_function = "meta_window_shape_ref", type_id = "meta_window_shape_get_type ()", unref_function = "meta_window_shape_unref")]
++	[CCode (cheader_filename = "meta/meta-window-shape.h", ref_function = "meta_window_shape_ref", type_id = "meta_window_shape_get_type ()", unref_function = "meta_window_shape_unref")]
+ 	[Compact]
+ 	public class WindowShape {
+ 		[CCode (has_construct_function = false)]
+@@ -746,7 +746,7 @@ namespace Meta {
+ 		public signal void workspace_removed (int object);
+ 		public signal void workspace_switched (int object, int p0, Meta.MotionDirection p1);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_x11_display_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-x11-display.h", type_id = "meta_x11_display_get_type ()")]
+ 	public class X11Display : GLib.Object {
+ 		[CCode (has_construct_function = false)]
+ 		protected X11Display ();
+@@ -759,7 +759,7 @@ namespace Meta {
+ 		public void set_input_focus_window (Meta.Window window, bool focus_frame, uint32 timestamp);
+ 		public bool xwindow_is_a_no_focus_window (X.Window xwindow);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_cname = "MetaCloseDialogInterface", type_id = "meta_close_dialog_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-close-dialog.h", type_cname = "MetaCloseDialogInterface", type_id = "meta_close_dialog_get_type ()")]
+ 	public interface CloseDialog : GLib.Object {
+ 		public abstract void focus ();
+ 		public abstract void hide ();
+@@ -770,7 +770,7 @@ namespace Meta {
+ 		[HasEmitter]
+ 		public signal void response (Meta.CloseDialogResponse response);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_cname = "MetaInhibitShortcutsDialogInterface", type_id = "meta_inhibit_shortcuts_dialog_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-inhibit-shortcuts-dialog.h", type_cname = "MetaInhibitShortcutsDialogInterface", type_id = "meta_inhibit_shortcuts_dialog_get_type ()")]
+ 	public interface InhibitShortcutsDialog : GLib.Object {
+ 		public abstract void hide ();
+ 		public abstract void show ();
+@@ -779,7 +779,7 @@ namespace Meta {
+ 		[HasEmitter]
+ 		public signal void response (Meta.InhibitShortcutsDialogResponse response);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/common.h", has_type_id = false)]
+ 	public struct ButtonLayout {
+ 		[CCode (array_length = false)]
+ 		public weak Meta.ButtonFunction left_buttons[5];
+@@ -790,13 +790,13 @@ namespace Meta {
+ 		[CCode (array_length = false)]
+ 		public weak bool right_buttons_has_spacer[5];
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/boxes.h", has_type_id = false)]
+ 	public struct Edge {
+ 		public Meta.Rectangle rect;
+ 		public Meta.Side side_type;
+ 		public Meta.EdgeType edge_type;
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/common.h", has_type_id = false)]
+ 	public struct FrameBorders {
+ 		public Gtk.Border visible;
+ 		public Gtk.Border invisible;
+@@ -811,14 +811,14 @@ namespace Meta {
+ 		public weak string license;
+ 		public weak string description;
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/meta-plugin.h", has_type_id = false)]
+ 	public struct PluginVersion {
+ 		public uint version_major;
+ 		public uint version_minor;
+ 		public uint version_micro;
+ 		public uint version_api;
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", type_id = "meta_rectangle_get_type ()")]
++	[CCode (cheader_filename = "meta/boxes.h", type_id = "meta_rectangle_get_type ()")]
+ 	public struct Rectangle {
+ 		public int x;
+ 		public int y;
+@@ -836,7 +836,7 @@ namespace Meta {
+ 		public Meta.Rectangle union (Meta.Rectangle rect2);
+ 		public bool vert_overlap (Meta.Rectangle rect2);
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/meta-shadow-factory.h", has_type_id = false)]
+ 	public struct ShadowParams {
+ 		public int radius;
+ 		public int top_fade;
+@@ -844,12 +844,12 @@ namespace Meta {
+ 		public int y_offset;
+ 		public uint8 opacity;
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", has_type_id = false)]
++	[CCode (cheader_filename = "meta/boxes.h", has_type_id = false)]
+ 	public struct Strut {
+ 		public Meta.Rectangle rect;
+ 		public Meta.Side side;
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_BARRIER_DIRECTION_", type_id = "meta_barrier_direction_get_type ()")]
++	[CCode (cheader_filename = "meta/barrier.h", cprefix = "META_BARRIER_DIRECTION_", type_id = "meta_barrier_direction_get_type ()")]
+ 	[Flags]
+ 	public enum BarrierDirection {
+ 		POSITIVE_X,
+@@ -857,7 +857,7 @@ namespace Meta {
+ 		NEGATIVE_X,
+ 		NEGATIVE_Y
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_BUTTON_FUNCTION_", type_id = "meta_button_function_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_BUTTON_FUNCTION_", type_id = "meta_button_function_get_type ()")]
+ 	public enum ButtonFunction {
+ 		MENU,
+ 		MINIMIZE,
+@@ -866,12 +866,12 @@ namespace Meta {
+ 		APPMENU,
+ 		LAST
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_CLOSE_DIALOG_RESPONSE_", type_id = "meta_close_dialog_response_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-close-dialog.h", cprefix = "META_CLOSE_DIALOG_RESPONSE_", type_id = "meta_close_dialog_response_get_type ()")]
+ 	public enum CloseDialogResponse {
+ 		WAIT,
+ 		FORCE_CLOSE
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_COMP_EFFECT_", type_id = "meta_comp_effect_get_type ()")]
++	[CCode (cheader_filename = "meta/compositor.h", cprefix = "META_COMP_EFFECT_", type_id = "meta_comp_effect_get_type ()")]
+ 	public enum CompEffect {
+ 		CREATE,
+ 		UNMINIMIZE,
+@@ -879,7 +879,7 @@ namespace Meta {
+ 		MINIMIZE,
+ 		NONE
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_CURSOR_", type_id = "meta_cursor_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_CURSOR_", type_id = "meta_cursor_get_type ()")]
+ 	public enum Cursor {
+ 		NONE,
+ 		DEFAULT,
+@@ -902,7 +902,7 @@ namespace Meta {
+ 		IBEAM,
+ 		LAST
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_DEBUG_", type_id = "meta_debug_topic_get_type ()")]
++	[CCode (cheader_filename = "meta/util.h", cprefix = "META_DEBUG_", type_id = "meta_debug_topic_get_type ()")]
+ 	[Flags]
+ 	public enum DebugTopic {
+ 		VERBOSE,
+@@ -930,7 +930,7 @@ namespace Meta {
+ 		EDGE_RESISTANCE,
+ 		DBUS
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_DIRECTION_", type_id = "meta_direction_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_DIRECTION_", type_id = "meta_direction_get_type ()")]
+ 	[Flags]
+ 	public enum Direction {
+ 		LEFT,
+@@ -942,21 +942,21 @@ namespace Meta {
+ 		HORIZONTAL,
+ 		VERTICAL
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_DISPLAY_", type_id = "meta_display_corner_get_type ()")]
++	[CCode (cheader_filename = "meta/display.h", cprefix = "META_DISPLAY_", type_id = "meta_display_corner_get_type ()")]
+ 	public enum DisplayCorner {
+ 		TOPLEFT,
+ 		TOPRIGHT,
+ 		BOTTOMLEFT,
+ 		BOTTOMRIGHT
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_DISPLAY_", type_id = "meta_display_direction_get_type ()")]
++	[CCode (cheader_filename = "meta/display.h", cprefix = "META_DISPLAY_", type_id = "meta_display_direction_get_type ()")]
+ 	public enum DisplayDirection {
+ 		UP,
+ 		DOWN,
+ 		LEFT,
+ 		RIGHT
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_EDGE_", type_id = "meta_edge_type_get_type ()")]
++	[CCode (cheader_filename = "meta/boxes.h", cprefix = "META_EDGE_", type_id = "meta_edge_type_get_type ()")]
+ 	public enum EdgeType {
+ 		WINDOW,
+ 		MONITOR,
+@@ -967,7 +967,7 @@ namespace Meta {
+ 		SUCCESS,
+ 		ERROR
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_FRAME_", type_id = "meta_frame_flags_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_FRAME_", type_id = "meta_frame_flags_get_type ()")]
+ 	[Flags]
+ 	public enum FrameFlags {
+ 		ALLOWS_DELETE,
+@@ -989,7 +989,7 @@ namespace Meta {
+ 		TILED_LEFT,
+ 		TILED_RIGHT
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_FRAME_TYPE_", type_id = "meta_frame_type_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_FRAME_TYPE_", type_id = "meta_frame_type_get_type ()")]
+ 	public enum FrameType {
+ 		NORMAL,
+ 		DIALOG,
+@@ -1001,7 +1001,7 @@ namespace Meta {
+ 		LAST;
+ 		public unowned string to_string ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_GRAB_OP_", type_id = "meta_grab_op_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_GRAB_OP_", type_id = "meta_grab_op_get_type ()")]
+ 	public enum GrabOp {
+ 		NONE,
+ 		WINDOW_BASE,
+@@ -1028,12 +1028,12 @@ namespace Meta {
+ 		KEYBOARD_RESIZING_SE,
+ 		KEYBOARD_RESIZING_W
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_", type_id = "meta_inhibit_shortcuts_dialog_response_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-inhibit-shortcuts-dialog.h", cprefix = "META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_", type_id = "meta_inhibit_shortcuts_dialog_response_get_type ()")]
+ 	public enum InhibitShortcutsDialogResponse {
+ 		ALLOW,
+ 		DENY
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_KEYBINDING_ACTION_", type_id = "meta_key_binding_action_get_type ()")]
++	[CCode (cheader_filename = "meta/prefs.h", cprefix = "META_KEYBINDING_ACTION_", type_id = "meta_key_binding_action_get_type ()")]
+ 	public enum KeyBindingAction {
+ 		NONE,
+ 		WORKSPACE_1,
+@@ -1128,7 +1128,7 @@ namespace Meta {
+ 		ROTATE_MONITOR,
+ 		LAST
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_KEY_BINDING_", type_id = "meta_key_binding_flags_get_type ()")]
++	[CCode (cheader_filename = "meta/prefs.h", cprefix = "META_KEY_BINDING_", type_id = "meta_key_binding_flags_get_type ()")]
+ 	[Flags]
+ 	public enum KeyBindingFlags {
+ 		NONE,
+@@ -1137,7 +1137,7 @@ namespace Meta {
+ 		IS_REVERSED,
+ 		NON_MASKABLE
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_LATER_", type_id = "meta_later_type_get_type ()")]
++	[CCode (cheader_filename = "meta/util.h", cprefix = "META_LATER_", type_id = "meta_later_type_get_type ()")]
+ 	public enum LaterType {
+ 		RESIZE,
+ 		CALC_SHOWING,
+@@ -1146,25 +1146,25 @@ namespace Meta {
+ 		BEFORE_REDRAW,
+ 		IDLE
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_LOCALE_DIRECTION_", type_id = "meta_locale_direction_get_type ()")]
++	[CCode (cheader_filename = "meta/util.h", cprefix = "META_LOCALE_DIRECTION_", type_id = "meta_locale_direction_get_type ()")]
+ 	public enum LocaleDirection {
+ 		LTR,
+ 		RTL
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_MAXIMIZE_", type_id = "meta_maximize_flags_get_type ()")]
++	[CCode (cheader_filename = "meta/window.h", cprefix = "META_MAXIMIZE_", type_id = "meta_maximize_flags_get_type ()")]
+ 	[Flags]
+ 	public enum MaximizeFlags {
+ 		HORIZONTAL,
+ 		VERTICAL,
+ 		BOTH
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_MODAL_", type_id = "meta_modal_options_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-plugin.h", cprefix = "META_MODAL_", type_id = "meta_modal_options_get_type ()")]
+ 	[Flags]
+ 	public enum ModalOptions {
+ 		POINTER_ALREADY_GRABBED,
+ 		KEYBOARD_ALREADY_GRABBED
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_MONITOR_SWITCH_CONFIG_", type_id = "meta_monitor_switch_config_type_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-monitor-manager.h", cprefix = "META_MONITOR_SWITCH_CONFIG_", type_id = "meta_monitor_switch_config_type_get_type ()")]
+ 	public enum MonitorSwitchConfigType {
+ 		ALL_MIRROR,
+ 		ALL_LINEAR,
+@@ -1172,7 +1172,7 @@ namespace Meta {
+ 		BUILTIN,
+ 		UNKNOWN
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_MOTION_", type_id = "meta_motion_direction_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_MOTION_", type_id = "meta_motion_direction_get_type ()")]
+ 	public enum MotionDirection {
+ 		UP,
+ 		DOWN,
+@@ -1183,13 +1183,13 @@ namespace Meta {
+ 		DOWN_LEFT,
+ 		DOWN_RIGHT
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_PAD_ACTION_", type_id = "meta_pad_action_type_get_type ()")]
++	[CCode (cheader_filename = "meta/display.h", cprefix = "META_PAD_ACTION_", type_id = "meta_pad_action_type_get_type ()")]
+ 	public enum PadActionType {
+ 		BUTTON,
+ 		RING,
+ 		STRIP
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_PREF_", type_id = "meta_preference_get_type ()")]
++	[CCode (cheader_filename = "meta/prefs.h", cprefix = "META_PREF_", type_id = "meta_preference_get_type ()")]
+ 	public enum Preference {
+ 		MOUSE_BUTTON_MODS,
+ 		FOCUS_MODE,
+@@ -1226,27 +1226,27 @@ namespace Meta {
+ 		DRAG_THRESHOLD;
+ 		public unowned string to_string ();
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_SHADOW_MODE_", type_id = "meta_shadow_mode_get_type ()")]
++	[CCode (cheader_filename = "meta/meta-window-actor.h", cprefix = "META_SHADOW_MODE_", type_id = "meta_shadow_mode_get_type ()")]
+ 	public enum ShadowMode {
+ 		AUTO,
+ 		FORCED_OFF,
+ 		FORCED_ON
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_SIDE_", type_id = "meta_side_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_SIDE_", type_id = "meta_side_get_type ()")]
+ 	public enum Side {
+ 		LEFT,
+ 		RIGHT,
+ 		TOP,
+ 		BOTTOM
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_SIZE_CHANGE_", type_id = "meta_size_change_get_type ()")]
++	[CCode (cheader_filename = "meta/compositor.h", cprefix = "META_SIZE_CHANGE_", type_id = "meta_size_change_get_type ()")]
+ 	public enum SizeChange {
+ 		MAXIMIZE,
+ 		UNMAXIMIZE,
+ 		FULLSCREEN,
+ 		UNFULLSCREEN
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_LAYER_", type_id = "meta_stack_layer_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_LAYER_", type_id = "meta_stack_layer_get_type ()")]
+ 	public enum StackLayer {
+ 		DESKTOP,
+ 		BOTTOM,
+@@ -1256,19 +1256,19 @@ namespace Meta {
+ 		OVERRIDE_REDIRECT,
+ 		LAST
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_TAB_LIST_", type_id = "meta_tab_list_get_type ()")]
++	[CCode (cheader_filename = "meta/display.h", cprefix = "META_TAB_LIST_", type_id = "meta_tab_list_get_type ()")]
+ 	public enum TabList {
+ 		NORMAL,
+ 		DOCKS,
+ 		GROUP,
+ 		NORMAL_ALL
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_TAB_SHOW_", type_id = "meta_tab_show_type_get_type ()")]
++	[CCode (cheader_filename = "meta/display.h", cprefix = "META_TAB_SHOW_", type_id = "meta_tab_show_type_get_type ()")]
+ 	public enum TabShowType {
+ 		ICON,
+ 		INSTANTLY
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_VIRTUAL_", type_id = "meta_virtual_modifier_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_VIRTUAL_", type_id = "meta_virtual_modifier_get_type ()")]
+ 	[Flags]
+ 	public enum VirtualModifier {
+ 		SHIFT_MASK,
+@@ -1282,17 +1282,17 @@ namespace Meta {
+ 		MOD4_MASK,
+ 		MOD5_MASK
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_WINDOW_CLIENT_TYPE_", type_id = "meta_window_client_type_get_type ()")]
++	[CCode (cheader_filename = "meta/window.h", cprefix = "META_WINDOW_CLIENT_TYPE_", type_id = "meta_window_client_type_get_type ()")]
+ 	public enum WindowClientType {
+ 		WAYLAND,
+ 		X11
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_WINDOW_MENU_", type_id = "meta_window_menu_type_get_type ()")]
++	[CCode (cheader_filename = "meta/common.h", cprefix = "META_WINDOW_MENU_", type_id = "meta_window_menu_type_get_type ()")]
+ 	public enum WindowMenuType {
+ 		WM,
+ 		APP
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", cprefix = "META_WINDOW_", type_id = "meta_window_type_get_type ()")]
++	[CCode (cheader_filename = "meta/window.h", cprefix = "META_WINDOW_", type_id = "meta_window_type_get_type ()")]
+ 	public enum WindowType {
+ 		NORMAL,
+ 		DESKTOP,
+@@ -1311,45 +1311,45 @@ namespace Meta {
+ 		DND,
+ 		OVERRIDE_OTHER
+ 	}
+-	[CCode (cheader_filename = "meta/main.h", instance_pos = 2.9)]
++	[CCode (cheader_filename = "meta/meta-idle-monitor.h", instance_pos = 2.9)]
+ 	public delegate void IdleMonitorWatchFunc (Meta.IdleMonitor monitor, uint watch_id);
+-	[CCode (cheader_filename = "meta/main.h", instance_pos = 4.9)]
++	[CCode (cheader_filename = "meta/prefs.h", instance_pos = 4.9)]
+ 	public delegate void KeyHandlerFunc (Meta.Display display, Meta.Window window, [CCode (type = "ClutterKeyEvent*")] Clutter.KeyEvent? event, Meta.KeyBinding binding);
+-	[CCode (cheader_filename = "meta/main.h", instance_pos = 1.9)]
++	[CCode (cheader_filename = "meta/prefs.h", instance_pos = 1.9)]
+ 	public delegate void PrefsChangedFunc (Meta.Preference pref);
+-	[CCode (cheader_filename = "meta/main.h", instance_pos = 1.9)]
++	[CCode (cheader_filename = "meta/window.h", instance_pos = 1.9)]
+ 	public delegate bool WindowForeachFunc (Meta.Window window);
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_CURRENT_TIME")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_CURRENT_TIME")]
+ 	public const int CURRENT_TIME;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_DEFAULT_ICON_NAME")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_DEFAULT_ICON_NAME")]
+ 	public const string DEFAULT_ICON_NAME;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_ICON_HEIGHT")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_ICON_HEIGHT")]
+ 	public const int ICON_HEIGHT;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_ICON_WIDTH")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_ICON_WIDTH")]
+ 	public const int ICON_WIDTH;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_MAJOR_VERSION")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_MAJOR_VERSION")]
+ 	public const int MAJOR_VERSION;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_MICRO_VERSION")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_MICRO_VERSION")]
+ 	public const int MICRO_VERSION;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_MINI_ICON_HEIGHT")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_MINI_ICON_HEIGHT")]
+ 	public const int MINI_ICON_HEIGHT;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_MINI_ICON_WIDTH")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_MINI_ICON_WIDTH")]
+ 	public const int MINI_ICON_WIDTH;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_MINOR_VERSION")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_MINOR_VERSION")]
+ 	public const int MINOR_VERSION;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_PLUGIN_API_VERSION")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_PLUGIN_API_VERSION")]
+ 	public const int PLUGIN_API_VERSION;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_PRIORITY_BEFORE_REDRAW")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_PRIORITY_BEFORE_REDRAW")]
+ 	public const int PRIORITY_BEFORE_REDRAW;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_PRIORITY_PREFS_NOTIFY")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_PRIORITY_PREFS_NOTIFY")]
+ 	public const int PRIORITY_PREFS_NOTIFY;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_PRIORITY_REDRAW")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_PRIORITY_REDRAW")]
+ 	public const int PRIORITY_REDRAW;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_PRIORITY_RESIZE")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_PRIORITY_RESIZE")]
+ 	public const int PRIORITY_RESIZE;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_VIRTUAL_CORE_KEYBOARD_ID")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_VIRTUAL_CORE_KEYBOARD_ID")]
+ 	public const int VIRTUAL_CORE_KEYBOARD_ID;
+-	[CCode (cheader_filename = "meta/main.h", cname = "META_VIRTUAL_CORE_POINTER_ID")]
++	[CCode (cheader_filename = "meta/common.h", cname = "META_VIRTUAL_CORE_POINTER_ID")]
+ 	public const int VIRTUAL_CORE_POINTER_ID;
+ 	[CCode (cheader_filename = "meta/main.h")]
+ 	public static bool activate_session ();
+@@ -1375,6 +1375,6 @@ namespace Meta {
+ 	public static void set_gnome_wm_keybindings (string wm_keybindings);
+ 	[CCode (cheader_filename = "meta/main.h")]
+ 	public static void set_wm_name (string wm_name);
+-	[CCode (cheader_filename = "meta/main.h")]
++	[CCode (cheader_filename = "meta/meta-x11-display.h")]
+ 	public static bool x11_init_gdk_display () throws GLib.Error;
+ }
+--
+2.17.1
+

Copied: budgie-desktop/repos/community-testing-x86_64/0007-Check-if-schema-is-defined-for-volume-slider-changes.patch (from rev 380021, budgie-desktop/trunk/0007-Check-if-schema-is-defined-for-volume-slider-changes.patch)
===================================================================
--- community-testing-x86_64/0007-Check-if-schema-is-defined-for-volume-slider-changes.patch	                        (rev 0)
+++ community-testing-x86_64/0007-Check-if-schema-is-defined-for-volume-slider-changes.patch	2018-09-12 21:19:28 UTC (rev 380022)
@@ -0,0 +1,25 @@
+Description: Check if schema is defined for volume slider changes #1544
+Author: David Mohammed <fossfreedom at ubuntu.com>
+Commit: https://github.com/UbuntuBudgie/budgie-desktop/commit/42565ccebf0cc0da007e0127a4428b015e59fb07
+Last Update: 2018-08-25
+
+---
+ src/raven/sound.vala | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/raven/sound.vala b/src/raven/sound.vala
+index b9a514e3..a7971b6a 100644
+--- a/src/raven/sound.vala
++++ b/src/raven/sound.vala
+@@ -421,7 +421,7 @@ namespace Budgie {
+             var vol = primary_stream.get_volume();
+             var vol_max = mixer.get_vol_max_norm();
+
+-            if (settings.get_boolean(MAX_KEY)) { // Allowing max
++            if (settings != null && settings.get_boolean(MAX_KEY)) { // Allowing max
+                 vol_max = mixer.get_vol_max_amplified();
+             }
+
+--
+2.17.1
+

Copied: budgie-desktop/repos/community-testing-x86_64/PKGBUILD (from rev 380021, budgie-desktop/trunk/PKGBUILD)
===================================================================
--- community-testing-x86_64/PKGBUILD	                        (rev 0)
+++ community-testing-x86_64/PKGBUILD	2018-09-12 21:19:28 UTC (rev 380022)
@@ -0,0 +1,79 @@
+# Maintainer: Balló György <ballogyor+arch at gmail dot com>
+
+pkgname=budgie-desktop
+_helper_pkgname=budgie-helper
+pkgver=10.4+123+gf2dbc215
+_helper_gitrev=3b52434b6d1cfe00c5bac1046d323813ce531a55
+pkgrel=1
+pkgdesc="Modern desktop environment from the Solus Project"
+arch=('x86_64')
+url="https://budgie-desktop.org/"
+license=('GPL' 'LGPL')
+depends=('accountsservice' 'gnome-bluetooth' 'gnome-menus' 'gnome-session' 'gnome-themes-standard' 'libibus' 'libpeas' 'libwnck3' 'mutter')
+makedepends=('autoconf-archive' 'git' 'gobject-introspection' 'intltool' 'meson' 'sassc' 'vala')
+optdepends=('gnome-backgrounds: Default background'
+            'gnome-control-center: System settings'
+            'gnome-screensaver: Lock screen'
+            'network-manager-applet: Network management')
+_commit=f2dbc215fdb43de88e5b0876413b4a9dc77b2153  # master
+source=("git+https://github.com/budgie-desktop/budgie-desktop.git#commit=$_commit"
+        "git+https://gitlab.gnome.org/GNOME/libgnome-volume-control.git"
+	0001-Port-to-mutter-3-from-GNOME-3.30.patch
+	0002-Correct-GNOME-button-layout-schema-path.patch
+        0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch
+	0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch
+	0005-Point-vapi-cheaders-to-their-upstream-equiv.patch
+	0007-Check-if-schema-is-defined-for-volume-slider-changes.patch
+        "$_helper_pkgname-$_helper_gitrev.tar.gz::https://codeload.github.com/City-busz/$_helper_pkgname/tar.gz/$_helper_gitrev")
+validpgpkeys=('8876CC8EDAEC52CEAB7742E778E2387015C1205F') # Ikey Doherty (Solus Project Founder)
+sha256sums=('SKIP'
+            'SKIP'
+            '31f9284a9cf0cb5376fbdc22d32c1d05da4c4a83e3320c5d0d11fc5a6cb3e73e'
+            '97d9b4e5f3133da36bd6e0bc2bdc30381adfdaf3b4735264b4d1fc845322ceef'
+            '0967bf0213b501755cc9b011d1bd1d2d4a0d53b7ee3c744456bee098be5732b6'
+            '25ad9407ee8b4147d726f6eb4f357bd57dcf46fa1e3ab8a67abff688c8a87192'
+            '587b5cf6f69af96e1b214c371153d202f416a12dfabd6a49f3d24e179f595a32'
+            '3025abcefa333a1aafb88f73305b7634162c4ace02e16291dc87fac2f56848fc'
+            '3a4d7dd7c95ccba4e2916adf4a14769ffe54e8f86ed302d0268cd312b2a85c0e')
+
+pkgver() {
+	cd $pkgname
+	git describe --tags | sed 's/^v//;s/-/+/g'
+}
+
+prepare() {
+	mkdir build
+	cd $pkgname
+
+	# Various fixes for GNOME 3.30
+	patch -Np1 -i ../0001-Port-to-mutter-3-from-GNOME-3.30.patch
+	patch -Np1 -i ../0002-Correct-GNOME-button-layout-schema-path.patch
+	patch -Np1 -i ../0003-Make-sure-vapi-workspace-def-use-real-c-header-filen.patch
+	patch -Np1 -i ../0004-Vala-0.41.92-does-not-allow-custom-getter-default-va.patch
+	patch -Np1 -i ../0005-Point-vapi-cheaders-to-their-upstream-equiv.patch
+	patch -Np1 -i ../0007-Check-if-schema-is-defined-for-volume-slider-changes.patch
+
+	git config --local submodule.subprojects/gvc.url "$srcdir/libgnome-volume-control"
+	git submodule update --init
+
+	# Provide better compatibility for GNOME
+	# https://github.com/solus-project/budgie-desktop/issues/261
+	cd "$srcdir/$_helper_pkgname-$_helper_gitrev"
+	NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+	arch-meson $pkgname build -D with-desktop-icons=none
+	ninja -C build
+
+	cd "$srcdir/$_helper_pkgname-$_helper_gitrev"
+	./configure --prefix=/usr --sysconfdir=/etc --disable-schemas-compile --disable-Werror
+	make
+}
+
+package() {
+	DESTDIR="$pkgdir" ninja -C build install
+
+	cd "$srcdir/$_helper_pkgname-$_helper_gitrev"
+	make DESTDIR="$pkgdir" install
+}



More information about the arch-commits mailing list