Skip to content

GNOME Extensions

🧩 Installing and Customizing GNOME Extensions in Cubic

When creating a custom Ubuntu-based ISO, you may want to include GNOME extensions that you normally use on your own system. However, there are several challenges:

  1. Copying Extensions to the Custom ISO

  2. On your normal Ubuntu system, you installed all the extensions you wanted.

  3. System-wide extensions are usually in:

    /usr/share/gnome-shell/extensions/
    
  4. User-local extensions are in:

    ~/.local/share/gnome-shell/extensions/
    
  5. To include these in your Cubic custom ISO, copy the desired folders into:

    custom-root/usr/share/gnome-shell/extensions/
    
  6. Important: Remove any preinstalled extensions that conflict with yours to avoid runtime errors.


  1. Extensions Do Not Load Automatically in Live ISO

  2. Simply copying the extension folder is not enough.

  3. The GNOME shell looks at override schemas in:

    /usr/share/glib-2.0/schemas/
    
  4. To enable your extension during live boot:

    1. Open or create an override schema file.
    2. Add entries for your extension identifiers.
    3. Compile schemas with:

      sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
      
  5. This ensures the extension is recognized and loaded by GNOME in the live session.


  1. Extension Manager

  2. Include GNOME Extension Manager in your ISO to allow users to enable, disable, or configure extensions easily.


  1. Custom Preference Settings

  2. Some extensions store default preferences in GSettings schemas.

  3. To preserve your own preference settings:

    • Locate the schema file inside the extension folder (e.g., org.gnome.shell.extensions.<name>.gschema.xml).
    • Edit it to include your desired default values.
    • Compile the schemas inside the ISO using glib-compile-schemas.
  4. Note: There is no fully automated way to copy your personal preferences from your system(well i dont know); editing the schema or extension code is the workaround.