static void budgie_wm_start(MetaPlugin *plugin) { BudgieWM *self = BUDGIE_WM(plugin); MetaScreen *screen = meta_plugin_get_screen(plugin); ClutterActor* actors[2]; /* Init background */ self->priv->background_group = meta_background_group_new(); clutter_actor_set_reactive(self->priv->background_group, TRUE); clutter_actor_insert_child_below(meta_get_window_group_for_screen(screen), self->priv->background_group, NULL); g_signal_connect(screen, "monitors-changed", G_CALLBACK(on_monitors_changed), plugin); on_monitors_changed(screen, plugin); /* Now we're in action. */ clutter_actor_show(meta_get_window_group_for_screen(screen)); clutter_actor_show(self->priv->background_group); clutter_actor_set_opacity(meta_get_window_group_for_screen(screen), 0); clutter_actor_set_opacity(self->priv->background_group, 0); actors[0] = meta_get_window_group_for_screen(screen); actors[1] = self->priv->background_group; clutter_actor_set_background_color(meta_get_stage_for_screen(screen), clutter_color_get_static(CLUTTER_COLOR_BLACK)); clutter_actor_show(meta_get_stage_for_screen(screen)); for (int i = 0; i < 2; i++) { clutter_actor_save_easing_state(actors[i]); clutter_actor_set_easing_mode(actors[i], CLUTTER_EASE_OUT_QUAD); clutter_actor_set_easing_duration(actors[i], SHOW_TIMEOUT); g_object_set(actors[i], "opacity", 255, NULL); clutter_actor_restore_easing_state(actors[i]); } /* Set up our own keybinding overrides */ meta_keybindings_set_custom_handler(BUDGIE_KEYBINDING_MAIN_MENU, budgie_launch_menu, NULL, NULL); meta_keybindings_set_custom_handler(BUDGIE_KEYBINDING_RUN_DIALOG, budgie_launch_rundialog, NULL, NULL); meta_keybindings_set_custom_handler("switch-windows", (MetaKeyHandlerFunc)switch_windows, self, NULL); meta_keybindings_set_custom_handler("switch-applications", (MetaKeyHandlerFunc)switch_windows, self, NULL); /* Handle keys.. */ budgie_keys_init(meta_screen_get_display(screen)); budgie_menus_init(self); g_signal_connect(meta_screen_get_display(screen), "overlay-key", G_CALLBACK(overlay_cb), NULL); }
static void start (MetaPlugin *plugin) { MetaDefaultPlugin *self = META_DEFAULT_PLUGIN (plugin); MetaScreen *screen = meta_plugin_get_screen (plugin); self->priv->background_group = meta_background_group_new (); clutter_actor_insert_child_below (meta_get_window_group_for_screen (screen), self->priv->background_group, NULL); g_signal_connect (screen, "monitors-changed", G_CALLBACK (on_monitors_changed), plugin); on_monitors_changed (screen, plugin); clutter_actor_show (meta_get_stage_for_screen (screen)); }