Project ID: 21448


This repo contains gnome-shell and mutter builds based on the official Fedora ones with some additional patches (mainly to improve performance). See GitHub for package sources. Please report any issues you encounter via GitHub or via the discussion form at the end of this page.

Currently, the following patches are added in:

Fedora 33


  • !850 "Make default focus window on each workspace appear focused" @811d853a
  • !1268 "window: "Hide" edge resistance behind modifier key" @22902a5e
  • !1309 "cogl-winsys-glx: Add a heuristically calculated presentation_time" @8d9a94cd
  • !1439 "graphene_matrix_t" @b5749a8b
  • !1468 "wayland/compositor: Only emit frame callbacks for the best suited stage view" @3d40d94c
  • !1474 "Effects cleanups" @c7ab5f3f
  • !1496 "Make CoglFramebuffer a GObject" @5a58ccbe
  • !1489 "Clip Frusta" @bc41a88c
  • !1498 "Small Clutter allocation cleanup and fix" @de610a13
  • !1507 "clutter/paint-volume: Use graphene for computing union of paint volumes" @d2f8a306
  • !1509 "Raycast Pick" @da7671b5
  • !1510 "renderer-native: Fix GObjectify oversight" @b2f2050b
  • !1524 "clutter/actor: Don't check handlers when emitting stage-views-changed" @3d246ec0
  • !1683 "wayland/dnd: Some coordinate system fixes" @7da34f15
  • !1735 "cogl/journal: Don't sometimes hold a ref on the framebuffer" @7ddbcd1f
  • !1808 "[3.38] Backport viepwort fixes" @346a9018
  • Enable real-time scheduling by default


  • !923 "js/ui: Keep refcounts to WallClock objects above 1." @c599ec7a
  • !1436 "graphene_matrix_t" @2321ce28
  • !1465 "Adapt to CoglFramebuffers turning into GObjects" @bd710ff4
  • !1470 "Adapt to pick changes" @d6206c6
  • !1475 "dnd: Get transformed size for scaling before unparenting drag actor" @d19683a8

Fedora 32 (EOL)


  • !850 "Make default focus window on each workspace appear focused" @f5252158
  • !1113 "Cleanup painting stage views" @fbfa136b
  • !1241 "backend/native: Allow stage updates to occur without stage redraws" @a9a60f70 (manually rebased)
  • !1250 "Decouple window effects from freezing/thawing of window actors" @7fe2d730
  • !1259 "clutter/actor: Use priv->parent instead of public API sometimes" @84c82f96
  • !1284 "clutter-stage-cogl: Disable urgent frames when swap event support is missing" @a610a557
  • !1309 "Fix Nvidia smoothness issues" @be77651f (manually rebased)
  • !1359 "clutter-actor: Cull actors that don't intersect the redraw clip" @4e286244
  • Enable real-time scheduling by default


  • !923 "js/ui: Keep refcounts to WallClock objects above 1." @c599ec7a
  • !1251 "Notify mutter about completed size-change animation correctly" @2a8e1875
  • !1356 "workspaceSwitcherPopup: Set offscreen redirect always" @9363fd35


  • !316 "Add multiple buffering to xwl_window" @cd999f08 (manually rebased)
  • !361 "Take window border width into account for window buffer updates and recycling" @46e5236b (manually rebased)
  • !389 "xwayland/glamor-gbm: Add xwl_glamor_gbm_post_damage hook" @9e85aa9c (manually rebased)

Fedora 31 (EOL)

Note for Dash-to-Panel users: The extension may break, please use this version: 7763f96

  1. Download the ZIP from GitHub
  2. Remove the contents of ~/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com and extract the ZIP archive here
  3. Open the directory in a terminal and run glib-compile-schemas schemas


  • !526 "Implement scaled/transformed hardware cursors" @b99f08c6
  • !575 "Honour CLUTTER_ACTOR_NO_LAYOUT more efficiently" @1e3acd0e
  • !692 "clutter-stage-cogl: Use regions" @30783949 (manually rebased)
  • !724 "Sync timelines to hardware vsync" @f7d81f8a (manually rebased)
  • !798 "Wayland surface fullscreen unredirect" @7377cf85 (manually rebased)
  • !850 "Make default focus window on each workspace appear focused" @f5252158 (manually rebased)
  • !867 "Use regions for Cogl clipping and culling" @e746d880 (manually rebased)
  • !888 "Handle empty invalidations" @2e9faaf6
  • !889 "clutter/cogl: Fix clipped redraw off scaled views" @9678fd53 (manually rebased)
  • !898 "clutter/cogl: Fix invalidation on non-primary monitors with no buffer age" @6bfa61a3
  • !906 "Fix buffer age checks on multiple monitors" @d47324e8
  • !918 "surface-actor-wayland: Do not send frame callbacks if the actor is obscured" @5e87d67e (manually rebased)
  • !969 "Batch clip rectangles into a single upload" @4aab814c (manually rebased)
  • !983 "clutter/text: Check if attributes are equal before applying" @9b7fe584
  • !984 "Ignore monitor connector ID when possible" @9958f6a5
  • !985 "window-actor: Also cull out clip_region" @99db3cc9
  • !991 "Miscellaneous leak fixes" @802309ca
  • !1000 "clutter-actor: Add detail to captured-event" @177dbd65
  • !1004 "background: Scale monitor_area after texture creation" @cf6493d3
  • !1008 "wayland/keyboard: Use write() instead of mmapped address to write file" @cb683ae4
  • !1017 "backend-eglnative: Search for the xsettings schema recursively" @d28a6409
  • !1033 "clutter/actor: Fix GValue leak when overwriting transition values" @55b1f914
  • !1036 "cullable: Support culling of integer scaled actors" @264f6885 (manually rebased)
  • !1049 "wayland/actor-surface: Do not set opaque region for XWayland clients" @19814497
  • !1052 "cullable: Check if effects are disabled" @aceadfe3
  • !1058 "window-actor/x11: Make culling of opaque windows X11 only" @c89f8f19
  • !1071 "cogl: reduce temporary allocations calculating redraw regions" @c1b189ed (manually rebased)
  • !1074 "clutter/stage: Cache get_update_time results" @08880261 (manually rebased)
  • ebc07871 "shaped-texture: Add get_width()/get_height() API"
  • !1082 "Culling fixes" @39a8c047 (partial)
  • !1083 "clutter: do less when removing actors" @a3fc6518
  • !1099 "cursor-renderer-native: Fix hw cursor for non-square sprites" @390fd7dd
  • Enable real-time scheduling by default


  • !605 "Gestures overhaul" @b4bd41c0 (rebase taken from exalm/gnome-shell-gestures)
  • !843 "pageIndicators: Redesign and add position-based animation" @109f39af (rebase taken from exalm/gnome-shell-gestures)
  • !846 "st/button: Notify :pressed changes" @9790b0ee
  • !923 "js/ui: Keep refcounts to WallClock objects above 1." @73374358 (manually rebased)
  • !925 "js/ui: Subscribe touchpad gesture handlers to only touchpad events" @c35bccb4 (manually rebased)
  • !926 "iconGrid.js: Animate icon spring using translation" @76961927
  • !936 "workspace: Animate window clones using translation properties" @87df8c17
  • !948 "overviewControls: Use ClutterActor's translation-x" @4c4846e9 (manually rebased)
  • !974 "texture-cache: Fix invalid reads when storing used resource scales" @7287ee36
  • !1002 "iconGrid: Create icon clones in a separate loop" @c48de608
  • !1044 "st: implement ClutterActorClass.has_accessible()" @24a3fd4c
  • !1051 "util: cache local GTimeZone" @06b690ff (manually rebased)
  • !1054 "app-cache: add ShellAppCache for GAppInfo caching" @3f9cf27f (manually rebased)
  • !1061 "environment: Fix date conversion" @0dd171a7


  • !282 "xwayland/glamour-gbm: Handle DRM_FORMAT_MOD_INVALID gracefully" @edf96443
  • !316 "Add multiple buffering to xwl_window" @cd999f08 (manually rebased)
  • !355 "xwayland: Do flush GPU work in xwl_present_flush" @162e1204
  • !356 "xwayland: Use frame callbacks for Present vblank events" @c7de6c22
  • !389 "xwayland/glamor-gbm: Add xwl_glamor_gbm_post_damage hook" @9e85aa9c (manually rebased)

Installation Instructions

Fedora 32/33 Workstation Edition

dnf copr enable pp3345/gnome-with-patches

dnf upgrade



dnf copr disable pp3345/gnome-with-patches

dnf downgrade gnome-shell mutter


Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

Release Architectures Repo Download

* Total number of packages downloaded in the last seven days.